GPU程式設計

在GPU核心函式中,若每個執行緒的暫存器使用量過多,下列何者是可能發生的情況?

  1. A暫存器會自動增加,效能必定提升
  2. B計算結果必定出錯
  3. C由於SM的暫存器總數是固定的,能同時載入的執行緒數量會減少,更難隱藏記憶體的延遲
查看答案與解析

正確答案:C. 由於SM的暫存器總數是固定的,能同時載入的執行緒數量會減少,更難隱藏記憶體的延遲

GPU將所有執行中的執行緒的暫存器都保留在晶片上,因此能瞬間切換線程束。所以一旦每個執行緒使用的暫存器較多,能同時載入SM的執行緒數量就會減少。不足的部分會被擠到記憶體(暫存器溢出,spill),有時也會變慢。有時會以編譯器的設定指定暫存器的上限,以取得與執行緒數量之間的平衡。

  • A. 暫存器總數是由電路決定的。
  • B. 結果仍然正確,影響的是速度。
  • C. 正確。暫存器是決定執行緒數量的資源之一。
練習這個領域 前往領域頁面

GPU程式設計的其他題目

  1. 關於GPU的佔用率(occupancy),下列說明何者正確?
  2. 下列何者是GPU隱藏記憶體長延遲(數百個時脈)的主要方法?
  3. 關於GPU的佔用率,下列何者正確?
  4. 在CUDA中,關於區塊與SM(串流多處理器)的關係,下列何者正確?
  5. 在CUDA中,想在核心函式途中,等待其他所有區塊的計算結束後再進入下一階段。下列何者是一般的方法?

這個領域的比較