【问题标题】:How to pass the openCL context between different cpu pthreads?如何在不同的 cpu pthread 之间传递 openCL 上下文?
【发布时间】:2021-04-04 07:54:32
【问题描述】:

Cuda 具有 cuCtxPopCurrent() 和 cuCtxPushCurrent() 用于从创建它的 pthread 中弹出 cuda 上下文并将其推送到另一个想要使用它的 pthread。

默认情况下,该 CUDA 上下文只能从创建它的 CPU 线程访问。如果你想从其他线程访问 CUDA 上下文,你必须调用 cuCtxPopCurrent() 从创建它的线程中弹出它。然后可以将上下文推送到任何其他 CPU 线程的当前上下文堆栈,随后的 CUDA 调用将引用该上下文。

我找不到与 openCL 类似的东西。

【问题讨论】:

    标签: multithreading pthreads opencl gpgpu


    【解决方案1】:

    OpenCL 上下文和命令队列没有线程关联。线程没有“当前上下文”之类的东西。您必须为每个 API 调用显式提供上下文/队列句柄。

    此外,从多个线程访问 OpenCL 上下文或命令队列没有特殊问题。它们是线程安全的。

    【讨论】:

    • 是的,这是有道理的。感谢@Elad 的回答
    猜你喜欢
    • 1970-01-01
    • 2022-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-13
    • 2018-12-31
    • 1970-01-01
    • 2011-09-22
    相关资源
    最近更新 更多