cudaPackages_12_6: init at 12.6.0 (#377991)

This commit is contained in:
Pavol Rusnak
2025-02-20 16:46:19 +01:00
committed by GitHub
8 changed files with 2496 additions and 6 deletions
@@ -17,6 +17,7 @@ let
"12.2" = "12.2.2";
"12.3" = "12.3.0";
"12.4" = "12.4.0";
"12.6" = "12.6.0";
};
# Check if the current CUDA version is supported.
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -157,6 +157,12 @@ filterAndCreateOverrides {
cudaAtLeast,
gmp,
expat,
libxcrypt-legacy,
ncurses6,
python39,
python310,
python311,
python312,
stdenv,
lib,
}:
@@ -165,12 +171,35 @@ filterAndCreateOverrides {
prevAttrs.buildInputs
# x86_64 only needs gmp from 12.0 and on
++ lib.lists.optionals (cudaAtLeast "12.0") [ gmp ]
# Additional dependencies for CUDA 12.6 and later, which
# support multiple Python versions.
++ lib.lists.optionals (cudaAtLeast "12.6") [
libxcrypt-legacy
ncurses6
python39
python310
python311
python312
]
# aarch64,sbsa needs expat
++ lib.lists.optionals (stdenv.hostPlatform.isAarch64) [ expat ];
installPhase =
prevAttrs.installPhase
# Python 3.8 is not in nixpkgs anymore, delete Python 3.8 cuda-gdb support
# to avoid autopatchelf failing to find libpython3.8.so.
+ lib.optionalString (cudaAtLeast "12.6") ''
find $bin -name '*python3.8*' -delete
'';
};
cuda_nvcc =
{ backendStdenv, setupCudaHook }:
{
lib,
backendStdenv,
cudaOlder,
setupCudaHook,
}:
prevAttrs: {
# Merge "bin" and "dev" into "out" to avoid circular references
outputs = builtins.filter (
@@ -195,15 +224,20 @@ filterAndCreateOverrides {
# backend-stdenv.nix
postPatch =
let
nvvmReplace = lib.optionalString (cudaOlder "12.6") ''
--replace-fail \
'$(TOP)/$(_NVVM_BRANCH_)' \
"''${!outputBin}/nvvm" \
'';
in
(prevAttrs.postPatch or "")
+ ''
substituteInPlace bin/nvcc.profile \
--replace-fail \
'$(TOP)/$(_NVVM_BRANCH_)' \
"''${!outputBin}/nvvm" \
--replace-fail \
'$(TOP)/$(_TARGET_DIR_)/include' \
"''${!outputDev}/include"
"''${!outputDev}/include" \
${nvvmReplace}
cat << EOF >> bin/nvcc.profile
@@ -16,17 +16,22 @@
gst_all_1,
gtk2,
lib,
libxcrypt-legacy,
libxkbcommon,
libkrb5,
krb5,
makeWrapper,
markForCudatoolkitRootHook,
ncurses5,
ncurses6,
numactl,
nss,
patchelf,
perl,
python3, # FIXME: CUDAToolkit 10 may still need python27
python39,
python310,
python311,
pulseaudio,
setupCudaHook,
stdenv,
@@ -145,7 +150,15 @@ backendStdenv.mkDerivation rec {
qtwebchannel
qtwebengine
])
));
))
++ lib.optionals (lib.versionAtLeast version "12.6") [
# libcrypt.so.1
libxcrypt-legacy
ncurses6
python39
python310
python311
];
# Prepended to runpaths by autoPatchelf.
# The order inherited from older rpath preFixup code
@@ -285,6 +298,11 @@ backendStdenv.mkDerivation rec {
+ lib.optionalString (lib.versions.majorMinor version == "11.8") ''
rm $out/include/include
''
# Python 3.8 is not in nixpkgs anymore, delete Python 3.8 cuda-gdb support
# to avoid autopatchelf failing to find libpython3.8.so.
+ lib.optionalString (lib.versionAtLeast version "12.6") ''
find $out -name '*python3.8*' -delete
''
+ ''
runHook postInstall
'';
@@ -93,4 +93,10 @@
url = "https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda_12.4.0_550.54.14_linux.run";
sha256 = "sha256-5qhC9OypSQV1zbaLaxu3jUe5Wol95I3uKSxDGJLlfRc=";
};
"12.6" = {
version = "12.6.0";
url = "https://developer.download.nvidia.com/compute/cuda/12.6.0/local_installers/cuda_12.6.0_560.28.03_linux.run";
sha256 = "sha256-MasEOU5psU3YZW4rRMKHfbGg6Jjf+KdUakxihDgQG5Q=";
};
}
@@ -103,6 +103,13 @@ let
clangMaxMajorVersion = "17";
gccMaxMajorVersion = "13";
};
# Added support for Clang 18
# https://docs.nvidia.com/cuda/archive/12.6.0/cuda-installation-guide-linux/index.html#host-compiler-support-policy
"12.6" = attrs."12.4" // {
clangMaxMajorVersion = "18";
};
};
in
attrs
+1
View File
@@ -2964,6 +2964,7 @@ with pkgs;
cudaPackages_12_2 = callPackage ./cuda-packages.nix { cudaVersion = "12.2"; };
cudaPackages_12_3 = callPackage ./cuda-packages.nix { cudaVersion = "12.3"; };
cudaPackages_12_4 = callPackage ./cuda-packages.nix { cudaVersion = "12.4"; };
cudaPackages_12_6 = callPackage ./cuda-packages.nix { cudaVersion = "12.6"; };
cudaPackages_12 = cudaPackages_12_4; # Latest supported by cudnn
cudaPackages = recurseIntoAttrs cudaPackages_12;