GPU程式設計
關於CUDA共享記憶體的記憶庫衝突(bank conflict),下列說明何者正確?
- A兩個GPU使用同一個銀行帳戶的問題
- B共享記憶體容量不足而使程式停止的問題
- C共享記憶體分為32個記憶庫(bank),當線程束的多個執行緒同時讀取同一記憶庫中不同的位址時,存取會依序進行而變慢
查看答案與解析
正確答案:C. 共享記憶體分為32個記憶庫(bank),當線程束的多個執行緒同時讀取同一記憶庫中不同的位址時,存取會依序進行而變慢
共享記憶體由每4位元組依序分配的32個記憶庫構成,每個記憶庫一次只能讀寫一個位址。若線程束的32個執行緒使用各不相同的記憶庫,一次即可完成;但若有2個執行緒使用同一記憶庫的不同位址,就會分成2次。例如每隔32個元素讀取時,全員會集中在同一個記憶庫,而被分成32次。若全員讀取同一個位址,則是一併廣播,因此不會衝突。
- A. 說的不是金錢的事。
- B. 不是容量的問題。
- C. 正確。若為相同位址,則可一併廣播,因此不會衝突。