Merge pull request #233851 from ConnorBaker/feat/cudnn_8_9_1

cudaPackages.cudnn: version bumps; remove patch from name

Changed files
+30 -22
doc
languages-frameworks
pkgs
applications
science
math
caffe
development
libraries
science
+2 -2
doc/languages-frameworks/cuda.section.md
···
`cudaPackages_11_6`. Within each set is a matching version of the above listed
packages. Additionally, other versions of the packages that are packaged and
compatible are available as well. For example, there can be a
-
`cudaPackages.cudnn_8_3_2` package.
To use one or more CUDA packages in an expression, give the expression a `cudaPackages` parameter, and in case CUDA is optional
```nix
···
```nix
mypkg = let
cudaPackages = cudaPackages_11_5.overrideScope' (final: prev: {
-
cudnn = prev.cudnn_8_3_2;
}});
in callPackage { inherit cudaPackages; };
```
···
`cudaPackages_11_6`. Within each set is a matching version of the above listed
packages. Additionally, other versions of the packages that are packaged and
compatible are available as well. For example, there can be a
+
`cudaPackages.cudnn_8_3` package.
To use one or more CUDA packages in an expression, give the expression a `cudaPackages` parameter, and in case CUDA is optional
```nix
···
```nix
mypkg = let
cudaPackages = cudaPackages_11_5.overrideScope' (final: prev: {
+
cudnn = prev.cudnn_8_3;
}});
in callPackage { inherit cudaPackages; };
```
+1 -1
pkgs/applications/science/math/caffe/default.nix
···
# Earlier versions of cudatoolkit use pre-8.x CUDNN, so we use the default.
cudnn = if lib.versionOlder cudatoolkit.version "10.1"
then cudaPackages.cudnn
-
else cudaPackages.cudnn_7_6_5;
in
assert leveldbSupport -> (leveldb != null && snappy != null);
···
# Earlier versions of cudatoolkit use pre-8.x CUDNN, so we use the default.
cudnn = if lib.versionOlder cudatoolkit.version "10.1"
then cudaPackages.cudnn
+
else cudaPackages.cudnn_7_6;
in
assert leveldbSupport -> (leveldb != null && snappy != null);
+7 -13
pkgs/development/libraries/science/math/cudnn/extension.nix
···
final: prev: let
inherit (final) callPackage;
inherit (prev) cudaVersion;
-
inherit (prev.lib) attrsets lists versions strings trivial;
-
-
# Utilities
-
# majorMinorPatch :: String -> String
-
majorMinorPatch = (trivial.flip trivial.pipe) [
-
(versions.splitVersion)
-
(lists.take 3)
-
(strings.concatStringsSep ".")
-
];
# Compute versioned attribute name to be used in this package set
# computeName :: String -> String
-
computeName = version: "cudnn_${strings.replaceStrings ["."] ["_"] (majorMinorPatch version)}";
# Check whether a CUDNN release supports our CUDA version
# Thankfully we're able to do lexicographic comparison on the version strings
# isSupported :: Release -> Bool
isSupported = release:
-
strings.versionAtLeast cudaVersion release.minCudaVersion
-
&& strings.versionAtLeast release.maxCudaVersion cudaVersion;
# useCudatoolkitRunfile :: Bool
-
useCudatoolkitRunfile = strings.versionOlder cudaVersion "11.3.999";
# buildCuDnnPackage :: Release -> Derivation
buildCuDnnPackage = callPackage ./generic.nix {inherit useCudatoolkitRunfile;};
···
final: prev: let
inherit (final) callPackage;
inherit (prev) cudaVersion;
+
inherit (prev.lib) attrsets lists versions;
+
inherit (prev.lib.strings) replaceStrings versionAtLeast versionOlder;
# Compute versioned attribute name to be used in this package set
+
# Patch version changes should not break the build, so we only use major and minor
# computeName :: String -> String
+
computeName = version: "cudnn_${replaceStrings ["."] ["_"] (versions.majorMinor version)}";
# Check whether a CUDNN release supports our CUDA version
# Thankfully we're able to do lexicographic comparison on the version strings
# isSupported :: Release -> Bool
isSupported = release:
+
versionAtLeast cudaVersion release.minCudaVersion
+
&& versionAtLeast release.maxCudaVersion cudaVersion;
# useCudatoolkitRunfile :: Bool
+
useCudatoolkitRunfile = versionOlder cudaVersion "11.3.999";
# buildCuDnnPackage :: Release -> Derivation
buildCuDnnPackage = callPackage ./generic.nix {inherit useCudatoolkitRunfile;};
+20 -6
pkgs/development/libraries/science/math/cudnn/releases.nix
···
hash = "sha256-l2xMunIzyXrnQAavq1Fyl2MAukD1slCiH4z3H1nJ920=";
}
{
-
version = "8.8.0.121";
minCudaVersion = "11.0";
maxCudaVersion = "11.8";
-
url = "https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/linux-x86_64/cudnn-linux-x86_64-8.8.0.121_cuda11-archive.tar.xz";
-
hash = "sha256-YgRkdgdtG0VfsT+3izjTSWusr7/bsElPszkiQKBEZuo=";
}
{
-
version = "8.8.0.121";
minCudaVersion = "12.0";
maxCudaVersion = "12.0";
-
url = "https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/linux-x86_64/cudnn-linux-x86_64-8.8.0.121_cuda12-archive.tar.xz";
-
hash = "sha256-oHkrZmyq9ZOp3UEwl5V4/Tp4Iw9EB2RcKVcA7456qvI=";
}
]
···
hash = "sha256-l2xMunIzyXrnQAavq1Fyl2MAukD1slCiH4z3H1nJ920=";
}
{
+
version = "8.8.1.3";
minCudaVersion = "11.0";
maxCudaVersion = "11.8";
+
url = "https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/linux-x86_64/cudnn-linux-x86_64-8.8.1.3_cuda11-archive.tar.xz";
+
hash = "sha256-r3WEyuDMVSS1kT7wjCm6YVQRPGDrCjegWQqRtRWoqPk=";
}
{
+
version = "8.8.1.3";
minCudaVersion = "12.0";
maxCudaVersion = "12.0";
+
url = "https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/linux-x86_64/cudnn-linux-x86_64-8.8.1.3_cuda12-archive.tar.xz";
+
hash = "sha256-edd6dpx+cXWrx7XC7VxJQUjAYYqGQThyLIh/lcYjd3w=";
+
}
+
{
+
version = "8.9.1.23";
+
minCudaVersion = "11.0";
+
maxCudaVersion = "11.8";
+
url = "https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/linux-x86_64/cudnn-linux-x86_64-8.9.1.23_cuda11-archive.tar.xz";
+
hash = "sha256-ptmIcmfihZDJ25XOZcvpamaN8DUjOLfTN+BTLe0zSFw=";
+
}
+
{
+
version = "8.9.1.23";
+
minCudaVersion = "12.0";
+
maxCudaVersion = "12.1";
+
url = "https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/linux-x86_64/cudnn-linux-x86_64-8.9.1.23_cuda12-archive.tar.xz";
+
hash = "sha256-NRY8XFQr4MURc4sn4lI1GTy+7cXg4AbkSxzerxki6D4=";
}
]