如何在不同的cpu pthread之间传递openCL上下文



Cuda有cuCtxPopCurrent((和cuCtxPushCurrent((,用于从创建它的pthread弹出Cuda上下文,并将它推送给另一个想要使用它的ptthread。

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

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

OpenCL上下文和命令队列没有线程关联。线程不存在"当前上下文"这样的东西。您必须为每个API调用显式地提供上下文/队列句柄。

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

最新更新