6

鉴于 OpenCL 旨在成为异构编程的 API,它几乎可以定义为与之相关的巨大延迟损失。因此必须有一个异步 API。

然而,我发现很难在 OpenCL.net 中找到异步 API。我找到了OpenCl.Net.Event结构,它似乎是out大多数 API 调用中的一个参数。但是我无论如何都找不到与事件相关联的回调,clSetEventCallback因为opencl.net.

有谁知道如何进行await异步操作opencl.net

4

1 回答 1

1

我对 OpenCL.net 了解不多,但这不是CommandQueue您要找的吗?您可以使用该命令将所有 aynch 任务排入队列,Finish直到所有任务完成?

例如这里:图像处理部分使用 OpenCL.NET 的 GPGPU 图像处理基础

对于clSetEventCallback,我只找到了 clFinish 或 clWaitForEvents。

参考你的说法:

因为 opencl.net 似乎缺少 clSetEventCallback

我找不到任何方法来做你想做的事,对不起。

编辑:这似乎很有趣:Google-Code / GPUTracer。你应该看看 OpenCL.cs 和 Event.cs。我认为他们解决了你的问题。

于 2014-11-06T15:39:30.290 回答