我想在两个独立的 Linux 进程之间传递一个 Cuda 上下文(使用我已经设置的 POSIX 消息队列)。
使用cuCtxPopCurrent()
andcuCtxPushCurrent()
可以得到上下文指针,但是这个指针是在我调用函数的进程的内存中引用的,在进程之间传递是没有意义的。
我正在寻找其他解决方案。到目前为止,我的想法是:
- 尝试对
CUcontext
结构进行深度复制,然后传递副本。 - 看看我是否能找到一个共享内存解决方案,将我所有的 Cuda 指针都放在那里,以便两个进程都可以访问它们。
- 将流程合并到一个程序中。
- Cuda 4.0 中可能有更好的上下文共享,我可以切换到它。
我不确定选项 (1) 是否可行,也不确定 (2) 是否可用或可能。(3) 如果我想让事情变得通用(这是在劫持垫片中),那并不是一个真正的选择。(4) 我会看看 Cuda 4.0,但我也不确定它是否能在那里工作。
谢谢!