我正在编写一个 OpenCL 内核,它在循环中涉及一些障碍。我已经在 CPU(8 核 FX8150)上测试了内核,结果显示这些障碍将运行速度降低了 50~100 倍(我通过使用多线程 + CyclicBarrier 在 Java 上重新实现内核进一步验证了这一点) . 我怀疑原因是屏障基本上阻止了 CPU 利用乱序执行,所以我有点担心我是否会在 GPU 上观察到同样幅度的速度下降。我检查了一些官方文件并在谷歌上搜索了一下,但关于这个主题的信息很少。
问问题
2006 次
2 回答
8
当前最先进的 GPU 是有序流水线处理器。GPU 通过交错来自不同扭曲(波前)的指令来有效地填充管道。相比之下,CPU 使用乱序推测执行来填充管道。有不同的功能单元,如 ALU 和 SFU,它们具有独立的管道。但请注意,指令依赖性会使扭曲停止。有关在 GPU 上解决指令依赖性的更多信息,请参阅此 NVIDIA 专利。
于 2012-09-10T12:32:47.053 回答
2
NVIDIA 的下一代
CUDA 计算和图形架构,代号为“Fermi”:
Nvidia GigaThread 引擎具有以下功能(第 5 页)
- 应用程序上下文切换速度提高 10 倍
- 并发内核执行
- 乱序线程块执行:)
- 双重叠内存传输引擎
Evergreen 具有 SIMD 功能,并且有机会胜过一些 fermi,但我不知道它的 oooe。与 GTX 600 系列相比,HD 7000 系列还有“局部原子添加”优势(快近 10 倍)
于 2012-09-09T05:49:46.080 回答