2015-02-11 163 views
0

当我的GeForce 620M和我的代码是:“无效的配置参数”错误调用CUDA内核

int threadsPerBlock = 256;     
int blocksPerGrid = Number_AA_GPU/threadsPerBlock; 
for(it=0;it<Number_repeatGPU;it++) 
{ 
    Kernel_Update<<<blocksPerGrid,threadsPerBlock>>>(A, B, C, D, rand(), rand());  
} 

我得到:

无效的配置参数。

可能是什么原因?

+0

原因可能取决于'Number_AA_GPU'的值 – talonmies 2015-02-11 08:55:40

回答

2

内核配置参数是<<<...>>>符号之间的参数。

您的GeForce 620M是一款compute capability 2.1设备。

甲计算能力2.1设备is limited to 65535传递时,对每电网参数块1维参数(第一要传递两个参数。)

由于要传递的其他参数(256, threadsPerBlock)绝对是界外,我认为你的第一个参数超出范围:

int blocksPerGrid = Number_AA_GPU/threadsPerBlock; 

Number_AA_GPU或者是大于65535 * 256(大于或等于65536 * 256将触发故障)或者它是零(实际上Number_AA_GPU小于2由于整数除法,56会失败),或者是否定的。

未来,如果您提供了一个完整的示例,您可以编写更容易解读的问题。在这种情况下,告诉我们什么Number_AA_GPU可以使我的答案更明确。