我有CL_MEM_USE_HOST_PTR | CL_MEM_READ_WRITE
标记创建的缓冲器。我已经在一个内核中使用了它,然后将数据下载(queue.enqueueReadBuffer(...)
)数据返回到创建缓冲区时的主机内存集。我已经在CPU上修改了这些数据,现在我想在另一个内核中使用它们。 当我已上载(queue.enqueueWriteBuffer
)中的数据手动使用非阻塞写入和用该缓冲液作为参数然后排队的内核,它返回CL_OUT_OF_RESOURCES
错误。阻止写入就好了。非阻塞写成有序队列
为什么会发生这种情况?我认为阻塞/非阻塞版本只控制在enqueueWriteBuffer
调用返回后我能使用CPU上的内存,而有序队列对于内核应该没有区别。 第二个问题是我是否有上传手动在所有 - 请问CL_MEM_USE_HOST_PTR
意味着数据在被上传从主机到设备的每一个部分,内核利用缓冲区作为参数的时间?由于我需要时手动下载数据,上面提到的标志有没有什么优点?
感谢