cuda threadIdx 访问唯一数组下标
三维 grid block
dim3 block(2, 2, 2);
dim3 grid(2, 2, 2);
访问下标
__global__ void mem_trans(int* input)
{
int threadId_3D = threadIdx.x + threadIdx.y * blockDim.x +
threadIdx.z * blockDim.x * blockDim.y;
int blockId_3D = blockIdx.x + blockIdx.y * gridDim.x +
blockIdx.z * gridDim.x * gridDim.y;
int gid = threadId_3D + (blockDim.x * blockDim.y * blockDim.z) * blockId_3D;
printf("tid : %d, gid : %d, value : %d\n",
threadIdx.x, gid, input[gid]);
}