3

私の最後の質問では、OpenClのクリーンアップがセグメンテーション違反を引き起こします。、誰かが、イベント処理が欠落している、つまりコードが終了するのを待たないことが、セグメンテーション違反を引き起こす可能性があることをほのめかしました。それ以来、私が使用したチュートリアルをもう一度調べましたが、イベント(Matrix Multiplication 1(OpenCL)NVIDIA_OpenCL_GettingStartedLinux.pdf)に注意を払ったり、詳細に(私にとっては)理解できるように話したりしていません。

where and how to waitOpenCLのチュートリアルを知っていますか?

メルシー!

4

1 に答える 1

6

私は OpenCL のイベントに関するチュートリアルを持っていません。私は決して専門家ではありませんが、他の誰も応答していないため...

経験則として、 という名前の関数を待つ必要がありますclEnqueue*。これらの関数は、ジョブが完了する直前に戻ります。キューが終了したことを確認する最も簡単な方法は、 を呼び出すことclFinish()です。キュー全体が完了するまで戻りません。

もう少し手の込んだものにしたい場合は、ほとんどの関数に渡すことができるclEnqueue*オプションのパラメーターがあります。cl_eventclGetEventInfo()clWaitForEvents()

于 2010-09-20T23:21:39.973 に答える