GPU程式設計
在GPU核心函式中,若每個執行緒的暫存器使用量過多,下列何者是可能發生的情況?
- A暫存器會自動增加,效能必定提升
- B計算結果必定出錯
- C由於SM的暫存器總數是固定的,能同時載入的執行緒數量會減少,更難隱藏記憶體的延遲
查看答案與解析
正確答案:C. 由於SM的暫存器總數是固定的,能同時載入的執行緒數量會減少,更難隱藏記憶體的延遲
GPU將所有執行中的執行緒的暫存器都保留在晶片上,因此能瞬間切換線程束。所以一旦每個執行緒使用的暫存器較多,能同時載入SM的執行緒數量就會減少。不足的部分會被擠到記憶體(暫存器溢出,spill),有時也會變慢。有時會以編譯器的設定指定暫存器的上限,以取得與執行緒數量之間的平衡。
- A. 暫存器總數是由電路決定的。
- B. 結果仍然正確,影響的是速度。
- C. 正確。暫存器是決定執行緒數量的資源之一。