GPU程式設計
想在GPU上只從陣列中取出符合條件的元素,並緊密排列寫入另一個陣列(每個執行緒輸出的數量為0或1)。下列何者是常用來決定各執行緒寫入位址的並行計算?
- A矩陣轉置
- B前綴和(prefix sum,掃描,由前往後的累加和)
- C快速傅立葉轉換
查看答案與解析
正確答案:B. 前綴和(prefix sum,掃描,由前往後的累加和)
以0或1表示各執行緒是否輸出,再求其由前往後的累加和(互斥的前綴和),各執行緒的值就會是「比自己前面輸出的執行緒數量」,這直接就是寫入的位址。掃描(scan)與歸約一樣,可用樹狀方式並行計算。這是在保持並行的情況下,處理每個元素輸出數量不同、並緊密排列寫出的基本工具。
- A. 轉置無法決定寫入位址。
- B. 正確。比自己前面輸出的數量就是寫入位址。
- C. 與頻率轉換無關。