我可以发现,对于“全局”内存访问,线程所需的内存地址的合并(邻近)是最佳事务的关键,而在“共享”内存中,发出的地址没有冲突通过线程是关键。我理解得好吗?共享和全局内存访问
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中共享全局内存?
是的。煤碳内存访问对于有效的全局内存访问至关重要,避免银行冲突对高效的共享内存访问非常重要。 –