【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 核函数被调用时通过<<<grid, block>>>进行设置和函数并行执行的线程个数,grid和block可以时三维的xyz,通过dim3进行定义。 如: dim3 grid=dim3(5,3); 下图所示: 上图中grid为dim3(2, 3), block为dim3(3,5),注意排列时从上到下再从左到右。 grid对应的 gridDim.x = 2 gridDim.y = 3 gridDim.z = 1 block对应的 blockDim.x = 3 blockDim.y = 5 blockDim.z = 1 假设我们要计算Block(1,1)所在的Thread(3,2)随对于的id号,可以通过下面的公式: #define get_tid() ((gridDim.x*blockIdx.y + blockIdx.x)*blockDim.x + threadIdx.x) 对于Block(1,1)-Thread(3,2)而言,blockIdx.x=1 blockIdx.y=1 threadIdx.x=3, threadIdx.y=2 因此get_tid()的值为: (2*1 + 1)*3 + 3 = 12 来源: oschina 链接: https://my.oschina.net/u/4228078/blog