dim3 dimBlock(16,16);
//定义block内的thread二维网络为16*16
dim3 dimGrid((COLS+dimBlock.x-1)/(dimBlock.x), (ROWS+dimBlock.y-1)/(dimBlock.y));
//定义grid内的block二维网络为1*2
unsigned int row = blockDim.y*blockIdx.y + threadIdx.y;
//二维数组中的行号
unsigned int col = blockDim.x*blockIdx.x + threadIdx.x;
//定义block内的thread二维网络为16*16
dim3 dimGrid((COLS+dimBlock.x-1)/(dimBlock.x), (ROWS+dimBlock.y-1)/(dimBlock.y));
//定义grid内的block二维网络为1*2
unsigned int row = blockDim.y*blockIdx.y + threadIdx.y;
//二维数组中的行号
unsigned int col = blockDim.x*blockIdx.x + threadIdx.x;
//二维线程中的列号
——<<<Dg,Db,Ns,S>>>,各个参数含义如下:
Dg:定义整个grid的维度,类型Dim3,但是实际上目前显卡支持两个维度,所以,dim3<<Dg.x, Dg.y, 1>>>第z维度默认只能为1,上面显示出这个最大有65536*65536*1,每行有65536个block,每列有65536个block,整个grid中一共有65536*65536*1个block。
Db:定义了每个block的维度,类型Dim3,比如512*512*64,这个可以定义3维尺寸,但是,这个地方是有讲究了,三个维度的积是有上限的,对于计算能力1.0、1.1的