1

我正在尝试了解 CUDA 中的进程间通信。我想要一些帮助来理解这个概念并尝试将它应用到我正在做的项目中。

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

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

到目前为止我遇到的: cudaIpcGetMemHandle、cudaIpcOpenMemHandle 和 cudaIpcCloseMemHandle

问题:如何使用上述函数名来实现IPC?

4

1 回答 1

3

问题:如何使用上述函数名来实现IPC?

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

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

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

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

于 2013-11-06T19:47:52.663 回答