GPU程式設計
下列何者是在GPU上執行時容易效率不佳的處理?
- A從開頭逐一走訪鏈結串列,並依各元素的值改變下一個動作的處理
- B兩個大型陣列逐元素相加
- C將大型影像所有像素的亮度加倍的處理
查看答案與解析
正確答案:A. 從開頭逐一走訪鏈結串列,並依各元素的值改變下一個動作的處理
鏈結串列在讀取前一個元素之前,無法得知下一個元素的位置,因此無法並行走訪。此外,若動作依值而異,在以相同指令運作的執行緒群組中分支就會分歧,使效率下降。記憶體位置也很分散,無法一次集中讀取。適合GPU的是各元素獨立,且對連續位址的資料進行相同處理的工作。
- A. 正確。無法並行,分支也會變多。
- B. 各元素彼此獨立,因此適合GPU。
- C. 各像素彼此獨立,因此適合GPU。