cudaPackages_13: init at 13.0.2

Signed-off-by: Connor Baker <ConnorBaker01@gmail.com>
This commit is contained in:
Connor Baker
2025-09-23 17:30:59 +00:00
parent 29ce053617
commit ebd2e2aa9c
13 changed files with 1321 additions and 6 deletions
@@ -104,6 +104,7 @@
"5.0" = {
archName = "Maxwell";
minCudaMajorMinorVersion = "10.0";
maxCudaMajorMinorVersion = "12.9";
dontDefaultAfterCudaMajorMinorVersion = "11.0";
};
@@ -111,6 +112,7 @@
"5.2" = {
archName = "Maxwell";
minCudaMajorMinorVersion = "10.0";
maxCudaMajorMinorVersion = "12.9";
dontDefaultAfterCudaMajorMinorVersion = "11.0";
};
@@ -118,6 +120,7 @@
"6.0" = {
archName = "Pascal";
minCudaMajorMinorVersion = "10.0";
maxCudaMajorMinorVersion = "12.9";
# Removed from TensorRT 10.0, which corresponds to CUDA 12.4 release.
# https://docs.nvidia.com/deeplearning/tensorrt/archives/tensorrt-1001/support-matrix/index.html
dontDefaultAfterCudaMajorMinorVersion = "12.3";
@@ -128,6 +131,7 @@
"6.1" = {
archName = "Pascal";
minCudaMajorMinorVersion = "10.0";
maxCudaMajorMinorVersion = "12.9";
# Removed from TensorRT 10.0, which corresponds to CUDA 12.4 release.
# https://docs.nvidia.com/deeplearning/tensorrt/archives/tensorrt-1001/support-matrix/index.html
dontDefaultAfterCudaMajorMinorVersion = "12.3";
@@ -137,6 +141,7 @@
"7.0" = {
archName = "Volta";
minCudaMajorMinorVersion = "10.0";
maxCudaMajorMinorVersion = "12.9";
# Removed from TensorRT 10.5, which corresponds to CUDA 12.6 release.
# https://docs.nvidia.com/deeplearning/tensorrt/archives/tensorrt-1050/support-matrix/index.html
dontDefaultAfterCudaMajorMinorVersion = "12.5";
@@ -163,20 +168,30 @@
minCudaMajorMinorVersion = "11.2";
};
# Jetson AGX Orin and Drive AGX Orin only
# Tegra T234 (Jetson Orin)
"8.7" = {
archName = "Ampere";
minCudaMajorMinorVersion = "11.5";
isJetson = true;
};
# Tegra T239 (Switch 2?)
# "8.8" = {
# archName = "Ampere";
# minCudaMajorMinorVersion = "13.0";
# # It's not a Jetson device, but it does use the same architecture.
# isJetson = true;
# # Should never be default.
# dontDefaultAfterCudaMajorMinorVersion = "13.0";
# };
# NVIDIA GeForce RTX 4090, RTX 4080, RTX 6000, Tesla L40
"8.9" = {
archName = "Ada";
minCudaMajorMinorVersion = "11.8";
};
# NVIDIA H100 (GH100)
# NVIDIA H100, H200, GH200
"9.0" = {
archName = "Hopper";
minCudaMajorMinorVersion = "11.8";
@@ -187,7 +202,7 @@
minCudaMajorMinorVersion = "12.0";
};
# NVIDIA B100
# NVIDIA B200, GB200
"10.0" = {
archName = "Blackwell";
minCudaMajorMinorVersion = "12.7";
@@ -203,26 +218,33 @@
minCudaMajorMinorVersion = "12.9";
};
# NVIDIA Jetson Thor Blackwell
# NVIDIA Jetson Thor Blackwell, T4000, T5000 (CUDA 12.7-12.9)
# Okay, so:
# - Support for Thor was added in CUDA 12.7, which was never released but is referenced in docs
# - NVIDIA changed the compute capability from 10.0 to 11.0 in CUDA 13.0
# - From CUDA 13.0 and on, 10.1 is no longer a valid compute capability
"10.1" = {
archName = "Blackwell";
minCudaMajorMinorVersion = "12.7";
maxCudaMajorMinorVersion = "12.9";
isJetson = true;
};
"10.1a" = {
archName = "Blackwell";
minCudaMajorMinorVersion = "12.7";
maxCudaMajorMinorVersion = "12.9";
isJetson = true;
};
"10.1f" = {
archName = "Blackwell";
minCudaMajorMinorVersion = "12.9";
maxCudaMajorMinorVersion = "12.9";
isJetson = true;
};
# NVIDIA ???
# NVIDIA B300
"10.3" = {
archName = "Blackwell";
minCudaMajorMinorVersion = "12.9";
@@ -238,6 +260,25 @@
minCudaMajorMinorVersion = "12.9";
};
# NVIDIA Jetson Thor Blackwell, T4000, T5000 (CUDA 13.0+)
"11.0" = {
archName = "Blackwell";
minCudaMajorMinorVersion = "13.0";
isJetson = true;
};
"11.0a" = {
archName = "Blackwell";
minCudaMajorMinorVersion = "13.0";
isJetson = true;
};
"11.0f" = {
archName = "Blackwell";
minCudaMajorMinorVersion = "13.0";
isJetson = true;
};
# NVIDIA GeForce RTX 5090 (GB202) etc.
"12.0" = {
archName = "Blackwell";
@@ -254,7 +295,7 @@
minCudaMajorMinorVersion = "12.9";
};
# NVIDIA ???
# NVIDIA DGX Spark
"12.1" = {
archName = "Blackwell";
minCudaMajorMinorVersion = "12.9";
@@ -66,5 +66,18 @@
minMajorVersion = "6";
};
};
# 12.9 to 13.0 adds support for GCC 15 and Clang 20
# https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#host-compiler-support-policy
"13.0" = {
clang = {
maxMajorVersion = "20";
minMajorVersion = "7";
};
gcc = {
maxMajorVersion = "15";
minMajorVersion = "6";
};
};
};
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,48 @@
{
buildRedist,
curl,
lib,
libibmad,
libibumad,
rdma-core,
ucx,
zlib,
}:
buildRedist (finalAttrs: {
redistName = "cuda";
pname = "collectx_bringup";
# TODO: Has python packages, bin, etc, lib, share, and collectx directory,
# which has its own bin and lib directories.
outputs = [ "out" ];
postUnpack = lib.optionalString (finalAttrs.src ? name) ''
nixLog "moving collectx_bringup to the top level of source root"
mv --verbose --no-clobber \
"$PWD/${finalAttrs.src.name}/opt/nvidia/collectx_bringup"/* \
"$PWD/${finalAttrs.src.name}/"
rm --dir --verbose --recursive "$PWD/${finalAttrs.src.name}/opt"
'';
buildInputs = [
curl
libibmad
libibumad
rdma-core
ucx
zlib
];
brokenAssertions = [
# NOTE: Neither of these are available in Nixpkgs, from what I can tell by way of
# nix-community/nix-index-database.
{
message = "libssl.so.1.1 is available";
assertion = false;
}
{
message = "libcrypto.so.1.1 is available";
assertion = false;
}
];
})
@@ -0,0 +1,18 @@
{ buildRedist }:
buildRedist {
redistName = "cuda";
pname = "cuda_ctadvisor";
outputs = [ "out" ];
meta = {
description = "Analyzes trace files containing compilation time information generated by NVCC or NVRTC";
longDescription = ''
CUDA Compile Time Advisor (ctadvisor) analyzes trace files containing compilation time information generated by
NVCC or NVRTC. ctadvisor identifies compilation bottlenecks that take significant amount of time, for examples,
template instantiation and headers processing. The tool provides users with suggestions to reduce compilation
time.
'';
homepage = "https://docs.nvidia.com/cuda/cuda-compile-time-advisor";
};
}
@@ -0,0 +1,6 @@
{ buildRedist }:
buildRedist {
redistName = "cuda";
pname = "cuda_culibos";
outputs = [ "out" ];
}
@@ -0,0 +1,12 @@
{ buildRedist }:
buildRedist {
redistName = "cuda";
pname = "libnvptxcompiler";
outputs = [ "out" ];
meta = {
description = "APIs which can be used to compile a PTX program into GPU assembly code";
homepage = "https://docs.nvidia.com/cuda/ptx-compiler-api";
};
}
@@ -0,0 +1,39 @@
{
buildRedist,
lib,
rdma-core,
zlib,
}:
buildRedist (finalAttrs: {
redistName = "cuda";
pname = "mft";
# TODO: includes bin, etc, include, lib, and share directories.
outputs = [ "out" ];
postUnpack = lib.optionalString (finalAttrs.src != null) ''
nixLog "moving items in usr to the top level of source root"
mv --verbose --no-clobber \
"$PWD/${finalAttrs.src.name}/usr"/* \
"$PWD/${finalAttrs.src.name}/"
rm --dir --verbose --recursive "$PWD/${finalAttrs.src.name}/usr"
'';
buildInputs = [
rdma-core
zlib
];
brokenAssertions = [
{
# There are a *bunch* of these references and I don't know how to patch them all.
message = "contains no references to FHS paths";
assertion = false;
}
];
meta = {
description = "NVIDIA firmware management tools";
homepage = "https://network.nvidia.com/products/adapter-software/firmware-tools/";
};
})
@@ -0,0 +1,39 @@
{
buildRedist,
lib,
python3,
}:
buildRedist {
redistName = "cuda";
pname = "mft_autocomplete";
# TODO: includes bin, etc, include, lib, and share directories.
outputs = [ "out" ];
postPatch = ''
nixLog "patching python path in $PWD/etc/bash_completion.d/mft/mft_base_autocomplete"
substituteInPlace "$PWD/etc/bash_completion.d/mft/mft_base_autocomplete" \
--replace-fail \
"PYTHON_EXEC='/usr/bin/env python3'" \
"PYTHON_EXEC='${lib.getExe python3}'" \
--replace-fail \
"PYTHON_EXEC='/usr/bin/env python2'" \
"PYTHON_EXEC='${lib.getExe python3}'"
nixLog "patching python shebang path in $PWD/etc/bash_completion.d/mft/mft_help_to_completion.py"
substituteInPlace "$PWD/etc/bash_completion.d/mft/mft_help_to_completion.py" \
--replace-fail \
'#!/usr/bin/python' \
'#!${lib.getExe python3}'
'';
brokenAssertions = [
{
# The mft_base_autocomplete file needs heavier patching to remove FHS references and ensure it uses Nixpkgs' python.
# In particular, it does something like
# PYTHON_EXEC=`find /usr/bin /bin/ /usr/local/bin -iname 'python*' 2>&1 | grep -e='*python[0-9,.]*' | sort -d | head -n 1`
message = "contains no references to FHS paths";
assertion = false;
}
];
}
@@ -0,0 +1,25 @@
{ buildRedist, libxcrypt-legacy }:
buildRedist (finalAttrs: {
redistName = "cuda";
pname = "mft_oem";
outputs = [ "out" ];
postUnpack = ''
nixLog "moving items in usr to the top level of source root"
mv --verbose --no-clobber \
"$PWD/${finalAttrs.src.name}/usr"/* \
"$PWD/${finalAttrs.src.name}/"
rm --dir --verbose --recursive "$PWD/${finalAttrs.src.name}/usr"
'';
buildInputs = [ libxcrypt-legacy ];
brokenAssertions = [
{
# Contains problems similar to mft_autocomplete.
message = "contains no references to FHS paths";
assertion = false;
}
];
})
@@ -0,0 +1,30 @@
{ buildRedist, lib }:
buildRedist (finalAttrs: {
redistName = "cuda";
pname = "nvlsm";
# TODO: includes bin, lib, and share directories.
outputs = [ "out" ];
postUnpack = lib.optionalString (finalAttrs.src != null) ''
nixLog "moving sbin to bin"
mv --verbose --no-clobber \
"$PWD/${finalAttrs.src.name}/sbin" \
"$PWD/${finalAttrs.src.name}/bin"
'';
brokenAssertions = [
{
# The binary files match FHS paths and the configuration files need to be patched.
message = "contains no references to FHS paths";
assertion = false;
}
];
meta = {
description = "NVLink Subnet Manager";
longDescription = ''
A service that originates from NVIDIA InfiniBand switches and has the necessary modifications to effectively manage NVSwitches.
'';
};
})
+3
View File
@@ -2561,10 +2561,13 @@ with pkgs;
cudaPackages_12_6
cudaPackages_12_8
cudaPackages_12_9
cudaPackages_13_0
;
cudaPackages_12 = cudaPackages_12_8;
cudaPackages_13 = cudaPackages_13_0;
cudaPackages = recurseIntoAttrs cudaPackages_12;
# TODO: move to alias
+10
View File
@@ -52,4 +52,14 @@ in
tensorrt = if hasJetsonCudaCapability then "10.7.0" else "10.9.0";
};
};
cudaPackages_13_0 = callPackage ../development/cuda-modules {
manifests = selectManifests {
cuda = "13.0.2";
cudnn = "9.8.0";
cusparselt = "0.7.1";
cutensor = "2.2.0";
tensorrt = if hasJetsonCudaCapability then "10.7.0" else "10.9.0";
};
};
}