工作项和流处理器(cuda core)之间的关系如何。我在某处读到工作项目的数量应该大大超过核心数量,否则就没有性能改进。但为什么这样呢?我认为1核心代表1个工作项目。有人能帮助我理解这一点吗? 谢谢Opencl Workitems和流处理器
2
A
回答
0
原因主要是调度 - 单个内核/处理器/单元通常可以运行多个线程并在它们之间切换以隐藏内存延迟(SMT)。因此,每个内核通常都有一个好主意,让它有多个线程排队等待。
线程通常会对应至少一个工作项,尽管取决于驱动程序和硬件,多个工作项可能会合并为一个线程,以利用内核的SIMD /向量功能。
1
GPU和大多数其他硬件往往比他们可以访问大多数可用内存的速度快得多。有更多的工作项目比你有处理器让调度程序错开内存使用,而那些已经读取其数据的工作项目正在使用ALU硬件来处理。
Here is a good page about optimization in opencl.向下滚动到“ 2.4。去除'代价高昂'的全局GPU内存访问”,它进入了这个概念。
相关问题
- 1. OpenCL中的处理器亲和性
- 2. OpenCL视频处理
- 3. OpenCL编译器预处理定义?
- 4. OpenCL Comptuing单元和处理单元
- 5. 流多处理器,每个流处理器的核心cuda
- 6. 教程OpenCl事件处理
- 7. 流|处理器和线程模型
- 8. 流中的OpenCL
- 9. C++容器和openCL
- 10. 预处理器,后处理器,几何处理器和NC处理器
- 11. OpenCL:查询处理元素的数量
- 12. 用于批处理的Java OpenCL FFT
- 13. OpenCL的工作组处理顺序
- 14. PyOpenCL图像处理VRS的OpenCL图像处理
- 15. 处理RTP流
- 16. GPGPU,OpenCL,CUDA,ATI流
- 17. 预处理器指令是否影响OpenCL内核性能?
- 18. 处理含衍生流流
- 19. 如何处理流的流?
- 20. openCL - 处理数组和标量的区别
- 21. 处理OpenCL内核中的临时矩阵和私有内存
- 22. openCL中由CPU和GPU处理的数据之间的区别
- 23. 是PDF处理器处理输出流吗? (iTextSharp)
- 24. 使用Flink和kinesis流的流窗口处理处理不起作用
- 25. 处理流媒体服务器
- 26. PHP流媒体视频处理器
- 27. 重载流处理器运营商
- 28. 定制的流处理器为
- 29. 数据分析流处理(Storm)和复杂事件处理
- 30. 文件流处理