nvidia 各 GPU 架构匹配的 CUDA arch 和 CUDA gencode

使用 NVCC 进行编译 cuda c(.cu)时,arch 标志 (-arch) 指定了 CUDA 文件将为其编译的 NVIDIA GPU 架构的名称。
Gencodes (-gencode) 允许更多的 PTX 代,并且可以针对不同的架构重复多次。

NVIDIA 架构名称的列表,以及它们具有的计算能力:

Fermi Kepler Maxwell Pascal Volta Turing Ampere Lovelace Hopper
sm_20 sm_30 sm_50 sm_60 sm_70 sm_75 sm_80 sm_90 sm_100
sm_35 sm_52 sm_61 sm_72 sm_86
sm_37 sm_53 sm_62
  • Fermi 和 Kepler 从 CUDA 9 和 11 开始弃用
  • Maxwell 从 CUDA 12 开始弃用
  • Lovelace 是取代 Ampere (AD102) 的微架构

什么时候应该使用不同的gencodescuda arch

当编译 CUDA 代码时,应该始终只编译一个-arch与最常用的 GPU 卡匹配的标志。这将实现更快的运行时,因为代码生成将在编译期间发生。
如果只提及-gencode,而忽略-arch标志,则 CUDA 驱动程序将在JIT编译器上生成 GPU 代码。

当想要加速 CUDA 编译时,想要减少不相关的 -gencode 标志的数量。但是,有时可能希望通过添加更全面的 -gencode 标志来获得更好的 CUDA 向后兼容性。

你可能感兴趣的:(CUDA,GPU,CUDA,nvidia)