diff --git a/recipes/libcusolver/bld.bat b/recipes/libcusolver/bld.bat new file mode 100644 index 0000000000000..57ba00afb97f9 --- /dev/null +++ b/recipes/libcusolver/bld.bat @@ -0,0 +1,5 @@ +if not exist %PREFIX% mkdir %PREFIX% + +move lib\x64\* %LIBRARY_LIB% +move bin\* %LIBRARY_BIN% +move include\* %LIBRARY_INC% diff --git a/recipes/libcusolver/build.sh b/recipes/libcusolver/build.sh new file mode 100644 index 0000000000000..3a70df32e1219 --- /dev/null +++ b/recipes/libcusolver/build.sh @@ -0,0 +1,33 @@ +#!/bin/bash + +# Install to conda style directories +[[ -d lib64 ]] && mv lib64 lib +mkdir -p ${PREFIX}/lib +[[ -d pkg-config ]] && mv pkg-config ${PREFIX}/lib/pkgconfig +[[ -d "$PREFIX/lib/pkgconfig" ]] && sed -E -i "s|cudaroot=.+|cudaroot=$PREFIX|g" $PREFIX/lib/pkgconfig/cusolver*.pc + +[[ ${target_platform} == "linux-64" ]] && targetsDir="targets/x86_64-linux" +[[ ${target_platform} == "linux-ppc64le" ]] && targetsDir="targets/ppc64le-linux" +[[ ${target_platform} == "linux-aarch64" ]] && targetsDir="targets/sbsa-linux" + +for i in `ls`; do + [[ $i == "build_env_setup.sh" ]] && continue + [[ $i == "conda_build.sh" ]] && continue + [[ $i == "metadata_conda_debug.yaml" ]] && continue + if [[ $i == "lib" ]] || [[ $i == "include" ]]; then + # Headers and libraries are installed to targetsDir + mkdir -p ${PREFIX}/${targetsDir} + mkdir -p ${PREFIX}/$i + cp -rv $i ${PREFIX}/${targetsDir} + if [[ $i == "lib" ]]; then + for j in "$i"/*.so*; do + # Shared libraries are symlinked in $PREFIX/lib + ln -s ${PREFIX}/${targetsDir}/$j ${PREFIX}/$j + done + fi + else + # Put all other files in targetsDir + mkdir -p ${PREFIX}/${targetsDir}/${PKG_NAME} + cp -rv $i ${PREFIX}/${targetsDir}/${PKG_NAME} + fi +done diff --git a/recipes/libcusolver/conda_build_config.yaml b/recipes/libcusolver/conda_build_config.yaml new file mode 100644 index 0000000000000..f0f19b6329c4a --- /dev/null +++ b/recipes/libcusolver/conda_build_config.yaml @@ -0,0 +1,2 @@ +arm_variant_type: # [aarch64] + - sbsa # [aarch64] diff --git a/recipes/libcusolver/meta.yaml b/recipes/libcusolver/meta.yaml new file mode 100644 index 0000000000000..ccec4e19ee576 --- /dev/null +++ b/recipes/libcusolver/meta.yaml @@ -0,0 +1,185 @@ +{% set name = "libcusolver" %} +{% set version = "11.4.2.57" %} +{% set cuda_version = "12.0" %} +{% set platform = "linux-x86_64" %} # [linux64] +{% set platform = "linux-ppc64le" %} # [ppc64le] +{% set platform = "linux-sbsa" %} # [aarch64] +{% set platform = "windows-x86_64" %} # [win] +{% set target_name = "x86_64-linux" %} # [linux64] +{% set target_name = "ppc64le-linux" %} # [ppc64le] +{% set target_name = "sbsa-linux" %} # [aarch64] +{% set target_name = "x64" %} # [win] +{% set extension = "tar.xz" %} # [not win] +{% set extension = "zip" %} # [win] + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://developer.download.nvidia.com/compute/cuda/redist/{{ name }}/{{ platform }}/{{ name }}-{{ platform }}-{{ version }}-archive.{{ extension }} + sha256: c9460db500d0c7d14debb2c8e0d88fc26a39197363f1b000ccf760866f636f12 # [linux64] + sha256: bf3c9a090652d011aafe2190c6f26fe108194cf8512d3c571e406054740168bb # [ppc64le] + sha256: 0ca46b73520657f96f921711c05af7053bd398328d510aecddfff2521c000e91 # [aarch64] + sha256: c09836df1f43a3496f2b61ad8827af662ace298508869564a40c30d909ba550f # [win] + +build: + number: 0 + skip: true # [osx] + +outputs: + - name: libcusolver + files: + - lib/libcusolver*.so.* # [linux] + - targets/{{ target_name }}/lib/libcusolver*.so.* # [linux] + - Library\bin\cusolver*.dll # [win] + requirements: + build: + - {{ compiler("c") }} + - {{ compiler("cxx") }} + - arm-variant * {{ arm_variant_type }} # [aarch64] + - sysroot_{{ target_platform }} 2.17 # [linux] + host: + - cuda-version {{ cuda_version }} + - libcublas + - libnvjitlink + run: + - {{ pin_compatible("cuda-version", max_pin="x.x") }} + - {{ pin_compatible("libcublas", max_pin="x.x") }} + - {{ pin_compatible("libnvjitlink", max_pin="x.x") }} + run_constrained: + - arm-variant * {{ arm_variant_type }} # [aarch64] + test: + commands: + - test -L $PREFIX/lib/libcusolver.so.{{ version }} # [linux] + - test -L $PREFIX/lib/libcusolver.so.{{ version.split(".")[0] }} # [linux] + - test -L $PREFIX/targets/{{ target_name }}/lib/libcusolver.so.{{ version }} # [linux] + - test -f $PREFIX/targets/{{ target_name }}/lib/libcusolver.so.{{ version.split(".")[0] }} # [linux] + - test -L $PREFIX/lib/libcusolverMg.so.{{ version }} # [linux] + - test -L $PREFIX/lib/libcusolverMg.so.{{ version.split(".")[0] }} # [linux] + - test -L $PREFIX/targets/{{ target_name }}/lib/libcusolverMg.so.{{ version }} # [linux] + - test -f $PREFIX/targets/{{ target_name }}/lib/libcusolverMg.so.{{ version.split(".")[0] }} # [linux] + - if not exist %LIBRARY_BIN%\cusolver*.dll exit 1 # [win] + - if not exist %LIBRARY_BIN%\cusolverMg*.dll exit 1 # [win] + about: + home: https://developer.nvidia.com/cusolver + license_file: LICENSE + license: LicenseRef-NVIDIA-End-User-License-Agreement + license_url: https://docs.nvidia.com/cuda/eula/index.html + summary: CUDA Linear Solver Library + description: | + cuSOLVER - Direct Linear Solvers on NVIDIA GPUs + doc_url: https://docs.nvidia.com/cuda/cusolver/ + + - name: libcusolver-dev + build: + run_exports: + - {{ pin_subpackage("libcusolver", max_pin="x") }} + files: + - lib/libcusolver*.so # [linux] + - lib/pkgconfig # [linux] + - targets/{{ target_name }}/include # [linux] + - targets/{{ target_name }}/lib/libcusolver*.so # [linux] + - targets/{{ target_name }}/lib/stubs # [linux] + # Not shipping Fortran bindings (in src) on Windows for now + - targets/{{ target_name }}/libcusolver/src # [linux] + - Library\include # [win] + - Library\lib # [win] + requirements: + build: + - {{ compiler("c") }} + - {{ compiler("cxx") }} + - arm-variant * {{ arm_variant_type }} # [aarch64] + - sysroot_{{ target_platform }} 2.17 # [linux] + host: + - cuda-version {{ cuda_version }} + run: + - {{ pin_compatible("cuda-version", max_pin="x.x") }} + - {{ pin_subpackage("libcusolver", exact=True) }} + run_constrained: + - arm-variant * {{ arm_variant_type }} # [aarch64] + - libcusolver-static >={{ version }} # [linux] + test: + commands: + - test -L $PREFIX/lib/libcusolver.so # [linux] + - test -L $PREFIX/lib/libcusolverMg.so # [linux] + - test -f $PREFIX/lib/pkgconfig/cusolver*.pc # [linux] + - test -f $PREFIX/targets/{{ target_name }}/include/cusolverDn.h # [linux] + - test -f $PREFIX/targets/{{ target_name }}/include/cusolverMg.h # [linux] + - test -f $PREFIX/targets/{{ target_name }}/include/cusolverRf.h # [linux] + - test -f $PREFIX/targets/{{ target_name }}/include/cusolverSp.h # [linux] + - test -f $PREFIX/targets/{{ target_name }}/include/cusolverSp_LOWLEVEL_PREVIEW.h # [linux] + - test -f $PREFIX/targets/{{ target_name }}/include/cusolver_common.h # [linux] + - test -L $PREFIX/targets/{{ target_name }}/lib/libcusolver.so # [linux] + - test -L $PREFIX/targets/{{ target_name }}/lib/libcusolverMg.so # [linux] + - test -f $PREFIX/targets/{{ target_name }}/lib/stubs/libcusolver.so # [linux] + - test -f $PREFIX/targets/{{ target_name }}/lib/stubs/libcusolverMg.so # [linux] + - if not exist %LIBRARY_INC%\cusolverDn.h exit 1 # [win] + - if not exist %LIBRARY_INC%\cusolverMg.h exit 1 # [win] + - if not exist %LIBRARY_INC%\cusolverRf.h exit 1 # [win] + - if not exist %LIBRARY_INC%\cusolverSp.h exit 1 # [win] + - if not exist %LIBRARY_INC%\cusolverSp_LOWLEVEL_PREVIEW.h exit 1 # [win] + - if not exist %LIBRARY_INC%\cusolver_common.h exit 1 # [win] + - if not exist %LIBRARY_LIB%\cusolver*.lib exit 1 # [win] + - if not exist %LIBRARY_LIB%\cusolverMg*.lib exit 1 # [win] + about: + home: https://developer.nvidia.com/cusolver + license_file: LICENSE + license: LicenseRef-NVIDIA-End-User-License-Agreement + license_url: https://docs.nvidia.com/cuda/eula/index.html + summary: CUDA Linear Solver Library + description: | + cuSOLVER - Direct Linear Solvers on NVIDIA GPUs + doc_url: https://docs.nvidia.com/cuda/cusolver/index.html + + - name: libcusolver-static + build: + skip: true # [win] + files: + - targets/{{ target_name }}/lib/libcusolver*_static.a + - targets/{{ target_name }}/lib/libmetis_static.a + requirements: + build: + - {{ compiler("c") }} + - {{ compiler("cxx") }} + - arm-variant * {{ arm_variant_type }} # [aarch64] + - sysroot_{{ target_platform }} 2.17 # [linux] + host: + - cuda-version {{ cuda_version }} + - libcublas-static + - libcusparse-static + run: + - {{ pin_compatible("cuda-version", max_pin="x.x") }} + - {{ pin_compatible("libcublas-static", max_pin="x.x") }} + - {{ pin_compatible("libcusparse-static", max_pin="x.x") }} + run_constrained: + - arm-variant * {{ arm_variant_type }} # [aarch64] + test: + commands: + - test -f $PREFIX/targets/{{ target_name }}/lib/libcusolver_static.a + - test -f $PREFIX/targets/{{ target_name }}/lib/libcusolver_lapack_static.a + - test -f $PREFIX/targets/{{ target_name }}/lib/libcusolver_metis_static.a + - test -f $PREFIX/targets/{{ target_name }}/lib/libmetis_static.a + about: + home: https://developer.nvidia.com/cusolver + license_file: LICENSE + license: LicenseRef-NVIDIA-End-User-License-Agreement + license_url: https://docs.nvidia.com/cuda/eula/index.html + summary: CUDA Linear Solver Library + description: | + cuSOLVER - Direct Linear Solvers on NVIDIA GPUs + doc_url: https://docs.nvidia.com/cuda/cusolver/index.html + +about: + home: https://developer.nvidia.com/cusolver + license_file: LICENSE + license: LicenseRef-NVIDIA-End-User-License-Agreement + license_url: https://docs.nvidia.com/cuda/eula/index.html + summary: CUDA Linear Solver Library + description: | + cuSOLVER - Direct Linear Solvers on NVIDIA GPUs + doc_url: https://docs.nvidia.com/cuda/cusolver/index.html + +extra: + recipe-maintainers: + - adibbley diff --git a/recipes/libcusparse/bld.bat b/recipes/libcusparse/bld.bat new file mode 100644 index 0000000000000..57ba00afb97f9 --- /dev/null +++ b/recipes/libcusparse/bld.bat @@ -0,0 +1,5 @@ +if not exist %PREFIX% mkdir %PREFIX% + +move lib\x64\* %LIBRARY_LIB% +move bin\* %LIBRARY_BIN% +move include\* %LIBRARY_INC% diff --git a/recipes/libcusparse/build.sh b/recipes/libcusparse/build.sh new file mode 100644 index 0000000000000..db37ebb4096a5 --- /dev/null +++ b/recipes/libcusparse/build.sh @@ -0,0 +1,33 @@ +#!/bin/bash + +# Install to conda style directories +[[ -d lib64 ]] && mv lib64 lib +mkdir -p ${PREFIX}/lib +[[ -d pkg-config ]] && mv pkg-config ${PREFIX}/lib/pkgconfig +[[ -d "$PREFIX/lib/pkgconfig" ]] && sed -E -i "s|cudaroot=.+|cudaroot=$PREFIX|g" $PREFIX/lib/pkgconfig/cusparse*.pc + +[[ ${target_platform} == "linux-64" ]] && targetsDir="targets/x86_64-linux" +[[ ${target_platform} == "linux-ppc64le" ]] && targetsDir="targets/ppc64le-linux" +[[ ${target_platform} == "linux-aarch64" ]] && targetsDir="targets/sbsa-linux" + +for i in `ls`; do + [[ $i == "build_env_setup.sh" ]] && continue + [[ $i == "conda_build.sh" ]] && continue + [[ $i == "metadata_conda_debug.yaml" ]] && continue + if [[ $i == "lib" ]] || [[ $i == "include" ]]; then + # Headers and libraries are installed to targetsDir + mkdir -p ${PREFIX}/${targetsDir} + mkdir -p ${PREFIX}/$i + cp -rv $i ${PREFIX}/${targetsDir} + if [[ $i == "lib" ]]; then + for j in "$i"/*.so*; do + # Shared libraries are symlinked in $PREFIX/lib + ln -s ${PREFIX}/${targetsDir}/$j ${PREFIX}/$j + done + fi + else + # Put all other files in targetsDir + mkdir -p ${PREFIX}/${targetsDir}/${PKG_NAME} + cp -rv $i ${PREFIX}/${targetsDir}/${PKG_NAME} + fi +done diff --git a/recipes/libcusparse/conda_build_config.yaml b/recipes/libcusparse/conda_build_config.yaml new file mode 100644 index 0000000000000..f0f19b6329c4a --- /dev/null +++ b/recipes/libcusparse/conda_build_config.yaml @@ -0,0 +1,2 @@ +arm_variant_type: # [aarch64] + - sbsa # [aarch64] diff --git a/recipes/libcusparse/meta.yaml b/recipes/libcusparse/meta.yaml new file mode 100644 index 0000000000000..db91ad7ceaa39 --- /dev/null +++ b/recipes/libcusparse/meta.yaml @@ -0,0 +1,161 @@ +{% set name = "libcusparse" %} +{% set version = "12.0.0.76" %} +{% set cuda_version = "12.0" %} +{% set platform = "linux-x86_64" %} # [linux64] +{% set platform = "linux-ppc64le" %} # [ppc64le] +{% set platform = "linux-sbsa" %} # [aarch64] +{% set platform = "windows-x86_64" %} # [win] +{% set target_name = "x86_64-linux" %} # [linux64] +{% set target_name = "ppc64le-linux" %} # [ppc64le] +{% set target_name = "sbsa-linux" %} # [aarch64] +{% set target_name = "x64" %} # [win] +{% set extension = "tar.xz" %} # [not win] +{% set extension = "zip" %} # [win] + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://developer.download.nvidia.com/compute/cuda/redist/{{ name }}/{{ platform }}/{{ name }}-{{ platform }}-{{ version }}-archive.{{ extension }} + sha256: 66bd1962f4905b6fc49446d5b2570bcd6171a96833b93f44ad4fc5650f47a496 # [linux64] + sha256: 36b5f682ebe21089d1bbc8250eabd18c9c9a8bf498b5f878ea4944fda16d8203 # [ppc64le] + sha256: ee3a2ff7becc449aeda6b2cec11ad7f0606cef4b54eb6511d5f0c1166c79cc80 # [aarch64] + sha256: a475bc85cfc204aff825e3e5d97d7c1993d3f2cfec22a87e76b8d596fc496a02 # [win] + +build: + number: 0 + skip: true # [osx] + +outputs: + - name: libcusparse + files: + - lib/libcusparse.so.* # [linux] + - targets/{{ target_name }}/lib/libcusparse*.so.* # [linux] + - Library\bin\cusparse*.dll # [win] + requirements: + build: + - {{ compiler("c") }} + - {{ compiler("cxx") }} + - arm-variant * {{ arm_variant_type }} # [aarch64] + - sysroot_{{ target_platform }} 2.17 # [linux] + host: + - cuda-version {{ cuda_version }} + - libnvjitlink + run: + - {{ pin_compatible("cuda-version", max_pin="x.x") }} + - {{ pin_compatible("libnvjitlink", max_pin="x.x") }} + run_constrained: + - arm-variant * {{ arm_variant_type }} # [aarch64] + test: + commands: + - test -L $PREFIX/lib/libcusparse.so.{{ version }} # [linux] + - test -L $PREFIX/lib/libcusparse.so.{{ version.split(".")[0] }} # [linux] + - test -L $PREFIX/{{ target_name }}/lib/libcusparse.so.{{ version }} # [linux] + - test -f $PREFIX/{{ target_name }}/lib/libcusparse.so.{{ version.split(".")[0] }} # [linux] + - if not exist %LIBRARY_BIN%\cusparse*.dll exit 1 # [win] + about: + home: https://developer.nvidia.com/cusparse + license_file: LICENSE + license: LicenseRef-NVIDIA-End-User-License-Agreement + license_url: https://docs.nvidia.com/cuda/eula/index.html + summary: CUDA Sparse Matrix Library + description: | + cuSPARSE - Basic Linear Algebra for Sparse Matrices on NVIDIA GPUs + doc_url: https://docs.nvidia.com/cuda/cusparse/index.html + + - name: libcusparse-dev + build: + run_exports: + - {{ pin_subpackage("libcusparse", max_pin="x") }} + files: + - lib/libcusparse.so # [linux] + - lib/pkgconfig # [linux] + - targets/{{ target_name }}/include # [linux] + - targets/{{ target_name }}/lib/libcusparse.so # [linux] + - targets/{{ target_name }}/lib/stubs # [linux] + # Not shipping Fortran bindings (in src) on Windows for now + - targets/{{ target_name }}/libcusparse/src # [linux] + - Library\include # [win] + - Library\lib # [win] + requirements: + build: + - {{ compiler("c") }} + - {{ compiler("cxx") }} + - arm-variant * {{ arm_variant_type }} # [aarch64] + - sysroot_{{ target_platform }} 2.17 # [linux] + host: + - cuda-version {{ cuda_version }} + run: + - {{ pin_compatible("cuda-version", max_pin="x.x") }} + - {{ pin_subpackage("libcusparse", exact=True) }} + run_constrained: + - arm-variant * {{ arm_variant_type }} # [aarch64] + - libcusparse-static >={{ version }} # [linux] + test: + commands: + - test -L $PREFIX/lib/libcusparse.so # [linux] + - test -f $PREFIX/lib/pkgconfig/cusparse*.pc # [linux] + - test -f $PREFIX/targets/{{ target_name }}/include/cusparse.h # [linux] + - test -L $PREFIX/targets/{{ target_name }}/lib/libcusparse.so # [linux] + - test -f $PREFIX/targets/{{ target_name }}/lib/stubs/libcusparse.so # [linux] + - test -f $PREFIX/targets/{{ target_name }}/libcusparse/src/cusparse_fortran.c # [linux] + - test -f $PREFIX/targets/{{ target_name }}/libcusparse/src/cusparse_fortran.h # [linux] + - test -f $PREFIX/targets/{{ target_name }}/libcusparse/src/cusparse_fortran_common.h # [linux] + - if not exist %LIBRARY_INC%\cusparse.h exit 1 # [win] + - if not exist %LIBRARY_LIB%\cusparse.lib exit 1 # [win] + about: + home: https://developer.nvidia.com/cusparse + license_file: LICENSE + license: LicenseRef-NVIDIA-End-User-License-Agreement + license_url: https://docs.nvidia.com/cuda/eula/index.html + summary: CUDA Sparse Matrix Library + description: | + cuSPARSE - Basic Linear Algebra for Sparse Matrices on NVIDIA GPUs + doc_url: https://docs.nvidia.com/cuda/cusparse/index.html + + - name: libcusparse-static + build: + skip: true # [win] + files: + - targets/{{ target_name }}/lib/libcusparse_static.a + requirements: + build: + - {{ compiler("c") }} + - {{ compiler("cxx") }} + - arm-variant * {{ arm_variant_type }} # [aarch64] + - sysroot_{{ target_platform }} 2.17 # [linux] + host: + - cuda-version {{ cuda_version }} + - libnvjitlink-static + run: + - {{ pin_compatible("cuda-version", max_pin="x.x") }} + - {{ pin_compatible("libnvjitlink-static", max_pin="x.x") }} + run_constrained: + - arm-variant * {{ arm_variant_type }} # [aarch64] + test: + commands: + - test -f $PREFIX/targets/{{ target_name }}/lib/libcusparse_static.a + about: + home: https://developer.nvidia.com/cusparse + license_file: LICENSE + license: LicenseRef-NVIDIA-End-User-License-Agreement + license_url: https://docs.nvidia.com/cuda/eula/index.html + summary: CUDA Sparse Matrix Library + description: | + cuSPARSE - Basic Linear Algebra for Sparse Matrices on NVIDIA GPUs + doc_url: https://docs.nvidia.com/cuda/cusparse/index.html + +about: + home: https://developer.nvidia.com/cusparse + license_file: LICENSE + license: LicenseRef-NVIDIA-End-User-License-Agreement + license_url: https://docs.nvidia.com/cuda/eula/index.html + summary: CUDA Sparse Matrix Library + description: | + cuSPARSE - Basic Linear Algebra for Sparse Matrices on NVIDIA GPUs + doc_url: https://docs.nvidia.com/cuda/cusparse/index.html + +extra: + recipe-maintainers: + - adibbley diff --git a/recipes/libnvjitlink/bld.bat b/recipes/libnvjitlink/bld.bat new file mode 100644 index 0000000000000..de978a2aae7bb --- /dev/null +++ b/recipes/libnvjitlink/bld.bat @@ -0,0 +1,5 @@ +if not exist %PREFIX% mkdir %PREFIX% + +move lib\x64\* %LIBRARY_LIB% +move include\* %LIBRARY_INC% +move bin\* %LIBRARY_BIN% diff --git a/recipes/libnvjitlink/build.sh b/recipes/libnvjitlink/build.sh new file mode 100644 index 0000000000000..3668151ad1476 --- /dev/null +++ b/recipes/libnvjitlink/build.sh @@ -0,0 +1,33 @@ +#!/bin/bash + +# Install to conda style directories +[[ -d lib64 ]] && mv lib64 lib +mkdir -p ${PREFIX}/lib +[[ -d pkg-config ]] && mv pkg-config ${PREFIX}/lib/pkgconfig +[[ -d "$PREFIX/lib/pkgconfig" ]] && sed -E -i "s|cudaroot=.+|cudaroot=$PREFIX|g" $PREFIX/lib/pkgconfig/nvjitlink*.pc + +[[ ${target_platform} == "linux-64" ]] && targetsDir="targets/x86_64-linux" +[[ ${target_platform} == "linux-ppc64le" ]] && targetsDir="targets/ppc64le-linux" +[[ ${target_platform} == "linux-aarch64" ]] && targetsDir="targets/sbsa-linux" + +for i in `ls`; do + [[ $i == "build_env_setup.sh" ]] && continue + [[ $i == "conda_build.sh" ]] && continue + [[ $i == "metadata_conda_debug.yaml" ]] && continue + if [[ $i == "lib" ]] || [[ $i == "include" ]]; then + # Headers and libraries are installed to targetsDir + mkdir -p ${PREFIX}/${targetsDir} + mkdir -p ${PREFIX}/$i + cp -rv $i ${PREFIX}/${targetsDir} + if [[ $i == "lib" ]]; then + for j in "$i"/*.so*; do + # Shared libraries are symlinked in $PREFIX/lib + ln -s ${PREFIX}/${targetsDir}/$j ${PREFIX}/$j + done + fi + else + # Put all other files in targetsDir + mkdir -p ${PREFIX}/${targetsDir}/${PKG_NAME} + cp -rv $i ${PREFIX}/${targetsDir}/${PKG_NAME} + fi +done diff --git a/recipes/libnvjitlink/conda_build_config.yaml b/recipes/libnvjitlink/conda_build_config.yaml new file mode 100644 index 0000000000000..f0f19b6329c4a --- /dev/null +++ b/recipes/libnvjitlink/conda_build_config.yaml @@ -0,0 +1,2 @@ +arm_variant_type: # [aarch64] + - sbsa # [aarch64] diff --git a/recipes/libnvjitlink/meta.yaml b/recipes/libnvjitlink/meta.yaml new file mode 100644 index 0000000000000..3360177432fe1 --- /dev/null +++ b/recipes/libnvjitlink/meta.yaml @@ -0,0 +1,151 @@ +{% set name = "libnvjitlink" %} +{% set version = "12.0.76" %} +{% set cuda_version = "12.0" %} +{% set platform = "linux-x86_64" %} # [linux64] +{% set platform = "linux-ppc64le" %} # [ppc64le] +{% set platform = "linux-sbsa" %} # [aarch64] +{% set platform = "windows-x86_64" %} # [win] +{% set target_name = "x86_64-linux" %} # [linux64] +{% set target_name = "ppc64le-linux" %} # [ppc64le] +{% set target_name = "sbsa-linux" %} # [aarch64] +{% set target_name = "x64" %} # [win] +{% set extension = "tar.xz" %} # [not win] +{% set extension = "zip" %} # [win] + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://developer.download.nvidia.com/compute/cuda/redist/{{ name }}/{{ platform }}/{{ name }}-{{ platform }}-{{ version }}-archive.{{ extension }} + sha256: 92a70db1ee90f1816a40d4d2019e0a59c43eebb9f3eb1208abedcc00a13e48be # [linux64] + sha256: dd317e1d052b4231ab95d1b472105640f617f7d250aacc5bc1c952aab93d7483 # [ppc64le] + sha256: 9f18090f6587e95be0ee424f07358eeb0e15c5ab3f8636870f68dd84a92ed2e6 # [aarch64] + sha256: cae74b6790174b283d892bb20e1ff91bff13c8a2a8486de4f417e09675469372 # [win] + +build: + number: 0 + skip: true # [osx] + +outputs: + - name: libnvjitlink + files: + - lib/libnvJitLink.so.* # [linux] + - targets/{{ target_name }}/lib/libnvJitLink.so.* # [linux] + - Library\bin\nvJitLink*.dll # [win] + requirements: + build: + - {{ compiler("c") }} + - {{ compiler("cxx") }} + - arm-variant * {{ arm_variant_type }} # [aarch64] + - sysroot_{{ target_platform }} 2.17 # [linux] + host: + - cuda-version {{ cuda_version }} + run: + - {{ pin_compatible("cuda-version", max_pin="x.x") }} + run_constrained: + - arm-variant * {{ arm_variant_type }} # [aarch64] + test: + commands: + - test -L $PREFIX/lib/libnvJitLink.so.{{ version }} # [linux] + - test -L $PREFIX/lib/libnvJitLink.so.{{ version.split(".")[0] }} # [linux] + - test -L $PREFIX/targets/{{ target_name }}/lib/libnvJitLink.so.{{ version }} # [linux] + - test -f $PREFIX/targets/{{ target_name }}/lib/libnvJitLink.so.{{ version.split(".")[0] }} # [linux] + - if not exist %LIBRARY_BIN%\nvJitLink*.dll exit 1 # [win] + about: + home: https://developer.nvidia.com/cuda-toolkit + license_file: LICENSE + license: LicenseRef-NVIDIA-End-User-License-Agreement + license_url: https://docs.nvidia.com/cuda/eula/index.html + summary: CUDA nvJitLink library + description: | + nvJitLink - Just-in-Time Link Time Optimization (JIT LTO) + doc_url: https://docs.nvidia.com/cuda/nvjitlink/ + + - name: libnvjitlink-dev + build: + run_exports: + - {{ pin_subpackage("libnvjitlink", max_pin="x") }} + files: + - lib/libnvJitLink*.so # [linux] + - lib/pkgconfig # [linux] + - targets/{{ target_name }}/include/nvJitLink.h # [linux] + - targets/{{ target_name }}/lib/libnvJitLink*.so # [linux] + #- targets/{{ target_name }}/lib/stubs # [linux] # bug: currently missing + - Library\include # [win] + - Library\lib\nvJitLink.lib # [win] + requirements: + build: + - {{ compiler("c") }} + - {{ compiler("cxx") }} + - arm-variant * {{ arm_variant_type }} # [aarch64] + - sysroot_{{ target_platform }} 2.17 # [linux] + host: + - cuda-version {{ cuda_version }} + run: + - {{ pin_compatible("cuda-version", max_pin="x.x") }} + - {{ pin_subpackage("libnvjitlink", exact=True) }} + run_constrained: + - arm-variant * {{ arm_variant_type }} # [aarch64] + - libnvjitlink-static >={{ version }} + test: + commands: + - test -L $PREFIX/lib/libnvJitLink.so # [linux] + - test -f $PREFIX/lib/pkgconfig/nvjitlink*.pc # [linux] + - test -f $PREFIX/targets/{{ target_name }}/include/nvJitLink.h # [linux] + - test -L $PREFIX/targets/{{ target_name }}/lib/libnvJitLink.so # [linux] + - if not exist %LIBRARY_INC%\nvJitLink.h exit 1 # [win] + - if not exist %LIBRARY_LIB%\nvJitLink.lib exit 1 # [win] + about: + home: https://developer.nvidia.com/cuda-toolkit + license_file: LICENSE + license: LicenseRef-NVIDIA-End-User-License-Agreement + license_url: https://docs.nvidia.com/cuda/eula/index.html + summary: CUDA nvJitLink library + description: | + nvJitLink - Just-in-Time Link Time Optimization (JIT LTO) + doc_url: https://docs.nvidia.com/cuda/nvjitlink/index.html + + - name: libnvjitlink-static + files: + - targets/{{ target_name }}/lib/libnvJitLink*_static.a # [linux] + - Library\lib\nvJitLink_static.lib # [win] + requirements: + build: + - {{ compiler("c") }} + - {{ compiler("cxx") }} + - arm-variant * {{ arm_variant_type }} # [aarch64] + - sysroot_{{ target_platform }} 2.17 # [linux] + host: + - cuda-version {{ cuda_version }} + run: + - {{ pin_compatible("cuda-version", max_pin="x.x") }} + run_constrained: + - arm-variant * {{ arm_variant_type }} # [aarch64] + test: + commands: + - test -f $PREFIX/targets/{{ target_name }}/lib/libnvJitLink_static.a # [linux] + - if not exist %LIBRARY_LIB%\nvJitLink_static.lib exit 1 # [win] + about: + home: https://developer.nvidia.com/cuda-toolkit + license_file: LICENSE + license: LicenseRef-NVIDIA-End-User-License-Agreement + license_url: https://docs.nvidia.com/cuda/eula/index.html + summary: CUDA nvJitLink library + description: | + nvJitLink - Just-in-Time Link Time Optimization (JIT LTO) + doc_url: https://docs.nvidia.com/cuda/nvjitlink/index.html + +about: + home: https://developer.nvidia.com/cuda-toolkit + license_file: LICENSE + license: LicenseRef-NVIDIA-End-User-License-Agreement + license_url: https://docs.nvidia.com/cuda/eula/index.html + summary: CUDA nvJitLink library + description: | + nvJitLink - Just-in-Time Link Time Optimization (JIT LTO) + doc_url: https://docs.nvidia.com/cuda/nvjitlink/index.html + +extra: + recipe-maintainers: + - adibbley