2017-02-22 123 views
4

我在尝试执行nvcc时收到此警告。cuda 8.0中的nvcc警告

我有cuda工具包8.0我的系统中有Nvidia GTX 480。

nvcc warning : The 'compute_20', 'sm_20', and 'sm_21' architectures are deprecated, and may be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning). 

任何人都可以解释此警告吗?

如果您需要更多信息,请让我知道。

回答

11

这是CUDA开发团队(即NVIDIA)让CUDA开发人员(即您)知道计算能力(cc)2.x设备将不再受支持的方式。

这是合理的假设,下一个主要版本CUDA将下降为计算能力2.x设备支持,包括你的GTX 480。因此,CUDA 8.0很可能会支持该设备的最后CUDA工具包。

即使未指定目标体系结构,也会发生此警告,因为CUDA 8的默认目标体系结构为cc 2.0。

如果您只打算将cc3.0或更高版本的设备作为目标设备,则可以通过指定适合您的设备的适当体系结构来消除编译输出中的警告。

nvcc -arch=sm_30 ... 

例如,目标cc 3.0及更高版本的设备。如警告消息本身所示,您也可以指定一个命令行开关来抑制警告。

当不支持cc 1.x设备时,CUDA 6.x时间框架中发生了类似的情况。 CUDA 7.0支持被放弃。

+0

谢谢你的帮助。 –

+0

如何知道我应该设置哪个'sm_xx'?我拥有一个GTX 1070,也得到这个错误...使用CUDA 8 – bluesummers

+0

找到您的设备的计算能力。如果你不知道如何做到这一点,谷歌可以提供帮助。一旦发现设备的计算能力,然后在交换机中使用它。例如,如果您发现GTX 1070的计算能力是cc6.1,那么您可以使用'-arch = sm_61' –