pytrainer: unpin python 3.10
[NixPkgs.git] / pkgs / development / cuda-modules / gpus.nix
blobcf6e0a1eaf360a9f3fc03180c736e524f29231e9
1 # Type aliases
3 # Gpu = {
4 #   archName: String
5 #     - The name of the microarchitecture.
6 #   computeCapability: String
7 #     - The compute capability of the GPU.
8 #   isJetson: Boolean
9 #     - Whether a GPU is part of NVIDIA's line of Jetson embedded computers. This field is
10 #       notable because it tells us what architecture to build for (as Jetson devices are
11 #       aarch64).
12 #       More on Jetson devices here:
13 #       https://www.nvidia.com/en-us/autonomous-machines/embedded-systems/
14 #       NOTE: These architectures are only built upon request.
15 #   minCudaVersion: String
16 #     - The minimum (inclusive) CUDA version that supports this GPU.
17 #   dontDefaultAfter: null | String
18 #     - The CUDA version after which to exclude this GPU from the list of default capabilities
19 #       we build. null means we always include this GPU in the default capabilities if it is
20 #       supported.
21 #   maxCudaVersion: null | String
22 #     - The maximum (exclusive) CUDA version that supports this GPU. null means there is no
23 #       maximum.
24 # }
26 # Many thanks to Arnon Shimoni for maintaining a list of these architectures and capabilities.
27 # Without your work, this would have been much more difficult.
28 # https://arnon.dk/matching-sm-architectures-arch-and-gencode-for-various-nvidia-cards/
30   {
31     # GeForce 700, GT-730
32     archName = "Kepler";
33     computeCapability = "3.0";
34     isJetson = false;
35     minCudaVersion = "10.0";
36     dontDefaultAfter = "10.2";
37     maxCudaVersion = "10.2";
38   }
39   {
40     archName = "Kepler";
41     computeCapability = "3.2";
42     isJetson = false;
43     minCudaVersion = "10.0";
44     dontDefaultAfter = "10.2";
45     maxCudaVersion = "10.2";
46   }
47   {
48     # Tesla K40
49     archName = "Kepler";
50     computeCapability = "3.5";
51     isJetson = false;
52     minCudaVersion = "10.0";
53     dontDefaultAfter = "11.0";
54     maxCudaVersion = "11.8";
55   }
56   {
57     # Tesla K80
58     archName = "Kepler";
59     computeCapability = "3.7";
60     isJetson = false;
61     minCudaVersion = "10.0";
62     dontDefaultAfter = "11.0";
63     maxCudaVersion = "11.8";
64   }
65   {
66     # Tesla/Quadro M series
67     archName = "Maxwell";
68     computeCapability = "5.0";
69     isJetson = false;
70     minCudaVersion = "10.0";
71     dontDefaultAfter = "11.0";
72     maxCudaVersion = null;
73   }
74   {
75     # Quadro M6000 , GeForce 900, GTX-970, GTX-980, GTX Titan X
76     archName = "Maxwell";
77     computeCapability = "5.2";
78     isJetson = false;
79     minCudaVersion = "10.0";
80     dontDefaultAfter = "11.0";
81     maxCudaVersion = null;
82   }
83   {
84     # Tegra (Jetson) TX1 / Tegra X1, Drive CX, Drive PX, Jetson Nano
85     archName = "Maxwell";
86     computeCapability = "5.3";
87     isJetson = true;
88     minCudaVersion = "10.0";
89     dontDefaultAfter = null;
90     maxCudaVersion = null;
91   }
92   {
93     # Quadro GP100, Tesla P100, DGX-1 (Generic Pascal)
94     archName = "Pascal";
95     computeCapability = "6.0";
96     isJetson = false;
97     minCudaVersion = "10.0";
98     dontDefaultAfter = null;
99     maxCudaVersion = null;
100   }
101   {
102     # GTX 1080, GTX 1070, GTX 1060, GTX 1050, GTX 1030 (GP108), GT 1010 (GP108) Titan Xp, Tesla
103     # P40, Tesla P4, Discrete GPU on the NVIDIA Drive PX2
104     archName = "Pascal";
105     computeCapability = "6.1";
106     isJetson = false;
107     minCudaVersion = "10.0";
108     dontDefaultAfter = null;
109     maxCudaVersion = null;
110   }
111   {
112     # Integrated GPU on the NVIDIA Drive PX2, Tegra (Jetson) TX2
113     archName = "Pascal";
114     computeCapability = "6.2";
115     isJetson = true;
116     minCudaVersion = "10.0";
117     dontDefaultAfter = null;
118     maxCudaVersion = null;
119   }
120   {
121     # DGX-1 with Volta, Tesla V100, GTX 1180 (GV104), Titan V, Quadro GV100
122     archName = "Volta";
123     computeCapability = "7.0";
124     isJetson = false;
125     minCudaVersion = "10.0";
126     dontDefaultAfter = null;
127     maxCudaVersion = null;
128   }
129   {
130     # Jetson AGX Xavier, Drive AGX Pegasus, Xavier NX
131     archName = "Volta";
132     computeCapability = "7.2";
133     isJetson = true;
134     minCudaVersion = "10.0";
135     dontDefaultAfter = null;
136     maxCudaVersion = null;
137   }
138   {
139     # GTX/RTX Turing – GTX 1660 Ti, RTX 2060, RTX 2070, RTX 2080, Titan RTX, Quadro RTX 4000,
140     # Quadro RTX 5000, Quadro RTX 6000, Quadro RTX 8000, Quadro T1000/T2000, Tesla T4
141     archName = "Turing";
142     computeCapability = "7.5";
143     isJetson = false;
144     minCudaVersion = "10.0";
145     dontDefaultAfter = null;
146     maxCudaVersion = null;
147   }
148   {
149     # NVIDIA A100 (the name “Tesla” has been dropped – GA100), NVIDIA DGX-A100
150     archName = "Ampere";
151     computeCapability = "8.0";
152     isJetson = false;
153     minCudaVersion = "11.2";
154     dontDefaultAfter = null;
155     maxCudaVersion = null;
156   }
157   {
158     # Tesla GA10x cards, RTX Ampere – RTX 3080, GA102 – RTX 3090, RTX A2000, A3000, RTX A4000,
159     # A5000, A6000, NVIDIA A40, GA106 – RTX 3060, GA104 – RTX 3070, GA107 – RTX 3050, RTX A10, RTX
160     # A16, RTX A40, A2 Tensor Core GPU
161     archName = "Ampere";
162     computeCapability = "8.6";
163     isJetson = false;
164     minCudaVersion = "11.2";
165     dontDefaultAfter = null;
166     maxCudaVersion = null;
167   }
168   {
169     # Jetson AGX Orin and Drive AGX Orin only
170     archName = "Ampere";
171     computeCapability = "8.7";
172     isJetson = true;
173     minCudaVersion = "11.5";
174     dontDefaultAfter = null;
175     maxCudaVersion = null;
176   }
177   {
178     # NVIDIA GeForce RTX 4090, RTX 4080, RTX 6000, Tesla L40
179     archName = "Ada";
180     computeCapability = "8.9";
181     isJetson = false;
182     minCudaVersion = "11.8";
183     dontDefaultAfter = null;
184     maxCudaVersion = null;
185   }
186   {
187     # NVIDIA H100 (GH100)
188     archName = "Hopper";
189     computeCapability = "9.0";
190     isJetson = false;
191     minCudaVersion = "11.8";
192     dontDefaultAfter = null;
193     maxCudaVersion = null;
194   }
195   {
196     # NVIDIA H100 (GH100) (Thor)
197     archName = "Hopper";
198     computeCapability = "9.0a";
199     isJetson = false;
200     minCudaVersion = "12.0";
201     dontDefaultAfter = null;
202     maxCudaVersion = null;
203   }