1

我正在实现一个内核函数,其中来自主机端的内存被传输到内核。内核具有三个函数.. 是否可以在不同时间与内核共享相同的内存缓冲区?

4

3 回答 3

1

是的,我用我的光线追踪器来做这个。我有三个内核。一个改变几何形状的预处理器、一个光线追踪器和一个进行图像处理的后处理器。我与他们三个共享内存缓冲区。我确保内核在开始下一个内核之前完成。

于 2013-04-26T04:15:34.477 回答
1

您可以毫无问题地共享内存。如果内存是只读的,您甚至可以将该内存对象用作同时运行的 2 个内核的输入(即:不同的 GPU/相同的上下文)。

但是,如果您想覆盖内存区域,请小心并使用事件来同步您的内核。我强烈推荐事件机制,因为它支持并行 I/O 读取和写入另一个队列中的内存区域。

于 2013-04-30T12:48:02.123 回答
1

是的,多个内核可以使用相同的内存对象,只要不存在内核同时执行的风险。通常的“未创建无序执行的单个命令队列”就是这种情况。

于 2013-04-25T19:45:11.330 回答