nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 _cuda,
3 callPackage,
4 config,
5 lib,
6}:
7let
8 mkCudaPackages =
9 manifestVersions:
10 callPackage ../development/cuda-modules {
11 manifests = _cuda.lib.selectManifests manifestVersions;
12 };
13
14 # NOTE:
15 # The manifests are largely the same except for TensorRT:
16 # - linux-x86_64 is generally the best supported and can use the latest release
17 # - linux-sbsa (post-Orin Jetson and ARM) comes in second; NVIDIA dropped support for CUDA 12 with 10.13.2 (there is no
18 # 10.13.1), so we use 10.13.0 for all CUDA 12 releases.
19 # - linux-aarch64 (pre-Thor Jetson) is historically least supported; we use the latest release available.
20
21 cudaPackages_12_6 =
22 let
23 inherit (cudaPackages_12_6.backendStdenv) hasJetsonCudaCapability hostPlatform;
24 in
25 mkCudaPackages {
26 cublasmp = "0.6.0";
27 cuda = "12.6.3";
28 cudnn = "9.13.0";
29 cudss = "0.6.0";
30 cuquantum = "25.09.0";
31 cusolvermp = "0.7.0";
32 cusparselt = "0.6.3";
33 cutensor = "2.3.1";
34 nppplus = "0.10.0";
35 nvcomp = "5.0.0.6";
36 nvjpeg2000 = "0.9.0";
37 nvpl = "25.5";
38 nvtiff = "0.5.1";
39 tensorrt =
40 if hasJetsonCudaCapability then
41 "10.7.0"
42 else if hostPlatform.isAarch64 then
43 "10.13.0"
44 else
45 "10.14.1";
46 };
47
48 cudaPackages_12_8 =
49 let
50 inherit (cudaPackages_12_8.backendStdenv) hasJetsonCudaCapability hostPlatform;
51 in
52 mkCudaPackages {
53 cublasmp = "0.6.0";
54 cuda = "12.8.1";
55 cudnn = "9.13.0";
56 cudss = "0.6.0";
57 cuquantum = "25.09.0";
58 cusolvermp = "0.7.0";
59 cusparselt = "0.8.1";
60 cutensor = "2.3.1";
61 nppplus = "0.10.0";
62 nvcomp = "5.0.0.6";
63 nvjpeg2000 = "0.9.0";
64 nvpl = "25.5";
65 nvtiff = "0.5.1";
66 tensorrt =
67 if hasJetsonCudaCapability then
68 "10.7.0"
69 else if hostPlatform.isAarch64 then
70 "10.13.0"
71 else
72 "10.14.1";
73 };
74
75 cudaPackages_12_9 =
76 let
77 inherit (cudaPackages_12_9.backendStdenv) hasJetsonCudaCapability hostPlatform;
78 in
79 mkCudaPackages {
80 cublasmp = "0.6.0";
81 cuda = "12.9.1";
82 cudnn = "9.13.0";
83 cudss = "0.6.0";
84 cuquantum = "25.09.0";
85 cusolvermp = "0.7.0";
86 cusparselt = "0.8.1";
87 cutensor = "2.3.1";
88 nppplus = "0.10.0";
89 nvcomp = "5.0.0.6";
90 nvjpeg2000 = "0.9.0";
91 nvpl = "25.5";
92 nvtiff = "0.5.1";
93 tensorrt =
94 if hasJetsonCudaCapability then
95 "10.7.0"
96 else if hostPlatform.isAarch64 then
97 "10.13.0"
98 else
99 "10.14.1";
100 };
101
102 # NOTE: Thor is supported from CUDA 13.0, so our check needs to capture whether pre-Thor devices were selected.
103 hasPreThorJetsonCudaCapability = lib.any (lib.flip lib.versionOlder "10.1");
104
105 cudaPackages_13_0 =
106 let
107 inherit (cudaPackages_13_0.backendStdenv) requestedJetsonCudaCapabilities;
108 in
109 mkCudaPackages {
110 cublasmp = "0.6.0";
111 cuda = "13.0.2";
112 cudnn = "9.13.0";
113 cudss = "0.6.0";
114 cuquantum = "25.09.0";
115 cusolvermp = "0.7.0";
116 cusparselt = "0.8.1";
117 cutensor = "2.3.1";
118 nppplus = "0.10.0";
119 nvcomp = "5.0.0.6";
120 nvjpeg2000 = "0.9.0";
121 nvpl = "25.5";
122 nvtiff = "0.5.1";
123 tensorrt =
124 if hasPreThorJetsonCudaCapability requestedJetsonCudaCapabilities then "10.7.0" else "10.14.1";
125 };
126in
127{
128 inherit
129 cudaPackages_12_6
130 cudaPackages_12_8
131 cudaPackages_12_9
132 cudaPackages_13_0
133 ;
134}