我已经阅读了CUDA编程指南,我无法理解下面显示的线程分配方法:
dim3 dimGrid( 2, 2, 1 );
dim3 dimBlock( 4, 2, 2 );
KernelFunction<<< dimGrid, dimBlock >>>(. . .);
Run Code Online (Sandbox Code Playgroud)
有人可以解释如何为上述条件分配线程吗?
思考网格和块的直观方法是将它们可视化:
你的dimBlock( 4, 2, 2 )意思是每个块都有4 x 2 x 2 = 16线程.你的dimGrid( 2, 2, 1 )意思是网格有2 x 2 x 1 = 4块.因此,您的内核在4个块的网格上启动,每个块有16个线程.总而言之,您的内核将使用16 x 4 = 64线程启动.