cudaGetDeviceProperties 具有获取计算能力的属性(major.minor),但是,我们如何让 GPU 架构(sm_**)输入到设备的编译中?
问问题
3558 次
2 回答
11
- 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 对应“虚拟”架构
并非所有 sm_XY 都有对应的 compute_XY
例如,没有 compute_21(虚拟)架构
于 2013-04-25T18:34:21.373 回答
-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 \
于 2017-06-12T12:14:24.963 回答