Unverified Commit bbdb8416 authored by Samuel Ainsworth's avatar Samuel Ainsworth Committed by GitHub
Browse files

Merge pull request #233851 from ConnorBaker/feat/cudnn_8_9_1

cudaPackages.cudnn: version bumps; remove patch from name
parents 80c63c04 222d9662
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -8,7 +8,7 @@ A package set is available for each CUDA version, so for example
`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.
`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
@@ -28,7 +28,7 @@ set.
```nix
mypkg = let
  cudaPackages = cudaPackages_11_5.overrideScope' (final: prev: {
    cudnn = prev.cudnn_8_3_2;
    cudnn = prev.cudnn_8_3;
  }});
in callPackage { inherit cudaPackages; };
```
+1 −1
Original line number Diff line number Diff line
@@ -27,7 +27,7 @@ let
  # 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;
    else cudaPackages.cudnn_7_6;
in

assert leveldbSupport -> (leveldb != null && snappy != null);
+7 −13
Original line number Diff line number Diff line
@@ -11,29 +11,23 @@
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 ".")
  ];
  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_${strings.replaceStrings ["."] ["_"] (majorMinorPatch version)}";
  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:
    strings.versionAtLeast cudaVersion release.minCudaVersion
    && strings.versionAtLeast release.maxCudaVersion cudaVersion;
    versionAtLeast cudaVersion release.minCudaVersion
    && versionAtLeast release.maxCudaVersion cudaVersion;

  # useCudatoolkitRunfile :: Bool
  useCudatoolkitRunfile = strings.versionOlder cudaVersion "11.3.999";
  useCudatoolkitRunfile = versionOlder cudaVersion "11.3.999";

  # buildCuDnnPackage :: Release -> Derivation
  buildCuDnnPackage = callPackage ./generic.nix {inherit useCudatoolkitRunfile;};
+20 −6
Original line number Diff line number Diff line
@@ -155,17 +155,31 @@
    hash = "sha256-l2xMunIzyXrnQAavq1Fyl2MAukD1slCiH4z3H1nJ920=";
  }
  {
    version = "8.8.0.121";
    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.0.121_cuda11-archive.tar.xz";
    hash = "sha256-YgRkdgdtG0VfsT+3izjTSWusr7/bsElPszkiQKBEZuo=";
    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.0.121";
    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.0.121_cuda12-archive.tar.xz";
    hash = "sha256-oHkrZmyq9ZOp3UEwl5V4/Tp4Iw9EB2RcKVcA7456qvI=";
    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=";
  }
]