OpenCLは異種プログラミングのためのAPIであることを前提としているため、ほとんどの定義では、それに伴うレイテンシの大きなペナルティがあります。そのため、非同期APIが必要です。
しかし、私はOpenCL.netで非同期APIを見つけるのが難しいと感じています。私は OpenCl.Net.Event
構造体です。 out
ほとんどのAPI呼び出しのパラメータ。しかし、私は、とにかくイベントでコールバックを関連づけるためにとにかく見つけることができません。 clSetEventCallback
〜から欠けている opencl.net
.
誰も方法を知っていますか? await
の非同期操作 opencl.net
?
編集: 私は人々が少なくともコメントを出すことなくdownvoteするときにそれが嫌いです。記録のために、私は主題の周りのかなりのグーグルを探そうとしていました。現在、OpenCLに関する本を読んでいて、ソースコードをOpenCL.netプロジェクトに無駄にダウンロードしました。 OpenCL.netには貴重な資料はほとんどありません。
回答:
回答№1は1私はOpenCL.netについてよく知っているわけではありませんが、 CommandQueue
あなたは何を探していますか?すべてのあなたのaynchタスクを、 Finish
すべてのタスクが完了するまでコマンドを実行しますか?
たとえば、ここでは: OpenCL.NETを使用したGPGPU画像処理の基礎 下 画像処理部
ために clSetEventCallback 私はclFinishまたはclWaitForEventsしか見つけませんでした。
あなたの声明を参照する:
それはclSetEventCallbackがopencl.netから見つからないようです
私はあなたが望むことをするための方法を見つけることができませんでした、申し訳ありません。
EDIT: これは非常に暗いと思われる: Googleコード/ GPUTracer。 OpenCL.csとEvent.csを見てください。私は彼らがあなたの問題を解決したと思う。