GPU程式設計

關於CUDA共享記憶體(shared memory)的特徵,下列何者正確?

  1. A由所有GPU與CPU共享的大容量主記憶體
  2. BGPU記憶體與硬碟共享的區域
  3. C同一區塊的執行緒可共享、位於晶片上的小容量高速記憶體,由程式明確地使用
查看答案與解析

正確答案:C. 同一區塊的執行緒可共享、位於晶片上的小容量高速記憶體,由程式明確地使用

共享記憶體是位於各SM內、每個區塊數十KB左右的高速記憶體,讀寫速度比全域記憶體(GPU的DRAM)快數十倍。同一區塊的執行緒可以將資料放在其中共享,因此可用於從全域記憶體只讀入一次而重複使用,或讓執行緒之間傳遞中間結果等用途。與快取不同的是,要放什麼內容由程式決定。

  • A. 這比較接近全域記憶體或統一記憶體的說明。
  • B. 與磁碟無關。
  • C. 正確。可當作由程式管理的快取來使用。
練習這個領域 前往領域頁面

GPU程式設計的其他題目

  1. 下列何者是CUDA的__syncthreads()的作用?
  2. 在CUDA中,將__syncthreads()寫在「if (threadIdx.x < 16)」之內,使只有部分執行緒會通過。下列何者是可能發生的情況?
  3. 關於CUDA共享記憶體的記憶庫衝突(bank conflict),下列說明何者正確?
  4. 將32×32的float表格放在共享記憶體中,由線程束的32個執行緒沿著行的方向(縱向)讀取時會發生記憶庫衝突。下列何者是常用的對策?
  5. 以GPU計算大型矩陣的乘積時,將矩陣分成小的圖塊(tile)讀入共享記憶體,其理由下列何者正確?

這個領域的比較