GPU程式設計
在CUDA核心函式中,以上式求出各執行緒的編號i。blockIdx.x=2、blockDim.x=256、threadIdx.x=5的執行緒,其i為多少?
int i = blockIdx.x * blockDim.x + threadIdx.x;
- A517
- B263
- C2565
查看答案與解析
正確答案:A. 517
blockIdx.x是區塊在網格中的編號,blockDim.x是每個區塊的執行緒數量,threadIdx.x則是執行緒在區塊中的編號。區塊0負責0~255,區塊1負責256~511,因此區塊2的第5個執行緒為2×256+5=517。藉由這個式子,替所有執行緒編上互不重複的流水號,並決定負責的陣列元素。
- A. 正確。2×256+5=517。
- B. 沒有乘上blockIdx.x就直接相加了。
- C. 只是把數字排在一起,並不是計算。