opencl:内核之间的异步内存-obj共享(相同的上下文,设备)

时间:2015-11-12 17:33:28

标签: pointers memory opencl sharing

在OCL 1.2中没有任何同步的情况下,在2个内核之间共享相同的内存对象是否有效? 即我想创建一个内存对象,执行copy_host_ptr并将其作为指针同时访问传递给2个内核,主要是读取。

我对两个内核使用相同的设备/上下文/程序等,我只关心内存中的偏移。即我不在乎2内核中mem-obj的基地址是否相同。

谢谢!

1 个答案:

答案 0 :(得分:0)

如果您使用单个命令队列,是的,因为那时您的内核会一个接一个地运行,并且永远不会同时访问内存。

如果您使用多个命令队列,在正确的条件下可以在某些硬件上同时执行内核,那么您应该只为只读缓冲区执行此操作。如果缓冲区由任一内核写入,那么我认为读取结果是未定义的,如果两个内核都写入更多,那么。