From e4a66e95b2ce8dc8fcc45b4406148d5a6dbc1b60 Mon Sep 17 00:00:00 2001 From: Pavol Rusnak Date: Sat, 1 Mar 2025 19:29:35 +0100 Subject: [PATCH 1/5] cudaPackages_12: 12.4 -> 12.8 --- pkgs/development/cuda-modules/cudnn/releases.nix | 6 +++--- pkgs/top-level/all-packages.nix | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/development/cuda-modules/cudnn/releases.nix b/pkgs/development/cuda-modules/cudnn/releases.nix index 7aced760119a..6c9f9a73fb92 100644 --- a/pkgs/development/cuda-modules/cudnn/releases.nix +++ b/pkgs/development/cuda-modules/cudnn/releases.nix @@ -10,7 +10,7 @@ { version = "8.9.5.30"; minCudaVersion = "12.0"; - maxCudaVersion = "12.4"; + maxCudaVersion = "12.8"; url = "https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/linux-aarch64/cudnn-linux-aarch64-8.9.5.30_cuda12-archive.tar.xz"; hash = "sha256-BJH3sC9VwiB362eL8xTB+RdSS9UHz1tlgjm/mKRyM6E="; } @@ -85,7 +85,7 @@ { version = "8.9.7.29"; minCudaVersion = "12.0"; - maxCudaVersion = "12.4"; + maxCudaVersion = "12.8"; url = "https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/linux-sbsa/cudnn-linux-sbsa-8.9.7.29_cuda12-archive.tar.xz"; hash = "sha256-6Yt8gAEHheXVygHuTOm1sMjHNYfqb4ZIvjTT+NHUe9E="; } @@ -207,7 +207,7 @@ { version = "8.9.7.29"; minCudaVersion = "12.0"; - maxCudaVersion = "12.4"; + maxCudaVersion = "12.8"; 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="; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index e40fe12a25a6..bdaa3bb9389a 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2860,7 +2860,7 @@ with pkgs; cudaPackages_12_5 = callPackage ./cuda-packages.nix { cudaVersion = "12.5"; }; cudaPackages_12_6 = callPackage ./cuda-packages.nix { cudaVersion = "12.6"; }; cudaPackages_12_8 = callPackage ./cuda-packages.nix { cudaVersion = "12.8"; }; - cudaPackages_12 = cudaPackages_12_4; # Latest supported by cudnn + cudaPackages_12 = cudaPackages_12_8; # Latest supported by cudnn cudaPackages = recurseIntoAttrs cudaPackages_12; From 80632f16c262e6bd94e00568fcf9ae427b98d5a0 Mon Sep 17 00:00:00 2001 From: Pavol Rusnak Date: Mon, 17 Mar 2025 00:45:28 +0100 Subject: [PATCH 2/5] onnxruntime: disable LTO for CUDA 12.8+ --- .../libraries/onnxruntime/default.nix | 40 +++++++++---------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/pkgs/development/libraries/onnxruntime/default.nix b/pkgs/development/libraries/onnxruntime/default.nix index 9b5ed2ae9b4c..cf147a644249 100644 --- a/pkgs/development/libraries/onnxruntime/default.nix +++ b/pkgs/development/libraries/onnxruntime/default.nix @@ -66,11 +66,11 @@ let nativeBuildInputs = [ cmake gbenchmark gtest ]; cmakeFlags = [ - "-DUSE_SYSTEM_GOOGLEBENCHMARK=ON" - "-DUSE_SYSTEM_GOOGLETEST=ON" - "-DUSE_SYSTEM_LIBS=ON" + (lib.cmakeBool "USE_SYSTEM_GOOGLEBENCHMARK" true) + (lib.cmakeBool "USE_SYSTEM_GOOGLETEST" true) + (lib.cmakeBool "USE_SYSTEM_LIBS" true) # 'clog' tests set 'CXX_STANDARD 11'; this conflicts with our 'gtest'. - "-DCLOG_BUILD_TESTS=OFF" + (lib.cmakeBool "CLOG_BUILD_TESTS" false) ]; }; @@ -178,27 +178,27 @@ effectiveStdenv.mkDerivation rec { cmakeDir = "../cmake"; cmakeFlags = [ - "-DABSL_ENABLE_INSTALL=ON" - "-DFETCHCONTENT_FULLY_DISCONNECTED=ON" - "-DFETCHCONTENT_QUIET=OFF" - "-DFETCHCONTENT_SOURCE_DIR_ABSEIL_CPP=${abseil-cpp_202407.src}" - "-DFETCHCONTENT_SOURCE_DIR_DLPACK=${dlpack}" - "-DFETCHCONTENT_SOURCE_DIR_FLATBUFFERS=${flatbuffers_23.src}" - "-DFETCHCONTENT_SOURCE_DIR_MP11=${mp11}" - "-DFETCHCONTENT_SOURCE_DIR_ONNX=${onnx}" - "-DFETCHCONTENT_SOURCE_DIR_RE2=${re2.src}" - "-DFETCHCONTENT_SOURCE_DIR_SAFEINT=${safeint}" - "-DFETCHCONTENT_TRY_FIND_PACKAGE_MODE=ALWAYS" + (lib.cmakeBool "ABSL_ENABLE_INSTALL" true) + (lib.cmakeBool "FETCHCONTENT_FULLY_DISCONNECTED" true) + (lib.cmakeBool "FETCHCONTENT_QUIET" false) + (lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_ABSEIL_CPP" "${abseil-cpp_202407.src}") + (lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_DLPACK" "${dlpack}") + (lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_FLATBUFFERS" "${flatbuffers_23.src}") + (lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_MP11" "${mp11}") + (lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_ONNX" "${onnx}") + (lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_RE2" "${re2.src}") + (lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_SAFEINT" "${safeint}") + (lib.cmakeFeature "FETCHCONTENT_TRY_FIND_PACKAGE_MODE" "ALWAYS") # fails to find protoc on darwin, so specify it - "-DONNX_CUSTOM_PROTOC_EXECUTABLE=${protobuf_21}/bin/protoc" - "-Donnxruntime_BUILD_SHARED_LIB=ON" + (lib.cmakeFeature "ONNX_CUSTOM_PROTOC_EXECUTABLE" "${protobuf_21}/bin/protoc") + (lib.cmakeBool "onnxruntime_BUILD_SHARED_LIB" true) (lib.cmakeBool "onnxruntime_BUILD_UNIT_TESTS" doCheck) - "-Donnxruntime_ENABLE_LTO=ON" - "-Donnxruntime_USE_FULL_PROTOBUF=OFF" + (lib.cmakeBool "onnxruntime_USE_FULL_PROTOBUF" false) (lib.cmakeBool "onnxruntime_USE_CUDA" cudaSupport) (lib.cmakeBool "onnxruntime_USE_NCCL" (cudaSupport && ncclSupport)) + (lib.cmakeBool "onnxruntime_ENABLE_LTO" (!cudaSupport || cudaPackages.cudaOlder "12.8")) ] ++ lib.optionals pythonSupport [ - "-Donnxruntime_ENABLE_PYTHON=ON" + (lib.cmakeBool "onnxruntime_ENABLE_PYTHON" true) ] ++ lib.optionals cudaSupport [ (lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_CUTLASS" "${cutlass}") (lib.cmakeFeature "onnxruntime_CUDNN_HOME" "${cudaPackages.cudnn}") From 9cf78b87eafe30ff303a6a46a3ad7c3b9341caf5 Mon Sep 17 00:00:00 2001 From: Pavol Rusnak Date: Mon, 17 Mar 2025 23:20:41 +0100 Subject: [PATCH 3/5] cudaPackages.gpus: disable Compute Capability 10.0a, 10.1, 10.1a and 12.0a to save space RTX 50{7,8,9}0 is Compute Capability 12.0 --- pkgs/development/cuda-modules/gpus.nix | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/pkgs/development/cuda-modules/gpus.nix b/pkgs/development/cuda-modules/gpus.nix index e2b6b34b4c3d..a5466a2ef15f 100644 --- a/pkgs/development/cuda-modules/gpus.nix +++ b/pkgs/development/cuda-modules/gpus.nix @@ -26,6 +26,9 @@ # Many thanks to Arnon Shimoni for maintaining a list of these architectures and capabilities. # Without your work, this would have been much more difficult. # https://arnon.dk/matching-sm-architectures-arch-and-gencode-for-various-nvidia-cards/ +# +# https://en.wikipedia.org/wiki/CUDA#GPUs_supported + [ { # Tesla K40 @@ -55,7 +58,7 @@ maxCudaVersion = null; } { - # Quadro M6000 , GeForce 900, GTX-970, GTX-980, GTX Titan X + # Quadro M6000, GeForce 900, GTX-970, GTX-980, GTX Titan X archName = "Maxwell"; computeCapability = "5.2"; isJetson = false; @@ -199,7 +202,7 @@ computeCapability = "10.0a"; isJetson = false; minCudaVersion = "12.8"; - dontDefaultAfter = null; + dontDefaultAfter = "12.0"; # disable to reduce size of OnnxRuntime and Torch CUDA binaries maxCudaVersion = null; } { @@ -208,7 +211,7 @@ computeCapability = "10.1"; isJetson = false; minCudaVersion = "12.8"; - dontDefaultAfter = null; + dontDefaultAfter = "12.0"; # disable to reduce size of OnnxRuntime and Torch CUDA binaries maxCudaVersion = null; } { @@ -217,7 +220,7 @@ computeCapability = "10.1a"; isJetson = false; minCudaVersion = "12.8"; - dontDefaultAfter = null; + dontDefaultAfter = "12.0"; # disable to reduce size of OnnxRuntime and Torch CUDA binaries maxCudaVersion = null; } { @@ -235,7 +238,7 @@ computeCapability = "12.0a"; isJetson = false; minCudaVersion = "12.8"; - dontDefaultAfter = null; + dontDefaultAfter = "12.0"; # disable to reduce size of OnnxRuntime and Torch CUDA binaries maxCudaVersion = null; } ] From c47502dada55c907ccdf46b86906264d032f5adf Mon Sep 17 00:00:00 2001 From: Pavol Rusnak Date: Thu, 20 Mar 2025 22:34:24 +0100 Subject: [PATCH 4/5] cudaPackages.cudnn_9_8: init at 9.8.0.87 --- .../cuda-modules/cudnn/releases.nix | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/pkgs/development/cuda-modules/cudnn/releases.nix b/pkgs/development/cuda-modules/cudnn/releases.nix index 6c9f9a73fb92..2912df74cd87 100644 --- a/pkgs/development/cuda-modules/cudnn/releases.nix +++ b/pkgs/development/cuda-modules/cudnn/releases.nix @@ -28,6 +28,13 @@ url = "https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/linux-aarch64/cudnn-linux-aarch64-9.7.1.26_cuda12-archive.tar.xz"; hash = "sha256-jDPWAXKOiJYpblPwg5FUSh7F0Dgg59LLnd+pX9y7r1w="; } + { + version = "9.8.0.87"; + minCudaVersion = "12.0"; + maxCudaVersion = "12.8"; + url = "https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/linux-aarch64/cudnn-linux-aarch64-9.8.0.87_cuda12-archive.tar.xz"; + hash = "sha256-8D7OP/B9FxnwYhiXOoeXzsG+OHzDF7qrW7EY3JiBmec="; + } ]; # powerpc linux-ppc64le = [ ]; @@ -117,6 +124,20 @@ url = "https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/linux-sbsa/cudnn-linux-sbsa-9.7.1.26_cuda11-archive.tar.xz"; hash = "sha256-JcpY/ylUAaj37bzrJlerSDxO5KgPmpL40Mvl8VquHN4="; } + { + version = "9.8.0.87"; + minCudaVersion = "12.0"; + maxCudaVersion = "12.8"; + url = "https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/linux-sbsa/cudnn-linux-sbsa-9.8.0.87_cuda12-archive.tar.xz"; + hash = "sha256-IvYvR08MuzW+9UCtsdhB2mPJzT33azxOQwEPQ2ss2Fw="; + } + { + version = "9.8.0.87"; + minCudaVersion = "11.8"; + maxCudaVersion = "11.8"; + url = "https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/linux-sbsa/cudnn-linux-sbsa-9.8.0.87_cuda11-archive.tar.xz"; + hash = "sha256-j/EXcV+zMjAy0bSJiAEXVWrYteV6kGAUPwy3I4TbdxA="; + } ]; # x86_64 linux-x86_64 = [ @@ -239,6 +260,20 @@ url = "https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/linux-x86_64/cudnn-linux-x86_64-9.7.1.26_cuda11-archive.tar.xz"; hash = "sha256-c6rfLRtyGjS9e5CQjQKQYlfyrdvSRs+NtY4h1o2FXqI="; } + { + version = "9.8.0.87"; + minCudaVersion = "12.0"; + maxCudaVersion = "12.8"; + url = "https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/linux-x86_64/cudnn-linux-x86_64-9.8.0.87_cuda12-archive.tar.xz"; + hash = "sha256-MhubM7sSh0BNk9VnLTUvFv6rxLIgrGrguG5LJ/JX3PQ="; + } + { + version = "9.8.0.87"; + minCudaVersion = "11.8"; + maxCudaVersion = "11.8"; + url = "https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/linux-x86_64/cudnn-linux-x86_64-9.8.0.87_cuda11-archive.tar.xz"; + hash = "sha256-z03674MR2YfWQKMi9mjNUkCsPlMCq+lhfdmRtbJTJ1g="; + } ]; }; } From 748896a2db6cafb61e6b29dfa71f904293443f6b Mon Sep 17 00:00:00 2001 From: Pavol Rusnak Date: Tue, 25 Mar 2025 18:53:52 +0100 Subject: [PATCH 5/5] maintainers: add prusnak to cuda team --- maintainers/team-list.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/maintainers/team-list.nix b/maintainers/team-list.nix index 199e2ff4f751..61a40c13ac3b 100644 --- a/maintainers/team-list.nix +++ b/maintainers/team-list.nix @@ -218,6 +218,7 @@ with lib.maintainers; cuda = { members = [ connorbaker + prusnak samuela SomeoneSerge ];