GPU程式設計

CUDA的常數記憶體(constant memory)在何種存取時運作得特別快?

  1. A線程束的所有執行緒讀取同一個位址時(一次讀取的結果可廣播給全員)
  2. B線程束的執行緒各自寫入不同位址時
  3. C線程束的執行緒各自隨機讀取不同位址時
查看答案與解析

正確答案:A. 線程束的所有執行緒讀取同一個位址時(一次讀取的結果可廣播給全員)

常數記憶體是在核心函式執行期間不會被改寫的小型區域,並具有專用的快取。當線程束的全員讀取同一個位址時,一次讀取的結果可一併廣播給全員,因此能非常快速地讀取。適合用於全部執行緒都使用相同值的情況,例如影像濾波器的係數,或物理模擬的參數。若位址分散,讀取就會被拆開,反而變慢。

  • A. 正確。適合像濾波器係數這種全員使用相同值的情況。
  • B. 核心函式無法寫入常數記憶體。
  • C. 讀取不同位址時,讀取會被依序拆開而變慢。
練習這個領域 前往領域頁面

GPU程式設計的其他題目

  1. 關於GPU的快取,與CPU相比的一般特徵,下列何者正確?
  2. 下列何者是NVIDIA以外的GPU也能使用、用於GPU等平行計算之程式設計機制的正確例子?
  3. 想在GPU上只從陣列中取出符合條件的元素,並緊密排列寫入另一個陣列(每個執行緒輸出的數量為0或1)。下列何者是常用來決定各執行緒寫入位址的並行計算?
  4. 在撰寫GPU核心函式時,下列何者是應遵守的正確前提?
  5. 以GPU轉置大型矩陣(b[j][i] = a[i][j])時,經由共享記憶體的主要目的為下列何者?

這個領域的比較