GPU程式設計

想在GPU上只從陣列中取出符合條件的元素,並緊密排列寫入另一個陣列(每個執行緒輸出的數量為0或1)。下列何者是常用來決定各執行緒寫入位址的並行計算?

  1. A矩陣轉置
  2. B前綴和(prefix sum,掃描,由前往後的累加和)
  3. C快速傅立葉轉換
查看答案與解析

正確答案:B. 前綴和(prefix sum,掃描,由前往後的累加和)

以0或1表示各執行緒是否輸出,再求其由前往後的累加和(互斥的前綴和),各執行緒的值就會是「比自己前面輸出的執行緒數量」,這直接就是寫入的位址。掃描(scan)與歸約一樣,可用樹狀方式並行計算。這是在保持並行的情況下,處理每個元素輸出數量不同、並緊密排列寫出的基本工具。

  • A. 轉置無法決定寫入位址。
  • B. 正確。比自己前面輸出的數量就是寫入位址。
  • C. 與頻率轉換無關。
練習這個領域 前往領域頁面

GPU程式設計的其他題目

  1. 在撰寫GPU核心函式時,下列何者是應遵守的正確前提?
  2. 以GPU轉置大型矩陣(b[j][i] = a[i][j])時,經由共享記憶體的主要目的為下列何者?
  3. 在CUDA中,CPU端的程式啟動核心函式之後,下列何者是一般正確的動作?
  4. 關於CPU與GPU設計理念的差異,下列何者正確?
  5. 下列何者最適合作為GPU能快速處理之工作的特徵?

這個領域的比較