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 ]; diff --git a/pkgs/development/cuda-modules/cudnn/releases.nix b/pkgs/development/cuda-modules/cudnn/releases.nix index 7aced760119a..2912df74cd87 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="; } @@ -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 = [ ]; @@ -85,7 +92,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="; } @@ -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 = [ @@ -207,7 +228,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="; } @@ -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="; + } ]; }; } 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; } ] 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}") diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 7c4ab4ea42c0..057c6c48359c 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;