“无效的配置参数”错误调用CUDA内核
问题描述:
当我的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());
}
我得到:
无效的配置参数。
可能是什么原因?
答
内核配置参数是<<<...>>>
符号之间的参数。
您的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
可以使我的答案更明确。
原因可能取决于'Number_AA_GPU'的值 – talonmies 2015-02-11 08:55:40