程序能跑通,但是visual profiler显示我的程序有两个用二维block触发的kernel没有触发过,但是所有一维的kernel都正常运行了。
部分代码如下。
dim3 dimBlock(64,64);
dim3 dimGrid(2,2);
splineVectorMatrix<<<dimGrid,dimBlock>>>(F_d, h_d, 100, 100, b_h, 0);
BLOCK里的threads个数是有限制的,你可以根据你的显卡型号查看一下programming guide里面,你的计算设备最大支持多少个threads/block
你这里64*64=4096已经远远超过了限制!
补充一下吧:
计算能力1.x的限制是512个,2.x是1024个
:'(一语中的啊,果然是线程太多,我改成32*32就过了。