NVIDIA GPU的架构代号 |
您所在的位置:网站首页 › cuda版本号的含义 › NVIDIA GPU的架构代号 |
NVIDIA GPU的架构代号
NVIDIA GPU的架构代号什么时候用gencode,什么时候用arch呢SM_num和gencode变量费米 Fermi(cuda 3.2~cuda 8)开普勒 Kepler(cuda 5~cuda 10)麦克斯韦 Maxwell(CUDA 6~CUDA 11)帕斯卡 Pascal (CUDA 8 ~今)伏特 Volta (CUDA 9 ~今)图灵Turing (CUDA 10 ~今)安培Ampere (CUDA 11 ~今)哈珀Hopper (CUDA 12 计划中)例子:
NVIDIA GPU的架构代号
使用NVIDIA GPU时,难免会用到nvcc来编译自己写的cuda代码,nvcc要求我们给一个-arch选项或者-gencode选项,gencode也可以从ptx编译代码。但是NVIDIA的架构代号很多,有GA-{num}类型,也有sm_{num}类型,有时候给人整不会了都。GA系列的架构代号网络上的解释很多,这里不多扯了。sm的代号他们有这么多,大家看看: sm_20 sm_30 sm_50 sm_60 sm_70 sm_75 sm_80 sm_901 ? sm_35 sm_52 sm_61 sm_72 sm_86 sm_37 sm_53 sm_62 什么时候用gencode,什么时候用arch呢如果你写的cuda代码,那么最好就是用-arch。这样也会加快runtime,因为直接编译出obj。如果仅仅使用-gencode,而没有使用-arch,CPU的codegen会发生在JIT阶段,就是在runtime编译device code。 接下来介绍架构代码了。 SM_num和gencode变量 费米 Fermi(cuda 3.2~cuda 8)SM20 or SM_20, compute_30 – GeForce 400, 500, 600, GT-630. CUDA 10 以后就完全不支持了。 开普勒 Kepler(cuda 5~cuda 10)SM30 or SM_30, compute_30 – GeForce 700, GT-730 支持了统一内存模型编程 SM35 or SM_35, compute_35 – Tesla K40. 支持动态并行化。 SM37 or SM_37, compute_37 – Tesla K80. 增加了一些寄存器。 CUDA 11 以后就完全不支持了。 麦克斯韦 Maxwell(CUDA 6~CUDA 11)SM50 or SM_50, compute_50 – Tesla/Quadro M 系列 SM52 or SM_52, compute_52 – Quadro M6000 , GeForce 900, GTX-970, GTX-980, GTX Titan X SM53 or SM_53, compute_53 – Tegra (Jetson) TX1 / Tegra X1, Drive CX, Drive PX, Jetson Nano cuda 11 以后彻底不支持 帕斯卡 Pascal (CUDA 8 ~今)SM60 or SM_60, compute_60 – Quadro GP100, Tesla P100, DGX-1 (Generic Pascal) SM61 or SM_61, compute_61– GTX 1080, GTX 1070, GTX 1060, GTX 1050, GTX 1030, Titan Xp, Tesla P40, Tesla P4, Discrete GPU on the NVIDIA Drive PX2 SM62 or SM_62, compute_62 – Integrated GPU on the NVIDIA Drive PX2, Tegra (Jetson) TX2 伏特 Volta (CUDA 9 ~今)SM70 or SM_70, compute_70 – DGX-1 with Volta, Tesla V100, GTX 1180 (GV104), Titan V, Quadro GV100 SM72 or SM_72, compute_72 – Jetson AGX Xavier, Drive AGX Pegasus, Xavier NX 图灵Turing (CUDA 10 ~今)SM75 or SM_75, compute_75 – GTX/RTX Turing – GTX 1660 Ti, RTX 2060, RTX 2070, RTX 2080, Titan RTX, Quadro RTX 4000, Quadro RTX 5000, Quadro RTX 6000, Quadro RTX 8000, Quadro T1000/T2000, Tesla T4 安培Ampere (CUDA 11 ~今)SM80 or SM_80, compute_80 – NVIDIA A100 (不再用特斯拉(Tesla)做名字了 – GA100), NVIDIA DGX-A100 SM86 or SM_86, compute_86 – (from CUDA 11.1 onwards) Tesla GA10x, RTX Ampere – RTX 3080, GA102 – RTX 3090, RTX A6000, RTX A40 “计算能力高于 8.6 的比8.0的有2倍以上 FP32 的计算能力 (单位:ops/cycle/SM)。 从8.0上编译出的二进制文件也可以在8.6上运行,但还是推荐在fp32类型上使用8.6的编译选项。“2 哈珀Hopper (CUDA 12 计划中)SM90 or SM_90, compute_90 – NVIDIA H100 (GH100) 例子: -arch=sm_30 \ -gencode=arch=compute_20,code=sm_20 \ -gencode=arch=compute_30,code=sm_30 \ -gencode=arch=compute_50,code=sm_50 \ -gencode=arch=compute_52,code=sm_52 \ -gencode=arch=compute_52,code=compute_52可能是hopper,也就是是tesla-next。 ↩︎ https://docs.nvidia.com/cuda/ampere-tuning-guide/index.html#improved_fp32 ↩︎ |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |