cudaGetDeviceProperties具有获取计算能力的属性(major.minor),但是,我们如何将GPU架构(sm _ **)提供给设备的编译?
答案 0 :(得分:10)
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 \