OpenCL:返回std :: future而不是使用clFinish进行阻塞

时间:2015-09-17 06:59:42

标签: c++ asynchronous opencl

我是OpenCL的新手,但是有一件事让我很烦恼,目前我根据标准阻止结束每个OpenCL函数clFlush。有没有办法通过返回std::future或写一个手写的my::craft::future来异步化,只允许在必要时等待?

1 个答案:

答案 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