鉴于 OpenCL 旨在成为异构编程的 API,它几乎可以定义为与之相关的巨大延迟损失。因此必须有一个异步 API。
然而,我发现很难在 OpenCL.net 中找到异步 API。我找到了OpenCl.Net.Event
结构,它似乎是out
大多数 API 调用中的一个参数。但是我无论如何都找不到与事件相关联的回调,clSetEventCallback
因为opencl.net
.
有谁知道如何进行await
异步操作opencl.net
?
鉴于 OpenCL 旨在成为异构编程的 API,它几乎可以定义为与之相关的巨大延迟损失。因此必须有一个异步 API。
然而,我发现很难在 OpenCL.net 中找到异步 API。我找到了OpenCl.Net.Event
结构,它似乎是out
大多数 API 调用中的一个参数。但是我无论如何都找不到与事件相关联的回调,clSetEventCallback
因为opencl.net
.
有谁知道如何进行await
异步操作opencl.net
?
我对 OpenCL.net 了解不多,但这不是CommandQueue
您要找的吗?您可以使用该命令将所有 aynch 任务排入队列,Finish
直到所有任务完成?
例如这里:图像处理部分下使用 OpenCL.NET 的 GPGPU 图像处理基础
对于clSetEventCallback,我只找到了 clFinish 或 clWaitForEvents。
参考你的说法:
因为 opencl.net 似乎缺少 clSetEventCallback
我找不到任何方法来做你想做的事,对不起。
编辑:这似乎很有趣:Google-Code / GPUTracer。你应该看看 OpenCL.cs 和 Event.cs。我认为他们解决了你的问题。