进程间通信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操作系统。