CUDA SDK中的各种CUDA演示指的是“分散写入”。这是什么零散的写作,为什么这么伟大?与它的立场相反?CUDA:什么是分散写入?
8
A
回答
5
我打算在这里使用CUDA的术语。
scattered write
表示您正在从每个cuda线程写入任意地址(例如,您的warp线程不会写入连续内存中,例如)。它与2d相关的帧缓冲区写入形成对比,并且可以由硬件合并。在不久之前,这些是唯一可用于GPU的写入。
它们是gather read
的相反操作,它从分散的位置读取数据,并在收集的数据上以SIMD方式执行的线程变形之前收集所有数据。但是,通过任意纹理提取,GPU集合读取早已在GPU上可用。
5
分散写入很棒,因为它允许您写入任何内存地址。在给定着色器程序可以写入的存储器地址中,先前的着色器通常受到限制。
“尽管图形API中的片段程序仅限于在预先指定的位置输出32个浮点数(RGBA * 8个渲染目标),但CUDA支持分散写入 - 即无限数量的存储到任何地址。那是不可能的算法使用图形API来高效地进行使用CUDA”
从CUDA FAQ:
基本上,它让CUDA程序更容易编写,因为他们没有在那里为他们的限制可以写结果。请记住,在GPU上获得良好性能的关键之一是利用内存局部性。通过大量写入全局内存过度使用分散的写入很可能会影响您的性能。
相关问题
- 1. 什么是CUDA
- 2. 什么是“分散唯一性算法”?
- 3. 什么是CUDA上下文?
- 4. CUDA线程发散和分支,示例
- 5. CUDA线程是分时。这是什么意思?
- 6. 什么是散列函数?
- 7. 什么是离散动画?
- 8. 什么是密码/散列?
- 9. “散货”是什么意思?
- 10. 我怎么能写在CUDA
- 11. 什么是缓冲区?什么是缓冲读取和写入?
- 12. 在CUDA分析期间,<overflow>是什么意思?
- 13. 什么是CUDA变量的含义?
- 14. “缓存写入”是什么意思?
- 15. 什么是缓冲区写入?
- 16. 什么是塑料SCM写入?
- 17. 什么是“HDFS写入管道”?
- 18. 是什么导致写入活动
- 19. 枚举写入时,C++写入套接字是什么
- 20. “散列函数的分布”是什么意思?
- 21. 为什么在写入设备内存时此CUDA程序崩溃?
- 22. 这是什么样的散列加密?
- 23. “属性散列”,那是什么?
- 24. '散列缺点'是什么意思?
- 25. 这是什么样的散列文件?
- 26. 关于JSON,散列究竟是什么?
- 27. 这是什么样的散列/加密?
- 28. 松散XAML的局限性是什么?
- 29. Bash'type someCmd':什么意思是'散列'?
- 30. 面试问题:什么是散列表?
这仍然发生在“设备内存”上,对吗? (而不是I/O分散/聚集操作,这将允许DMA引擎将来自不同主存储器位置的内容驱动到例如单个I/O条带中) – PypeBros 2014-01-17 10:01:59
正确。这是指GPU上的内存,而不是全局内存。 – 2014-01-17 17:53:16