与cuda一起编程时,整合与银行冲突有什么区别?
只有当共享内存中的银行冲突时,全局内存才会发生合并?
我应该担心聚结,如果我有> 1.2支持的GPU?它是否自己处理聚结?整合与银行冲突(Cuda)
2
A
回答
5
是的,凝聚的读/写操作,适用于全球的读取和银行的冲突是适用于共享内存读/写。
不同的计算能力的设备有不同的行为在这里,但1.2的GPU仍然需要小心,以确保你合并的读取和写入 - 它只是有一些优化技术,使东西更容易为你
你应该阅读CUDA Best Practices指南。这涉及到这些问题的大量细节。
2
是:合并访问仅与全局内存相关,银行冲突仅与共享内存相关。
退房也是高级CUDA C语言培训课程,首节进入一些细节来解释> 1.2的GPU硬件如何帮助你,你仍然需要考虑的优化。它也解释了共享内存银行冲突。例如,请查看this recording。
的扫描和减少样品中的SDK也解释了存储器组冲突真的很好用渐进式改进的内核。
1
A> 1.2 GPU将尝试这样做可以WRT聚结最好的,因为它是能够组存储器访问适合的256个字节的同一存储器原子之内的相同的大小和写入出来作为1个存储器写入。 GPU将负责重新排序访问并将它们对齐到正确的内存边界。 (在早期的GPU中,warp内的内存交易必须与内存原子对齐,并且必须按照正确的顺序排列。)
但是,为了获得最佳性能,您仍然需要确保那些合并机会可用。如果warp中的所有线程都将内存事务处理为完全不同的内存原子,则聚合器无法执行任何操作,因此仍需要了解内核的内存局部性行为。
相关问题
- 1. 银行冲突CUDA共享内存?
- 2. 一级缓存CUDA银行冲突?
- 3. PHP银行整合
- 4. 我得到了与银联的冲突/减少冲突
- 5. GPU共享内存银行冲突
- 6. 水银更改冲突
- 7. 为什么Cuda/OpenCL在全局内存中没有银行冲突?
- 8. 水银:编辑器不显示冲突合并后的冲突文件
- 9. CUDA集成,访问冲突
- 10. 与银行合作的API?
- 11. svn合并冲突的整个目录
- 12. 使用交错寻址方法并行减少银行冲突
- 13. ccavenue - 如何整合网上银行
- 14. 合并冲突Gemfile.lock
- 15. libgit2:合并冲突
- 16. 合并冲突Git
- 17. Github合并冲突
- 18. Git合并冲突
- 19. DevelopmentServerPort合并冲突
- 20. Git合并(冲突)
- 21. svn合并冲突
- 22. TFS合并冲突
- 23. 冲突与MSTEST
- 24. 冲突与DTD
- 25. 与preg_match冲突
- 26. 避免与git合并冲突
- 27. SVN与树冲突问题合并
- 28. git合并与.class文件的冲突
- 29. 合并两个SQL表与键冲突
- 30. 与Subclipse合并时出现树冲突