【问题标题】:Does OpenCL have shared context feature between OpenCL contexts?OpenCL 在 OpenCL 上下文之间是否具有共享上下文功能?
【发布时间】:2017-05-11 21:25:33
【问题描述】:

就像与 opengl 共享缓冲区,但另一个 opencl 代替。就像将缓冲区迁移到另一个 opencl 上下文但没有事件依赖性一样。

我找不到任何关于它的信息,但我需要将一个 opencl 缓冲区数据复制到另一个使用相同设备的 opencl 上下文缓冲区,并且我需要它远离主机端副本。我需要设备端(到/从同一设备)缓冲区副本。此外,我正在使用的缓冲区有许多附加到它们的操作的事件。

我正在处理的一个项目有多个上下文计算,使用不同的内核和多个 GPU,使用双缓冲管道,我试图在不接触 pci-e 桥的情况下将相同的行为适应单个 GPU。

【问题讨论】:

    标签: opencl


    【解决方案1】:

    您不能直接在 OpenCL 上执行此操作,因为内存是按上下文分配的。请注意,如果平台支持,同一上下文中可以有多个设备,并且同一上下文中的所有设备将共享相同的内存对象。 migration queue operation 允许对每个设备上的内存分配进行细粒度控制(尽管这不是必需的)。

    当使用SYCL(基于 OpenCL 的 Khronos 标准)时,缓冲区与上下文无关,并且运行时会在需要时跨上下文迁移数据。在这种情况下,运行时将选择最合适的方法来进行跨上下文的传输。例如,如果平台具有特定于供应商的功能以有效地允许此操作,则运行时将利用它而无需使用交互。

    【讨论】:

      猜你喜欢
      • 2015-06-01
      • 2015-05-11
      • 2023-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-07
      • 2021-04-04
      • 2023-03-07
      相关资源
      最近更新 更多