GPU程式設計

關於GPU的佔用率,下列何者正確?

  1. A只要佔用率為100%,必定能發揮最高效能
  2. B即使佔用率低,只要讓每個執行緒擁有較多獨立的計算以提高指令的平行度,也可能達到高效能
  3. C佔用率與效能完全無關
查看答案與解析

正確答案:B. 即使佔用率低,只要讓每個執行緒擁有較多獨立的計算以提高指令的平行度,也可能達到高效能

佔用率是隱藏延遲的手段之一,而不是目的。若一個執行緒能並排發出多個彼此不相依的計算或記憶體讀取,即使線程束較少,也能填補等待時間。反之,為了提高佔用率而減少暫存器,被擠到記憶體的情形會增加,有時反而會變慢。效能還是要以分析工具(profiler)實際測量來判斷才可靠。

  • A. 若受其他因素限制,就不會再變快了。
  • B. 正確。隱藏延遲的方法不只有線程束的數量。
  • C. 它會影響隱藏延遲的能力。
練習這個領域 前往領域頁面

GPU程式設計的其他題目

  1. 在CUDA中,關於區塊與SM(串流多處理器)的關係,下列何者正確?
  2. 在CUDA中,想在核心函式途中,等待其他所有區塊的計算結束後再進入下一階段。下列何者是一般的方法?
  3. 以GPU製作像素值的直方圖時,若所有執行緒都用atomicAdd直接對全域記憶體中的256個分格(bin)進行加總,有時會很慢。下列何者是正確的改善方法?
  4. 以GPU求取大量數值的總和時,使用樹狀歸約(reduction,重複將相鄰的值相加而使數量減半)的理由,下列何者正確?
  5. 以樹狀歸約加總1024個值時,所需的階段數為多少?

這個領域的比較