【问题标题】:Atomic operation between integrated GPU and CPU集成 GPU 和 CPU 之间的原子操作
【发布时间】:2019-06-10 17:31:54
【问题描述】:

您好,我正在开发一个应用程序,其中涉及处理 GPU 和 CPU 之间的共享数据。 我知道我可以分别对 GPU 和 CPU 进行原子操作。而且我不想在 CPU 和 GPU 之间使用事件同步。 有什么方法/命令可以让我在 OpenCL 中对 CPU 和集成 GPU 之间的共享数据进行原子操作?

【问题讨论】:

  • 为什么不想使用事件同步?这是使用它的主要原因之一!听起来像是过早的优化。你到底想达到什么目标?
  • 由于 cpu 和 gpu 都会定期访问共享数据,我认为同步不是一个好主意。
  • 嗯,某种形式的同步对于在 CPU 和 GPU 之间共享数据是必不可少的,否则您将面临数据竞争和严重后果。它归结为访问模式、并发粒度和不同方法的相对开销。正如@mogu 所指出的,如果您的应用程序适合该模型,则可以在 OpenCL 上使用细粒度共享内存。还可以考虑重新设计您的数据结构,可能会显着避免或减少问题。

标签: gpu opencl


【解决方案1】:

这是可能的,但有先决条件。您需要支持 OpenCL 2.0 或更高版本的设备(英特尔、AMD 和 ARM 都有这样的设备,我不知道 Nvidia 的情况)。 要开始使用,请查看 hereherehere.

【讨论】:

    猜你喜欢
    • 2021-12-29
    • 2012-03-07
    • 2013-09-27
    • 2017-04-12
    • 2020-06-05
    • 2019-11-11
    • 2012-06-07
    • 2011-02-02
    • 1970-01-01
    相关资源
    最近更新 更多