什麼是記憶體庫衝突(Bank conflict)

在共享記憶體中,warp 的多個執行緒同時存取同一個記憶體庫的不同位址,使存取被拆分為依序進行而變慢的現象。可藉由填補(padding)避免。

日文名稱: バンク競合

「記憶體庫衝突(Bank conflict)」出現在1領域的1道練習題中(GPU程式設計等)。

這個名詞所屬的領域: GPU程式設計

練習記憶體庫衝突(Bank conflict)的題目

關於CUDA共享記憶體的記憶庫衝突(bank conflict),下列說明何者正確?

  1. A兩個GPU使用同一個銀行帳戶的問題
  2. B共享記憶體容量不足而使程式停止的問題
  3. C共享記憶體分為32個記憶庫(bank),當線程束的多個執行緒同時讀取同一記憶庫中不同的位址時,存取會依序進行而變慢
查看答案與解析

正確答案:C. 共享記憶體分為32個記憶庫(bank),當線程束的多個執行緒同時讀取同一記憶庫中不同的位址時,存取會依序進行而變慢

共享記憶體由每4位元組依序分配的32個記憶庫構成,每個記憶庫一次只能讀寫一個位址。若線程束的32個執行緒使用各不相同的記憶庫,一次即可完成;但若有2個執行緒使用同一記憶庫的不同位址,就會分成2次。例如每隔32個元素讀取時,全員會集中在同一個記憶庫,而被分成32次。若全員讀取同一個位址,則是一併廣播,因此不會衝突。

出現「記憶體庫衝突(Bank conflict)」的題目(1題)

  1. 關於CUDA共享記憶體的記憶庫衝突(bank conflict),下列說明何者正確?

相關名詞

CUDA 共享記憶體(GPU shared memory) 平行歸約(Parallel reduction) 串流多處理器(Streaming multiprocessor) 佔用率(GPU occupancy) 固定記憶體(Pinned memory) 延遲隱藏(Latency hiding) 前綴和(Prefix sum) 記憶體合併存取(Memory coalescing) 執行緒區塊(Thread block)

前往名詞解釋列表