我可以發現,對於「全局」內存訪問,線程所需的內存地址的合併(鄰近)是最佳事務的關鍵,而在「共享」內存中,發出的地址沒有衝突通過線程是關鍵。我理解得好嗎?共享和全局內存訪問
1
A
回答
1
從NVIDIA CUDA編程指南:
爲了最大限度地提高全局內存吞吐量,最大限度地 通過合併是非常重要的:
- 繼基於節最優化的訪問模式G.3.2和G.4.2,
- 使用符合 第5.3.2.1.1節中詳述的大小和對齊要求的數據類型,
- 在某些情況下填充數據,例如,在訪問第5.3.2.1.2節中描述的二維 數組時。
這是關係到存儲器的訪問,其聚結「填充」爲一個或多個交易中的翹曲的線程。對於計算能力2.x的設備,此問題已放寬。
另一方面,對於共享內存訪問,您需要了解如何實現此內存。
爲了實現高帶寬,共享內存被分成大小相同的內存模塊,稱爲bank,可以同時訪問。
如果兩個或多個線程訪問同一個銀行,則傳輸被序列化,也就是銀行衝突。
附錄G.計算能力有關於架構的更多信息。
問候!
相關問題
- 1. cuda全局和共享內存訪問時間
- 2. OpenCL-共享內存訪問
- 3. 複製全局共享內存
- 4. CUDA中的全局vs共享內存
- 5. 全局內存訪問
- 6. 局部性和共享訪問對象
- 7. cuda從全局內存複製數組到共享內存
- 8. 共享內存爲什麼比全局內存快?
- 9. Multicores:同時訪問共享內存
- 10. 無法訪問共享內存
- 11. 訪問控制共享內存
- 12. Node.js線程共享內存訪問
- 13. 跨線程共享內存訪問
- 14. 原子訪問共享內存
- 15. 訪問共享內存同步
- 16. 如何區分指向共享和全局內存的指針?
- 17. 使用CUDA共享內存來改善全球訪問模式
- 18. 訪問共享存儲器
- 19. Azure網站全局內存共享/緩存同步
- 20. 關於全局內存訪問方法
- 21. CUDA合併訪問全局內存
- 22. CUDA:全局內存訪問地址
- 23. 共享內存和memcpy問題
- 24. C內存共享問題
- 25. 共享內存問題
- 26. cuda奇怪的內存訪問錯誤共享內存
- 27. CUDA非法內存訪問可能'不足'的共享內存
- 28. Kepler全局內存訪問和L1緩存
- 29. 共享內存多線程和數據訪問?
- 30. 如何在多個內核和多個GPU中共享全局內存?
是的。煤碳內存訪問對於有效的全局內存訪問至關重要,避免銀行衝突對高效的共享內存訪問非常重要。 –