GPU程式設計

在CUDA中決定每個區塊的執行緒數量時,下列何者是正確的一般準則?

  1. A設為線程束大小32的倍數(如128或256等)
  2. B必定設為1
  3. C必定設為質數
查看答案與解析

正確答案:A. 設為線程束大小32的倍數(如128或256等)

區塊的執行緒會以每32個分成線程束,因此例如設為100個時,最後一個線程束只用了4個,其餘28個的執行名額就浪費了。若設為32的倍數,每個線程束都能用滿。實務上常用128~256個左右,並視佔用率與共享記憶體的使用方式來調整。

  • A. 正確。避免產生零碎的線程束。
  • B. 只有1個執行緒時,線程束的31個會被浪費。
  • C. 設為質數會產生零碎的線程束。
練習這個領域 前往領域頁面

GPU程式設計的其他題目

  1. 以上述的迴圈(網格步幅迴圈,grid-stride loop)撰寫核心函式的優點,下列何者正確?
  2. CUDA的常數記憶體(constant memory)在何種存取時運作得特別快?
  3. 關於GPU的快取,與CPU相比的一般特徵,下列何者正確?
  4. 下列何者是NVIDIA以外的GPU也能使用、用於GPU等平行計算之程式設計機制的正確例子?
  5. 想在GPU上只從陣列中取出符合條件的元素,並緊密排列寫入另一個陣列(每個執行緒輸出的數量為0或1)。下列何者是常用來決定各執行緒寫入位址的並行計算?

這個領域的比較