國營聯招 統計資訊統計學、巨量資料概論105 年第 28 題單選題
在CUDA(Compute Unified Device Architecture)程式編寫中,如果我們要給每一個thread唯一的ID,起始值為0,且為整數,例如:0、1、2、3…循序下去,可以透過下列何者取得?
AblockIdx.x * blockDim.x + threadIdx.x正確答案
BblockIdx.x * blockDim.x - threadIdx.x
CblockIdx.x * threadIdx.x + blockDim.x
DblockIdx.x / blockDim.x + threadIdx.x
A正確答案
CUDA中每個thread的唯一全域ID公式為:blockIdx.x × blockDim.x + threadIdx.x,block編號乘以block大小再加上block內的thread編號。
為什麼答案是 A
blockIdx.x * blockDim.x + threadIdx.x:block起始偏移量加上block內offset,可確保每個thread從0開始的唯一連續整數ID,這是CUDA最標準的全域thread ID計算公式。
考點:CUDA全域threadID考點:運算符號錯誤考點:乘法對象錯誤