GPU程式設計

關於GPU的快取,與CPU相比的一般特徵,下列何者正確?

  1. AGPU完全沒有快取
  2. BGPU也有L1與L2快取,但由於同時運作的執行緒數量非常多,每個執行緒的快取容量小得多
  3. CGPU的快取每個執行緒比CPU大上數倍
查看答案與解析

正確答案:B. GPU也有L1與L2快取,但由於同時運作的執行緒數量非常多,每個執行緒的快取容量小得多

GPU也具有各SM專屬的L1快取,以及整個晶片共享的L2快取,但因為同時有數萬個執行緒在運作,每個執行緒可用的容量比CPU的一個執行緒小了好幾個數量級。GPU的理念並非仰賴快取來減少延遲,而是以大量線程束的切換來隱藏延遲,並藉由合併存取與共享記憶體來講究記憶體的使用方式。

  • A. 有L1與L2快取。
  • B. 正確。因此合併存取與共享記憶體的講究很重要。
  • C. 由於執行緒數量多,每個執行緒的容量反而變小。
練習這個領域 前往領域頁面

GPU程式設計的其他題目

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

這個領域的比較