为什么 nvlink 警告我缺少 sm_20(计算能力 2.0)目标代码?

Why is nvlink warning me about lack of sm_20 (compute capability 2.0) object code?

我在配备 GTX Titan 卡(计算能力 3.5)的机器上使用 CUDA 6.5。我只用 -gencode=arch=compute_30,code=sm_30 -gencode=arch=compute_35,code=sm_35 构建我的代码 - 当我 link 我的二进制文件时,nvlink 说:

nvlink warning : SM Arch ('sm_20') not found in '/local/eyalroz/src/foo/CMakeFiles/tester.dir/src/./tester_generated_main.cu.o'

为什么要警告我?我是否需要 sm_20 来处理我不知道的事情?如果仅仅是因为缺乏较低的计算能力支持,为什么不 sm_10 呢? (另外,如果警告是无偿的,我该如何关闭它?)

该问题已在 CUDA 6.5 中发现并已得到纠正,我相信 CUDA 7.5 中。使用最新版本的 CUDA 应该可以消除这些警告。

无视就好

我在 cuda RC8 上遇到了同样的问题:

nvlink 警告:在 'cudainfo.o'

中找不到 SM Arch ('sm_20')

编译: /usr/local/cuda/bin/nvcc -g -O2 -Iyes/include -Iyes/include -I。 -gencode arch=compute_35,code=sm_35 -rdc=true --ptxas-options=-v -I./compat/jansson -o cudainfo.o -c cudainfo.cu

$ nvcc --version nvcc:NVIDIA (R) Cuda 编译器驱动程序 版权所有 (c) 2005-2016 NVIDIA 公司 基于 Wed_May__4_21:01:56_CDT_2016 Cuda 编译工具,版本 8.0,V8.0.26