Loading pkgs/development/cuda-modules/_cuda/db/bootstrap/nvcc.nix +0 −105 Original line number Diff line number Diff line Loading @@ -28,111 +28,6 @@ ``` */ nvccCompatibilities = { # Our baseline # https://docs.nvidia.com/cuda/archive/11.0/cuda-toolkit-release-notes/index.html#cuda-compiler-new-features "11.0" = { clang = { maxMajorVersion = "9"; minMajorVersion = "7"; }; gcc = { maxMajorVersion = "9"; minMajorVersion = "6"; }; }; # Added support for Clang 10 and GCC 10 # https://docs.nvidia.com/cuda/archive/11.1.1/cuda-toolkit-release-notes/index.html#cuda-compiler-new-features "11.1" = { clang = { maxMajorVersion = "10"; minMajorVersion = "7"; }; gcc = { maxMajorVersion = "10"; minMajorVersion = "6"; }; }; # Added support for Clang 11 # https://docs.nvidia.com/cuda/archive/11.2.2/cuda-installation-guide-linux/index.html#system-requirements "11.2" = { clang = { maxMajorVersion = "11"; minMajorVersion = "7"; }; gcc = { maxMajorVersion = "10"; minMajorVersion = "6"; }; }; # No changes from 11.2 to 11.3 "11.3" = { clang = { maxMajorVersion = "11"; minMajorVersion = "7"; }; gcc = { maxMajorVersion = "10"; minMajorVersion = "6"; }; }; # Added support for Clang 12 and GCC 11 # https://docs.nvidia.com/cuda/archive/11.4.4/cuda-toolkit-release-notes/index.html#cuda-general-new-features # NOTE: There is a bug in the version of GLIBC that GCC 11 uses which causes it to fail to compile some CUDA # code. As such, we skip it for this release, and do the bump in 11.6 (skipping 11.5). # https://forums.developer.nvidia.com/t/cuda-11-5-samples-throw-multiple-error-attribute-malloc-does-not-take-arguments/192750/15 "11.4" = { clang = { maxMajorVersion = "12"; minMajorVersion = "7"; }; gcc = { maxMajorVersion = "10"; minMajorVersion = "6"; }; }; # No changes from 11.4 to 11.5 "11.5" = { clang = { maxMajorVersion = "12"; minMajorVersion = "7"; }; gcc = { maxMajorVersion = "10"; minMajorVersion = "6"; }; }; # No changes from 11.5 to 11.6 # However, as mentioned above, we add GCC 11 this release. "11.6" = { clang = { maxMajorVersion = "12"; minMajorVersion = "7"; }; gcc = { maxMajorVersion = "11"; minMajorVersion = "6"; }; }; # Added support for Clang 13 # https://docs.nvidia.com/cuda/archive/11.7.1/cuda-toolkit-release-notes/index.html#cuda-compiler-new-features "11.7" = { clang = { maxMajorVersion = "13"; minMajorVersion = "7"; }; gcc = { maxMajorVersion = "11"; minMajorVersion = "6"; }; }; # Added support for Clang 14 # https://docs.nvidia.com/cuda/archive/11.8.0/cuda-installation-guide-linux/index.html#system-requirements "11.8" = { Loading pkgs/development/cuda-modules/_cuda/fixups/cudnn.nix +6 −15 Original line number Diff line number Diff line { cudaOlder, cudatoolkit, cudaMajorMinorVersion, fetchurl, lib, libcublas ? null, # cuDNN uses CUDA Toolkit on old releases, where libcublas is not available. libcublas, patchelf, zlib, }: let inherit (lib) lists attrsets maintainers meta strings Loading @@ -33,11 +32,10 @@ finalAttrs: prevAttrs: { "CUDA version is too new" = cudaTooNew; }; buildInputs = prevAttrs.buildInputs or [ ] ++ [ zlib ] ++ lists.optionals finalAttrs.passthru.useCudatoolkitRunfile [ cudatoolkit ] ++ lists.optionals (!finalAttrs.passthru.useCudatoolkitRunfile) [ (libcublas.lib or null) ]; buildInputs = prevAttrs.buildInputs or [ ] ++ [ zlib (attrsets.getLib libcublas) ]; # Tell autoPatchelf about runtime dependencies. *_infer* libraries only # exist in CuDNN 8. Loading @@ -55,10 +53,6 @@ finalAttrs: prevAttrs: { ${meta.getExe patchelf} $lib/lib/libcudnn_ops_infer.so --add-needed libcublas.so --add-needed libcublasLt.so ''; passthru = prevAttrs.passthru or { } // { useCudatoolkitRunfile = cudaOlder "11.3.999"; }; meta = prevAttrs.meta or { } // { homepage = "https://developer.nvidia.com/cudnn"; maintainers = Loading @@ -70,15 +64,12 @@ finalAttrs: prevAttrs: { ]); # TODO(@connorbaker): Temporary workaround to avoid changing the derivation hash since introducing more # brokenConditions would change the derivation as they're top-level and __structuredAttrs is set. broken = prevAttrs.meta.broken or false || (finalAttrs.passthru.useCudatoolkitRunfile && libcublas == null); teams = prevAttrs.meta.teams or [ ]; license = { shortName = "cuDNN EULA"; fullName = "NVIDIA cuDNN Software License Agreement (EULA)"; url = "https://docs.nvidia.com/deeplearning/sdk/cudnn-sla/index.html#supplement"; free = false; redistributable = !finalAttrs.passthru.useCudatoolkitRunfile; }; }; } pkgs/development/cuda-modules/_cuda/fixups/libcufile.nix +0 −6 Original line number Diff line number Diff line { cudaOlder, lib, libcublas, numactl, rdma-core, Loading @@ -11,8 +9,4 @@ prevAttrs: { numactl rdma-core ]; # Before 11.7 libcufile depends on itself for some reason. autoPatchelfIgnoreMissingDeps = prevAttrs.autoPatchelfIgnoreMissingDeps or [ ] ++ lib.lists.optionals (cudaOlder "11.7") [ "libcufile.so.0" ]; } pkgs/development/cuda-modules/_cuda/fixups/libcusparse_lt.nix +5 −19 Original line number Diff line number Diff line { cuda_cudart ? null, cudaAtLeast, cudaOlder, cudatoolkit, cuda_cudart, lib, libcublas ? null, libcublas, }: finalAttrs: prevAttrs: { buildInputs = prevAttrs.buildInputs or [ ] ++ lib.optionals (cudaOlder "11.4") [ cudatoolkit ] ++ lib.optionals (cudaAtLeast "11.4") ( [ (libcublas.lib or null) ] ++ [ (lib.getLib libcublas) ] # For some reason, the 1.4.x release of cusparselt requires the cudart library. ++ lib.optionals (lib.hasPrefix "1.4" finalAttrs.version) [ (cuda_cudart.lib or null) ] ); ++ lib.optionals (lib.hasPrefix "1.4" finalAttrs.version) [ (lib.getLib cuda_cudart) ]; meta = prevAttrs.meta or { } // { description = "cuSPARSELt: A High-Performance CUDA Library for Sparse Matrix-Matrix Multiplication"; homepage = "https://developer.nvidia.com/cusparselt-downloads"; # TODO(@connorbaker): Temporary workaround to avoid changing the derivation hash since introducing more # brokenConditions would change the derivation as they're top-level and __structuredAttrs is set. broken = prevAttrs.meta.broken or false || ( cudaAtLeast "11.4" && (libcublas == null || (lib.hasPrefix "1.4" finalAttrs.version && cuda_cudart == null)) ); maintainers = prevAttrs.meta.maintainers or [ ] ++ [ lib.maintainers.sepiabrown ]; teams = prevAttrs.meta.teams or [ ]; license = lib.licenses.unfreeRedistributable // { Loading pkgs/development/cuda-modules/_cuda/fixups/libcutensor.nix +5 −19 Original line number Diff line number Diff line { cuda_cudart ? null, cudaAtLeast, cudaOlder, cudatoolkit, cuda_cudart, lib, libcublas ? null, libcublas, }: finalAttrs: prevAttrs: { buildInputs = prevAttrs.buildInputs or [ ] ++ lib.optionals (cudaOlder "11.4") [ cudatoolkit ] ++ lib.optionals (cudaAtLeast "11.4") ( [ (libcublas.lib or null) ] ++ [ (lib.getLib libcublas) ] # For some reason, the 1.4.x release of cuTENSOR requires the cudart library. ++ lib.optionals (lib.hasPrefix "1.4" finalAttrs.version) [ (cuda_cudart.lib or null) ] ); ++ lib.optionals (lib.hasPrefix "1.4" finalAttrs.version) [ (lib.getLib cuda_cudart) ]; meta = prevAttrs.meta or { } // { description = "cuTENSOR: A High-Performance CUDA Library For Tensor Primitives"; homepage = "https://developer.nvidia.com/cutensor"; # TODO(@connorbaker): Temporary workaround to avoid changing the derivation hash since introducing more # brokenConditions would change the derivation as they're top-level and __structuredAttrs is set. broken = prevAttrs.meta.broken or false || ( cudaAtLeast "11.4" && (libcublas == null || (lib.hasPrefix "1.4" finalAttrs.version && cuda_cudart == null)) ); maintainers = prevAttrs.meta.maintainers or [ ] ++ [ lib.maintainers.obsidian-systems-maintenance ]; teams = prevAttrs.meta.teams; license = lib.licenses.unfreeRedistributable // { Loading Loading
pkgs/development/cuda-modules/_cuda/db/bootstrap/nvcc.nix +0 −105 Original line number Diff line number Diff line Loading @@ -28,111 +28,6 @@ ``` */ nvccCompatibilities = { # Our baseline # https://docs.nvidia.com/cuda/archive/11.0/cuda-toolkit-release-notes/index.html#cuda-compiler-new-features "11.0" = { clang = { maxMajorVersion = "9"; minMajorVersion = "7"; }; gcc = { maxMajorVersion = "9"; minMajorVersion = "6"; }; }; # Added support for Clang 10 and GCC 10 # https://docs.nvidia.com/cuda/archive/11.1.1/cuda-toolkit-release-notes/index.html#cuda-compiler-new-features "11.1" = { clang = { maxMajorVersion = "10"; minMajorVersion = "7"; }; gcc = { maxMajorVersion = "10"; minMajorVersion = "6"; }; }; # Added support for Clang 11 # https://docs.nvidia.com/cuda/archive/11.2.2/cuda-installation-guide-linux/index.html#system-requirements "11.2" = { clang = { maxMajorVersion = "11"; minMajorVersion = "7"; }; gcc = { maxMajorVersion = "10"; minMajorVersion = "6"; }; }; # No changes from 11.2 to 11.3 "11.3" = { clang = { maxMajorVersion = "11"; minMajorVersion = "7"; }; gcc = { maxMajorVersion = "10"; minMajorVersion = "6"; }; }; # Added support for Clang 12 and GCC 11 # https://docs.nvidia.com/cuda/archive/11.4.4/cuda-toolkit-release-notes/index.html#cuda-general-new-features # NOTE: There is a bug in the version of GLIBC that GCC 11 uses which causes it to fail to compile some CUDA # code. As such, we skip it for this release, and do the bump in 11.6 (skipping 11.5). # https://forums.developer.nvidia.com/t/cuda-11-5-samples-throw-multiple-error-attribute-malloc-does-not-take-arguments/192750/15 "11.4" = { clang = { maxMajorVersion = "12"; minMajorVersion = "7"; }; gcc = { maxMajorVersion = "10"; minMajorVersion = "6"; }; }; # No changes from 11.4 to 11.5 "11.5" = { clang = { maxMajorVersion = "12"; minMajorVersion = "7"; }; gcc = { maxMajorVersion = "10"; minMajorVersion = "6"; }; }; # No changes from 11.5 to 11.6 # However, as mentioned above, we add GCC 11 this release. "11.6" = { clang = { maxMajorVersion = "12"; minMajorVersion = "7"; }; gcc = { maxMajorVersion = "11"; minMajorVersion = "6"; }; }; # Added support for Clang 13 # https://docs.nvidia.com/cuda/archive/11.7.1/cuda-toolkit-release-notes/index.html#cuda-compiler-new-features "11.7" = { clang = { maxMajorVersion = "13"; minMajorVersion = "7"; }; gcc = { maxMajorVersion = "11"; minMajorVersion = "6"; }; }; # Added support for Clang 14 # https://docs.nvidia.com/cuda/archive/11.8.0/cuda-installation-guide-linux/index.html#system-requirements "11.8" = { Loading
pkgs/development/cuda-modules/_cuda/fixups/cudnn.nix +6 −15 Original line number Diff line number Diff line { cudaOlder, cudatoolkit, cudaMajorMinorVersion, fetchurl, lib, libcublas ? null, # cuDNN uses CUDA Toolkit on old releases, where libcublas is not available. libcublas, patchelf, zlib, }: let inherit (lib) lists attrsets maintainers meta strings Loading @@ -33,11 +32,10 @@ finalAttrs: prevAttrs: { "CUDA version is too new" = cudaTooNew; }; buildInputs = prevAttrs.buildInputs or [ ] ++ [ zlib ] ++ lists.optionals finalAttrs.passthru.useCudatoolkitRunfile [ cudatoolkit ] ++ lists.optionals (!finalAttrs.passthru.useCudatoolkitRunfile) [ (libcublas.lib or null) ]; buildInputs = prevAttrs.buildInputs or [ ] ++ [ zlib (attrsets.getLib libcublas) ]; # Tell autoPatchelf about runtime dependencies. *_infer* libraries only # exist in CuDNN 8. Loading @@ -55,10 +53,6 @@ finalAttrs: prevAttrs: { ${meta.getExe patchelf} $lib/lib/libcudnn_ops_infer.so --add-needed libcublas.so --add-needed libcublasLt.so ''; passthru = prevAttrs.passthru or { } // { useCudatoolkitRunfile = cudaOlder "11.3.999"; }; meta = prevAttrs.meta or { } // { homepage = "https://developer.nvidia.com/cudnn"; maintainers = Loading @@ -70,15 +64,12 @@ finalAttrs: prevAttrs: { ]); # TODO(@connorbaker): Temporary workaround to avoid changing the derivation hash since introducing more # brokenConditions would change the derivation as they're top-level and __structuredAttrs is set. broken = prevAttrs.meta.broken or false || (finalAttrs.passthru.useCudatoolkitRunfile && libcublas == null); teams = prevAttrs.meta.teams or [ ]; license = { shortName = "cuDNN EULA"; fullName = "NVIDIA cuDNN Software License Agreement (EULA)"; url = "https://docs.nvidia.com/deeplearning/sdk/cudnn-sla/index.html#supplement"; free = false; redistributable = !finalAttrs.passthru.useCudatoolkitRunfile; }; }; }
pkgs/development/cuda-modules/_cuda/fixups/libcufile.nix +0 −6 Original line number Diff line number Diff line { cudaOlder, lib, libcublas, numactl, rdma-core, Loading @@ -11,8 +9,4 @@ prevAttrs: { numactl rdma-core ]; # Before 11.7 libcufile depends on itself for some reason. autoPatchelfIgnoreMissingDeps = prevAttrs.autoPatchelfIgnoreMissingDeps or [ ] ++ lib.lists.optionals (cudaOlder "11.7") [ "libcufile.so.0" ]; }
pkgs/development/cuda-modules/_cuda/fixups/libcusparse_lt.nix +5 −19 Original line number Diff line number Diff line { cuda_cudart ? null, cudaAtLeast, cudaOlder, cudatoolkit, cuda_cudart, lib, libcublas ? null, libcublas, }: finalAttrs: prevAttrs: { buildInputs = prevAttrs.buildInputs or [ ] ++ lib.optionals (cudaOlder "11.4") [ cudatoolkit ] ++ lib.optionals (cudaAtLeast "11.4") ( [ (libcublas.lib or null) ] ++ [ (lib.getLib libcublas) ] # For some reason, the 1.4.x release of cusparselt requires the cudart library. ++ lib.optionals (lib.hasPrefix "1.4" finalAttrs.version) [ (cuda_cudart.lib or null) ] ); ++ lib.optionals (lib.hasPrefix "1.4" finalAttrs.version) [ (lib.getLib cuda_cudart) ]; meta = prevAttrs.meta or { } // { description = "cuSPARSELt: A High-Performance CUDA Library for Sparse Matrix-Matrix Multiplication"; homepage = "https://developer.nvidia.com/cusparselt-downloads"; # TODO(@connorbaker): Temporary workaround to avoid changing the derivation hash since introducing more # brokenConditions would change the derivation as they're top-level and __structuredAttrs is set. broken = prevAttrs.meta.broken or false || ( cudaAtLeast "11.4" && (libcublas == null || (lib.hasPrefix "1.4" finalAttrs.version && cuda_cudart == null)) ); maintainers = prevAttrs.meta.maintainers or [ ] ++ [ lib.maintainers.sepiabrown ]; teams = prevAttrs.meta.teams or [ ]; license = lib.licenses.unfreeRedistributable // { Loading
pkgs/development/cuda-modules/_cuda/fixups/libcutensor.nix +5 −19 Original line number Diff line number Diff line { cuda_cudart ? null, cudaAtLeast, cudaOlder, cudatoolkit, cuda_cudart, lib, libcublas ? null, libcublas, }: finalAttrs: prevAttrs: { buildInputs = prevAttrs.buildInputs or [ ] ++ lib.optionals (cudaOlder "11.4") [ cudatoolkit ] ++ lib.optionals (cudaAtLeast "11.4") ( [ (libcublas.lib or null) ] ++ [ (lib.getLib libcublas) ] # For some reason, the 1.4.x release of cuTENSOR requires the cudart library. ++ lib.optionals (lib.hasPrefix "1.4" finalAttrs.version) [ (cuda_cudart.lib or null) ] ); ++ lib.optionals (lib.hasPrefix "1.4" finalAttrs.version) [ (lib.getLib cuda_cudart) ]; meta = prevAttrs.meta or { } // { description = "cuTENSOR: A High-Performance CUDA Library For Tensor Primitives"; homepage = "https://developer.nvidia.com/cutensor"; # TODO(@connorbaker): Temporary workaround to avoid changing the derivation hash since introducing more # brokenConditions would change the derivation as they're top-level and __structuredAttrs is set. broken = prevAttrs.meta.broken or false || ( cudaAtLeast "11.4" && (libcublas == null || (lib.hasPrefix "1.4" finalAttrs.version && cuda_cudart == null)) ); maintainers = prevAttrs.meta.maintainers or [ ] ++ [ lib.maintainers.obsidian-systems-maintenance ]; teams = prevAttrs.meta.teams; license = lib.licenses.unfreeRedistributable // { Loading