國營聯招 統計資訊統計學、巨量資料概論105 年第 28 題單選題考點:CUDA全域threadID考點:運算符號錯誤
在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編號。
逐選項解析
AblockIdx.x * blockDim.x + threadIdx.xCUDA全域threadID✓ 正確
blockIdx.x * blockDim.x + threadIdx.x:block起始偏移量加上block內offset,可確保每個thread從0開始的唯一連續整數ID,這是CUDA最標準的全域thread ID計算公式。
BblockIdx.x * blockDim.x - threadIdx.x運算符號錯誤✕ 易錯陷阱
blockIdx.x * blockDim.x - threadIdx.x:減法會導致同一block內ID倒序且不同block間出現重複值,無法保證唯一性與從0遞增的連續性。
CblockIdx.x * threadIdx.x + blockDim.x✕ 錯誤
DblockIdx.x / blockDim.x + threadIdx.x✕ 錯誤
立即註冊,看完整詳解
這題的完整詳解,註冊就能看 · 每天 2 題免費
精選詳解- 完整逐選項解析
- 秒殺解題技巧與破題關鍵
- 關鍵知識表整理
- 陷阱與易錯提醒
- 同考點歷屆題庫連續刷題與錯題本