GPU程式設計

對於只對陣列元素做一次加法這類輕量的處理,若將資料傳送到GPU,有時會比用CPU計算還慢。下列何者是主要原因?

  1. A因為GPU無法做加法
  2. B因為透過PCI Express複製資料所花的時間,比GPU能加快的計算時間還長
  3. C因為將資料傳送到GPU後,值會改變
查看答案與解析

正確答案:B. 因為透過PCI Express複製資料所花的時間,比GPU能加快的計算時間還長

PCI Express的頻寬比GPU記憶體的頻寬小一個數量級以上,因此光是傳送資料就要花時間。若每個元素只做一次加法,相對於傳送的時間,計算的時間微乎其微,無法發揮GPU的速度。GPU能佔優勢的情況,是對所傳送的資料進行大量計算,或將資料留在GPU記憶體中反覆處理時。

  • A. GPU很擅長加法。
  • B. 正確。相對於傳輸,計算量太少了。
  • C. 值不會改變。
練習這個領域 前往領域頁面

GPU程式設計的其他題目

  1. 將CPU記憶體固定(鎖頁,page-lock)後再傳輸到GPU會比較快,其理由下列何者正確?
  2. 下列何者是使用多個CUDA串流(stream)的主要目的?
  3. 當程式持續啟動數千次非常小的核心函式而變慢時,下列何者是最適當的改善方法?
  4. 關於CUDA的統一記憶體(unified memory),下列說明何者正確?
  5. 以GPU進行兩個大型陣列的逐元素加法(c[i] = a[i] + b[i])時,主要決定效能的是什麼?

這個領域的比較