进程间通信CUDA

我试图理解CUDA中的进程间通信。 我希望能够理解这个概念并尝试将其应用于我正在进行的项目中。

我有一个图像采集系统,提供N个输入图像。 首先处理每个原始输入图像,然后将其存储在名为“Result”的单个变量中。 有四个函数可以处理图像,Aprocess,Bprocess,Cprocess和Dprocess。 每次系统获取新图像时,都会调用上述四个函数进行处理。 最终图像“结果”存储在Dprocess中。

我想要做的是:创建一个新的进程’process2’,我可以在每次获得图像时将“最终”图像存储在“结果”中,并将其放入名为“图像”的缓冲区中。 我想为10张图片做这件事。 ‘process2’应该等待将新图像传递给它并且不终止,因为第一个进程必须继续调用这四个函数并获得最终处理的图像。

到目前为止我遇到的问题: cudaIpcGetMemHandle,cudaIpcOpenMemHandle和cudaIpcCloseMemHandle

问题:如何使用上述function名称来实现IPC?

问题:如何使用上述function名称来实现IPC?

CUDA simpleIPC示例代码演示了这一点。

还简要提到了如何在编程指南中使用CUDA IPC API。

最后,API本身记录在运行时API 参考手册中

请注意,此function需要cc 2.0或更高版本以及64位Linux操作系统。