【问题标题】:Does modern GPU (e.g Fermi/Evergreen) supports out of order execution?现代 GPU(例如 Fermi/Evergreen)是否支持乱序执行?
【发布时间】:2012-09-02 03:01:35
【问题描述】:

我正在编写一个循环中涉及一些障碍的 OpenCL 内核。我已经在 CPU(8 核 FX8150)上测试了内核,结果显示这些障碍将运行速度降低了 50~100 倍(我通过使用多线程 + CyclicBarrier 在 Java 上重新实现内核进一步验证了这一点) .我怀疑原因是屏障基本上阻止了 CPU 利用乱序执行,所以我有点担心我是否会在 GPU 上观察到同样幅度的速度下降。我检查了一些官方文件并搜索了一下,但关于这个主题的信息很少。

【问题讨论】:

  • 当然有。您应该通过代码异构地拆分耗时的 fpu 计算,以便它可以进行整数计算。同时做漂浮
  • @tuğrulbüyükışık 谢谢。你能指点我一份证实这一点的官方文件(供参考)吗?

标签: parallel-processing cpu gpu


【解决方案1】:

NVIDIA 的下一代
CUDA 计算和图形架构,代号“Fermi”:

Nvidia GigaThread Engine 具有以下功能(在第 5 页)

  • 应用程序上下文切换速度提高 10 倍
  • 并发内核执行
  • 乱序线程块执行:)
  • 双重叠内存传输引擎

Evergreen has SIMD capabilities and has a chance outperform some fermi but i dont know about oooe of it. There is also "local atomic add" upper hand of HD 7000 series compared to GTX 600 series (nearly 10x faster)

【讨论】:

    【解决方案2】:

    当前最先进的 GPU 是有序流水线处理器。 GPU 通过交错来自不同扭曲(波前)的指令来有效地填充管道。相比之下,CPU 使用乱序推测执行来填充管道。有不同的功能单元,如 ALU 和 SFU,它们具有独立的管道。但请注意,指令依赖性会使扭曲停止。有关在 GPU 上解决指令依赖性的更多信息,请参阅this NVIDIA patent

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-13
      相关资源
      最近更新 更多