如何获得设备的GPU架构?

时间:2013-04-25 18:11:16

标签: cuda

cudaGetDeviceProperties具有获取计算能力的属性(major.minor),但是,我们如何将GPU架构(sm _ **)提供给设备的编译?

2 个答案:

答案 0 :(得分:10)

  • sm_10是计算能力1.0设备
  • sm_11是计算能力1.1设备
  • sm_12是计算能力1.2设备
  • sm_13是计算能力1.3设备
  • sm_20是计算能力2.0设备
  • sm_21是计算能力2.1设备
  • sm_30是计算能力3.0设备
  • sm_32是计算能力3.2设备
  • sm_35是计算能力3.5设备
  • sm_37是计算能力3.7设备
  • sm_50是计算能力5.0设备
  • sm_52是计算能力5.2设备
  • sm_53是计算能力5.3设备
  • sm_60是计算能力6.0设备
  • sm_61是计算能力6.1设备
  • sm_62是计算能力6.2设备

sm_XY对应“物理”或“真实”架构

compute_ZW对应"virtual" architecture

并非所有sm_XY都有相应的compute_XY

例如,没有compute_21(虚拟)架构

答案 1 :(得分:-1)

最简单的方式

如果你正在使用cuda 7.x,使用下面的nvcc标志来获得兼容性

-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 

如果您使用的是cuda 8.x,请设置如下标记:

-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_60,code=sm_60 \
-gencode=arch=compute_61,code=sm_61 \
-gencode=arch=compute_62,code=sm_62 \