GPU程式設計
下列何者是GPU隱藏記憶體長延遲(數百個時脈)的主要方法?
- A每個執行緒各自擁有比CPU大上數倍的快取
- B在某個線程束等待記憶體期間,切換到其他可執行的線程束,讓運算單元持續運作
- C不等待記憶體,而是推測資料的值來進行計算
查看答案與解析
正確答案:B. 在某個線程束等待記憶體期間,切換到其他可執行的線程束,讓運算單元持續運作
CPU以大型快取與複雜的電路來減少單一執行緒的等待,而GPU則是載入大量的線程束,將等待記憶體的線程束擱置一旁,發出另一個可立即執行之線程束的指令。由於暫存器全都在晶片上,切換並不費事。只要有足夠數量的線程束,即使在記憶體延遲期間,運算單元也不必休息。
- A. 每個執行緒的快取反而很小。
- B. 正確。以大量執行緒來填補等待時間。
- C. 並不會推測資料的值來計算。