【发布时间】:2017-06-12 20:14:24
【问题描述】:
cudaGetDeviceProperties 具有获取计算能力 (major.minor) 的属性,但是,我们如何让 GPU 架构 (sm_**) 输入到设备的编译中?
【问题讨论】:
-
如果我正确理解您的问题,这就是主要和次要属性的编码。
标签: cuda
cudaGetDeviceProperties 具有获取计算能力 (major.minor) 的属性,但是,我们如何让 GPU 架构 (sm_**) 输入到设备的编译中?
【问题讨论】:
标签: cuda
sm_XY 对应于“物理”或“真实”架构
compute_ZW 对应"virtual" architecture
并非所有 sm_XY 都有对应的 compute_XY
例如,没有compute_21(虚拟)架构
【讨论】:
最简单的方法
如果您使用的是 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 \
【讨论】: