deviceQuery工具为我提供了这些信息:
CUDA Driver Version / Runtime Version 9.1 / 8.0
CUDA Capability Major/Minor version number: 5.0
Max dimension size of a grid size (x,y,z): (2147483647, 65535, 65535)
当我在Visual Studio 2015中创建默认CUDA 8.0项目并从:
更改内核调用时addKernel<<<1, size>>>(dev_c, dev_a, dev_b);
到
addKernel<<<dim3(65535, 1, 1), size>>>(dev_c, dev_a, dev_b);
它仍然有效。但是当将网格的x维度更改为65536时,如下所示:
addKernel<<<dim3(65536, 1, 1), size>>>(dev_c, dev_a, dev_b);
我得到cudaErrorInvalidValue (11)
,这意味着&#34;无效的参数&#34;。为什么呢?
(我的机器上只有一个支持CUDA的设备,所以我不会把它与其他设备混淆)
答案 0 :(得分:1)
默认情况下,Visual Studio似乎将构建标志设置为计算功能2.0
。
更改它们:
CUDA C/C++
下选择Device
标签Code Generation
值从compute_20,sm_20
更改为您的图形卡支持的任何值。就我而言,它是compute_50,sm_50
。