[英]“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.