

Integrated GPU on the NVIDIA Drive PX2, Tegra (Jetson) TX2ĭGX-1 with Volta, Tesla V100, GTX 1180 (GV104), Titan V, Quadro GV100 Quadro GP100, Tesla P100, DGX-1 (Generic Pascal) Tegra (Jetson) TX1 / Tegra X1, Drive CX, Drive PX, Jetson Nano. generic Kepler, GeForce 700, GT-730).Īdds support for unified memory programmingĭeprecated from CUDA 11, will be dropped in future versions.ĭeprecated from CUDA 11, will be dropped in future versions, strongly suggest replacing with a 32GB PCIe Tesla V100.ĭeprecated from CUDA 11, will be dropped in future versions, strongly suggest replacing with a Quadro RTX 4000 or A6000. Fermi cards (CUDA 3.2 until CUDA 8)ĭeprecated from CUDA 9, support completely dropped from CUDA 10. I’ve tried to supply representative NVIDIA GPU cards for each architecture name, and CUDA version. Supported SM and Gencode variationsīelow are the supported sm variations and sample cards from that generation. However, sometimes you may wish to have better CUDA backwards compatibility by adding more comprehensive ‘ -gencode‘ flags.īefore you continue, identify which GPU you have and which CUDA version you have installed first. When you want to speed up CUDA compilation, you want to reduce the amount of irrelevant ‘ -gencode‘ flags. If you only mention ‘ -gencode‘, but omit the ‘ -arch‘ flag, the GPU code generation will occur on the JIT compiler by the CUDA driver. This will enable faster runtime, because code generation will occur during compilation. When you compile CUDA code, you should always compile only one ‘ -arch‘ flag that matches your most used GPU cards.

When should different ‘gencodes’ or ‘cuda arch’ be used? * Hopper is NVIDIA’s “tesla-next” series, with a 5nm process, replacing Ampere. ‡ Maxwell is deprecated from CUDA 11.6 onwards † Fermi and Kepler are deprecated from CUDA 9 and 11 onwards Here’s a list of NVIDIA architecture names, and which compute capabilities they have: Fermi † Gencodes (‘ -gencode‘) allows for more PTX generations and can be repeated many times for different architectures. When compiling with NVCC, the arch flag (‘ -arch‘) specifies the name of the NVIDIA GPU architecture that the CUDA files will be compiled for. I’ve seen some confusion regarding NVIDIA’s nvcc sm flags and what they’re used for:
