当使用dim3类型时,比如:
dim3 grid(3,2,1), block(4,3,1);
kernel_name>>(...);
表示一个Grid中有3x2x1=6个...Block,在(x,y,z)三个方向上的排布方式分别是3、2、1;一个Block中有4x3x1=12个Thread,在(x,y,z)三个方向上的排布方式分别是4、3、1。
...下面为了画图方便,我们以将Block的维度设为(4,1,1),其实是一维Block了,但计算公式是一样的:
dim grid(4,1,1), block(2,2,1);
kernel_name<<<grid...需要注意的是,二维排序中,Thread(0,1)表示第1行第0列的Thread,这跟我们传统中理解的横坐标和纵坐标不太一样;我们定义grid(4,2)表示第一维度有4个索引值,第二个维度有2个索引值,即...2行4列
具体排列方式如下图所示,blockidx从0到3,Threadidx从(0,0)到(1,2)
?