CUDA 計算線程索引的一般公式
阿新 • • 發佈:2017-08-06
lock int nbsp bsp 線程 計算 簡單的 分別是 read + threadIdx.x;
CUDA thread index:
int blockId = blockIdx.z * (gridDim.x*gridDim.y)
+ blockIdx.y * gridDim.x
+ blockIdx.x;
int threadId = blockId * (blockDim.x * blockDim.y * blockDim.z)
+ threadIdx.z * (blockDim.x * blockDim.y)
+ threadIdx.y * blockDim.x
從上到下分別是:
block的3,2,1維;
thread的3,2,1維。
如果沒有對應維度,刪除對應的計算部分即可。
維度的值最小是1,但是索引的值最小是0.
ps: 最少的情況是都只有1維,最多的情況是都有3維。
所以最簡單的都只有1維時:blockIdx.x * blockDim.x + threadIdx.x
CUDA 計算線程索引的一般公式