繁体   English   中英

调用CUDA内核时出现“无效的配置参数”错误

[英]“invalid configuration argument” error when calling CUDA kernel

我有GeForce 620M,我的代码是:

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());     
}

我得到:

无效的配置参数。

可能是什么原因?

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

GeForce 620M是具有计算能力的2.1设备。

当您为每个网格参数的块传递一维参数时,计算能力2.1设备限于65535 (所传递的两个参数中的第一个)。

由于您要传递的另一个参数(256, threadsPerBlock )肯定是入界的,因此我得出结论,您的第一个参数超出范围:

int blocksPerGrid = Number_AA_GPU / threadsPerBlock; 

Number_AA_GPU大于65535 * 256(大于或等于65536 * 256会触发失败),或者为零(实际上Number_AA_GPU小于256将由于整数除法而失败),或者为负数。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM