进程间通信CUDA

时间:2013-11-06 17:53:42

标签: c++ c cuda

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

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

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

到目前为止我遇到的情况: cudaIpcGetMemHandle,cudaIpcOpenMemHandle和cudaIpcCloseMemHandle

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

1 个答案:

答案 0 :(得分:1)

  

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

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

还简要提到了如何在programming guide中使用CUDA IPC API。

最后,API本身记录在运行时API reference manual

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