From ff4478e450b486f4f89655ea0bb1d9b1ff4b5418 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20de=20Kok?= Date: Sat, 3 Aug 2024 10:14:12 +0200 Subject: [PATCH 1/4] cudaPackages.cudnn_9_3: init at 9.3.0.75 --- pkgs/development/cuda-modules/cudnn/fixup.nix | 17 ++++++++++++----- .../development/cuda-modules/cudnn/releases.nix | 15 +++++++++++++++ 2 files changed, 27 insertions(+), 5 deletions(-) diff --git a/pkgs/development/cuda-modules/cudnn/fixup.nix b/pkgs/development/cuda-modules/cudnn/fixup.nix index 26c8ec63f13e..054bb17e6830 100644 --- a/pkgs/development/cuda-modules/cudnn/fixup.nix +++ b/pkgs/development/cuda-modules/cudnn/fixup.nix @@ -38,12 +38,19 @@ finalAttrs: prevAttrs: { ++ lists.optionals finalAttrs.passthru.useCudatoolkitRunfile [ final.cudatoolkit ] ++ lists.optionals (!finalAttrs.passthru.useCudatoolkitRunfile) [ final.libcublas.lib ]; - # Tell autoPatchelf about runtime dependencies. + # Tell autoPatchelf about runtime dependencies. *_infer* libraries only + # exist in CuDNN 8. # NOTE: Versions from CUDNN releases have four components. - postFixup = strings.optionalString (strings.versionAtLeast finalAttrs.version "8.0.5.0") '' - ${meta.getExe' patchelf "patchelf"} $lib/lib/libcudnn.so --add-needed libcudnn_cnn_infer.so - ${meta.getExe' patchelf "patchelf"} $lib/lib/libcudnn_ops_infer.so --add-needed libcublas.so --add-needed libcublasLt.so - ''; + postFixup = + strings.optionalString + ( + strings.versionAtLeast finalAttrs.version "8.0.5.0" + && strings.versionOlder finalAttrs.version "9.0.0.0" + ) + '' + ${meta.getExe' patchelf "patchelf"} $lib/lib/libcudnn.so --add-needed libcudnn_cnn_infer.so + ${meta.getExe' patchelf "patchelf"} $lib/lib/libcudnn_ops_infer.so --add-needed libcublas.so --add-needed libcublasLt.so + ''; passthru.useCudatoolkitRunfile = strings.versionOlder cudaVersion "11.3.999"; diff --git a/pkgs/development/cuda-modules/cudnn/releases.nix b/pkgs/development/cuda-modules/cudnn/releases.nix index a0e9d8083b7a..26acaf4a3640 100644 --- a/pkgs/development/cuda-modules/cudnn/releases.nix +++ b/pkgs/development/cuda-modules/cudnn/releases.nix @@ -257,6 +257,21 @@ url = "https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/linux-x86_64/cudnn-linux-x86_64-8.9.7.29_cuda12-archive.tar.xz"; hash = "sha256-R1MzYlx+QqevPKCy91BqEG4wyTsaoAgc2cE++24h47s="; } + { + version = "9.3.0.75"; + minCudaVersion = "12.0"; + maxCudaVersion = "12.6"; + url = "https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/linux-x86_64/cudnn-linux-x86_64-9.3.0.75_cuda12-archive.tar.xz"; + hash = "sha256-PW7xCqBtyTOaR34rBX4IX/hQC73ueeQsfhNlXJ7/LCY="; + } + { + version = "9.3.0.75"; + minCudaVersion = "11.8"; + maxCudaVersion = "11.8"; + url = "https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/linux-x86_64/cudnn-linux-x86_64-9.3.0.75_cuda11-archive.tar.xz"; + hash = "sha256-Bp2ghM02jzn7gw1MTpMYAwZPtl52b0z33y2ko0aiup8"; + } + ]; }; } From 3772ad92a310298c362f3094ec2b575119eb8a6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20de=20Kok?= Date: Mon, 5 Aug 2024 18:33:14 +0200 Subject: [PATCH 2/4] cudaPackages.cudnn: replace use of `getExe'` by `getExe` --- pkgs/development/cuda-modules/cudnn/fixup.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/cuda-modules/cudnn/fixup.nix b/pkgs/development/cuda-modules/cudnn/fixup.nix index 054bb17e6830..183f38cfd4cf 100644 --- a/pkgs/development/cuda-modules/cudnn/fixup.nix +++ b/pkgs/development/cuda-modules/cudnn/fixup.nix @@ -48,8 +48,8 @@ finalAttrs: prevAttrs: { && strings.versionOlder finalAttrs.version "9.0.0.0" ) '' - ${meta.getExe' patchelf "patchelf"} $lib/lib/libcudnn.so --add-needed libcudnn_cnn_infer.so - ${meta.getExe' patchelf "patchelf"} $lib/lib/libcudnn_ops_infer.so --add-needed libcublas.so --add-needed libcublasLt.so + ${meta.getExe patchelf} $lib/lib/libcudnn.so --add-needed libcudnn_cnn_infer.so + ${meta.getExe patchelf} $lib/lib/libcudnn_ops_infer.so --add-needed libcublas.so --add-needed libcublasLt.so ''; passthru.useCudatoolkitRunfile = strings.versionOlder cudaVersion "11.3.999"; From 45892b6ec142eaf300d777926983a433b5842c88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20de=20Kok?= Date: Thu, 8 Aug 2024 06:41:34 +0000 Subject: [PATCH 3/4] python3Packages.cupy: use CuDNN 8 CuDNN 9 is not supported: https://github.com/cupy/cupy/issues/8215 --- pkgs/development/python-modules/cupy/default.nix | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/cupy/default.nix b/pkgs/development/python-modules/cupy/default.nix index 8435c1e988dd..6abfb273fcb5 100644 --- a/pkgs/development/python-modules/cupy/default.nix +++ b/pkgs/development/python-modules/cupy/default.nix @@ -17,7 +17,7 @@ }: let - inherit (cudaPackages) cudnn cutensor nccl; + inherit (cudaPackages) cudnn_8_9 cutensor nccl; outpaths = with cudaPackages; [ cuda_cccl # cuda_cudart @@ -83,7 +83,9 @@ buildPythonPackage rec { buildInputs = [ cudatoolkit-joined - cudnn + # CuDNN 9 is not supported: + # https://github.com/cupy/cupy/issues/8215 + cudnn_8_9 cutensor nccl ]; From 028f81c304e7479cb455ff771b853ad6fe15b1e3 Mon Sep 17 00:00:00 2001 From: Someone Serge Date: Sat, 10 Aug 2024 00:43:56 +0000 Subject: [PATCH 4/4] python3Packages.cupy: consume cudnn8 as part of the package set This makes overrides easier to write --- pkgs/development/python-modules/cupy/default.nix | 6 ++---- pkgs/top-level/python-packages.nix | 10 ++++++++-- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/pkgs/development/python-modules/cupy/default.nix b/pkgs/development/python-modules/cupy/default.nix index 6abfb273fcb5..8435c1e988dd 100644 --- a/pkgs/development/python-modules/cupy/default.nix +++ b/pkgs/development/python-modules/cupy/default.nix @@ -17,7 +17,7 @@ }: let - inherit (cudaPackages) cudnn_8_9 cutensor nccl; + inherit (cudaPackages) cudnn cutensor nccl; outpaths = with cudaPackages; [ cuda_cccl # cuda_cudart @@ -83,9 +83,7 @@ buildPythonPackage rec { buildInputs = [ cudatoolkit-joined - # CuDNN 9 is not supported: - # https://github.com/cupy/cupy/issues/8215 - cudnn_8_9 + cudnn cutensor nccl ]; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index e03d18b47b2f..5583c4f20a24 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -2692,8 +2692,14 @@ self: super: with self; { cufflinks = callPackage ../development/python-modules/cufflinks { }; - # cupy 12.2.0 possibly incompatible with cutensor 2.0 that comes with cudaPackages_12 - cupy = callPackage ../development/python-modules/cupy { cudaPackages = pkgs.cudaPackages_11; }; + cupy = callPackage ../development/python-modules/cupy { + # cupy 12.2.0 possibly incompatible with cutensor 2.0 that comes with cudaPackages_12 + cudaPackages = pkgs.cudaPackages_11.overrideScope (cu-fi: _: { + # CuDNN 9 is not supported: + # https://github.com/cupy/cupy/issues/8215 + cudnn = cu-fi.cudnn_8_9; + }); + }; curio = callPackage ../development/python-modules/curio { };