GPU程式設計
當程式持續啟動數千次非常小的核心函式而變慢時,下列何者是最適當的改善方法?
- A將多個小的核心函式合併(融合)為一個,以減少啟動次數
- B在核心函式的啟動之間加入等待時間
- C將每個區塊的執行緒數設為1
查看答案與解析
正確答案:A. 將多個小的核心函式合併(融合)為一個,以減少啟動次數
啟動核心函式時,CPU端的處理與GPU的準備工作需要數微秒左右的固定時間。若核心函式的內容比這更短,就只會凸顯出啟動的開銷。將多個處理合併為一個核心函式,不僅啟動次數會減少,也能省去將中間結果寫入記憶體再讀回的工夫。另外也會使用將一連串的啟動先記錄下來再一次送出的機制(如CUDA Graphs)。
- A. 正確。減少每次啟動的固定開銷。
- B. 加入等待時間只會更慢。
- C. 這等於放棄了GPU的平行性。