OpenCL:返回std::future而不是阻塞clFinish

OpenCL: Returning std::future instead of blocking with clFinish

本文关键字:clFinish 返回 std future OpenCL      更新时间:2023-10-16

我是OpenCL的新手,但有一件事让我很恼火,目前我用clFlush结束每个OpenCL函数,这是根据标准阻塞的。是否有一种方法可以异步化的东西,返回一个std::future或写一个手写的my::craft::future,只允许在必要时等待?

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