为 CUDA 工具包版本启用的最大计算能力
Maximum compute capability enabled for a CUDA toolkit version
如何了解可以使用给定版本的 CUDA 工具包中的编译器编译代码的设备的最大计算能力?
假设,我有 cuda6.5
工具包。那里的 nvcc 是否能够为 GTX GeForce 970(计算能力 5.2)编译?
一种方法是反复试验 - 启动具有所需计算能力的测试编译命令。如果出现错误,则该工具包版本不支持该计算能力:
$ nvcc -arch=sm_20 t10.cu -o t10
$ nvcc -arch=sm_52 t10.cu -o t10
nvcc fatal : Value 'sm_52' is not defined for option 'gpu-architecture'
$
另一种方法是阅读每个工具包附带的编程指南文档,并安装在 /usr/local/cuda/doc
中(例如 linux)。 Table 12 of that doc 将列出该编译器版本支持的可用计算能力。
我相信还有其他方法。您可能可以通过 grep 浏览头文件并找出答案。
您使用 CUDA 6.5 工具包编译 CUDA 7.0 示例。它在make中使用cc5.2。那将是找出答案的最快方法。可能已经发现了,所以如果你告诉其他人你发现的具体版本号对于我们其他懒惰的人来说与 cc5.2 一起工作会很好。 :)
如何了解可以使用给定版本的 CUDA 工具包中的编译器编译代码的设备的最大计算能力?
假设,我有 cuda6.5
工具包。那里的 nvcc 是否能够为 GTX GeForce 970(计算能力 5.2)编译?
一种方法是反复试验 - 启动具有所需计算能力的测试编译命令。如果出现错误,则该工具包版本不支持该计算能力:
$ nvcc -arch=sm_20 t10.cu -o t10
$ nvcc -arch=sm_52 t10.cu -o t10
nvcc fatal : Value 'sm_52' is not defined for option 'gpu-architecture'
$
另一种方法是阅读每个工具包附带的编程指南文档,并安装在 /usr/local/cuda/doc
中(例如 linux)。 Table 12 of that doc 将列出该编译器版本支持的可用计算能力。
我相信还有其他方法。您可能可以通过 grep 浏览头文件并找出答案。
您使用 CUDA 6.5 工具包编译 CUDA 7.0 示例。它在make中使用cc5.2。那将是找出答案的最快方法。可能已经发现了,所以如果你告诉其他人你发现的具体版本号对于我们其他懒惰的人来说与 cc5.2 一起工作会很好。 :)