GPU でカーネルを実行し、ホスト (CPU) で追加の計算を実行しようとしています。私はこの効果を見ます:
カーネルのみが約 2000 ミリ秒を必要とします。
clEnqueueNDRangeKernel ...
clFinish (または clWaitForEvents、両方試しました)
sleep(10) を使用して、CPU で追加の計算をシミュレートしました。
clEnqueueNDRangeKernel ...
睡眠 (10);
clFinish (または clWaitForEvents)
理論的には、カーネルは GPU で実行され、10 秒のスリープ後にカーネルは終了するはずです。しかし、時間測定では、10000 ではなく 12000 ミリ秒が必要であると述べています。
clFinish または clWaitForEvents はカーネルを呼び出して開始しますか、それとも何か見逃していましたか?
AMD Fusion CPU/GPU と Linux を使用しています。
どうもありがとう。