我是OpenCL的新手,但是有一件事让我很烦恼,目前我根据标准阻止结束每个OpenCL函数clFlush
。有没有办法通过返回std::future
或写一个手写的my::craft::future
来异步化,只允许在必要时等待?
答案 0 :(得分:1)
clFlush不会阻止,clFinish会阻止。 " clFlush仅保证将command_queue的所有排队命令最终提交给适当的设备。无法保证在clFlush返回后它们将完成。 " https://www.khronos.org/registry/cl/sdk/1.2/docs/man/xhtml/clFlush.html
您可以使用clSetEventCallback在某些内容完成后调用函数。 https://www.khronos.org/registry/cl/sdk/1.2/docs/man/xhtml/clSetEventCallback.html