CUDA:核函数不执行,错误检查出现“addKernel launch failed: invalid configuration argument”
开门见山。执行.cu文件时,发现根本没有执行核函数,在核函数后面加入下面代码:cudaError_t cudaStatus = cudaGetLastError();if (cudaStatus != cudaSuccess){fprintf(stderr, "addKernel launch failed: %s\n", cudaGetErrorString(cu...
·
开门见山。
执行.cu文件时,发现根本没有执行核函数,在核函数后面加入下面代码:
cudaError_t cudaStatus = cudaGetLastError();
if (cudaStatus != cudaSuccess)
{
fprintf(stderr, "addKernel launch failed: %s\n", cudaGetErrorString(cudaStatus));
}
执行程序后,打印出错误提示:
addKernel launch failed: invalid configuration argument
看字面意思,我理解的是,网格和块的划分有错误,定义的块和网格的维度为:
int dimx_field = 8;
int dimy_field = 160;
dim3 block_field(dimx_field, dimy_field);
dim3 grid_field((NX + block_field.x - 1) / block_field.x, (NY + block_field.y - 1) / block_field.y);
又查了查自己GPU的性能参数,发现其中有一条:
Maximum number of threads per block:1024
但是根据自己的定义,块中的线程为1280,这就是问题所在了。
更多推荐
已为社区贡献2条内容
所有评论(0)