GPU程式設計

以GPU計算大型矩陣的乘積時,將矩陣分成小的圖塊(tile)讀入共享記憶體,其理由下列何者正確?

  1. A讓從全域記憶體讀入的資料在共享記憶體中反覆重複使用,減少對慢速記憶體的存取次數
  2. B縮小矩陣的值,以防止溢位
  3. C減少計算次數,以近似求出結果
查看答案與解析

正確答案:A. 讓從全域記憶體讀入的資料在共享記憶體中反覆重複使用,減少對慢速記憶體的存取次數

在矩陣乘積中,同一個元素會被反覆用於計算。若照樸素的寫法,每個執行緒每次都得重新從全域記憶體讀取,記憶體頻寬就會不足。若分成圖塊讀入共享記憶體,區塊的所有執行緒就能反覆使用該圖塊,從全域記憶體讀取的量會隨圖塊大小成比例地減少。這與CPU快取上的分塊(blocking)是相同的概念。

  • A. 正確。這是提高運算強度的做法。
  • B. 值的大小不會改變。
  • C. 計算次數相同,結果也很精確。
練習這個領域 前往領域頁面

GPU程式設計的其他題目

  1. 在GPU核心函式中,若每個執行緒的暫存器使用量過多,下列何者是可能發生的情況?
  2. 關於GPU的佔用率(occupancy),下列說明何者正確?
  3. 下列何者是GPU隱藏記憶體長延遲(數百個時脈)的主要方法?
  4. 關於GPU的佔用率,下列何者正確?
  5. 在CUDA中,關於區塊與SM(串流多處理器)的關係,下列何者正確?

這個領域的比較