大家好!
在用CUDA处理一副图像时,计划是每个线程对应一个像素,kernel配置如下:
dim3 blocksize(bx, by);
dim3 gridsize((width+bx-1)/bx, (height+by-1)/by);
width和height分别是图像的宽和高。
每个像素的坐标为:
row = threadIdx.y + blockIdx.y * blockDim.y;
col = threadIdx.x + blockIdx.x * blockDim.x;
当bx和by的值相等时,如bx=16,by=16,整幅图像可以处理完;当bx和by不等时,如bx=16,by=24,结果只有图像的一部分(约2/3);如bx=16,by=32时,结果只有图像的一半。
请问这是哪里出了问题?
谢谢!预祝周末愉快!