GPU程式設計
想以每個區塊256個執行緒、每個執行緒處理一個元素的方式,處理元素數為1000的陣列。下列何者是應啟動的區塊數?
- A3
- B4
- C1000
查看答案與解析
正確答案:B. 4
1000÷256≒3.9,若無條件捨去取3個區塊,則只能處理到256×3=768個元素,其餘會被遺漏。應無條件進位,啟動4個區塊(1024個執行緒),並讓多出來的24個執行緒什麼都不做。一般以「(n + 256 - 1) / 256」的方式計算來進位。為避免多餘的執行緒讀寫陣列範圍之外,必須在核心函式中檢查編號。
- A. 3個區塊只能處理768個元素。
- B. 正確。1000÷256無條件進位為4。
- C. 把區塊數與執行緒數搞混了。