1

この関数は、PyOpenCLドキュメントではコメントされていません:http ://documen.tician.de/pyopencl/runtime.html?highlight = enqueue#pyopencl.Event.wait

私の問題は次のとおりです。forループでカーネルを呼び出す必要があり、各呼び出しの後に、を使用してコピー操作をキューに入れますpyopencl.enqueue_copy_buffer(dest, src, size)。例でこれを見つけたので、最初にこれを.wait()追加(つまり)で行いました。pyopencl.enqueue_copy_buffer(dest, src, size).wait()それから私は削除.wait()し、非常に大幅なスピードアップを得ました。

では、この機能は何のために、そしてどのような条件下でそれを放棄することができるのでしょうか?ありがとう。

4

1 に答える 1

4

.wait()操作が完了するまで待機します。コードが終了 (または開始) しなくても続行できる場合は、省略できます。これは、キュー内の操作の順序とは関係がないことに注意してください。これらの操作は、(順不同のキューを使用しない限り) キューに入れた順序で次々に実行されます。

于 2012-04-15T16:19:17.663 に答える