Quadro FX 880 カードを使用しています。イメージ セグメンテーション コードでは、イメージを 4 つの部分に分割しました (つまり、4000 ピクセルの場合、各部分は 1000 ピクセルです)。私のコードには 8 個のカーネルがあります...最初の 4 個は並列で実行され、次の 4 個は再び並列で実行されますが、最初の 4 個のカーネルが実行された後です。8 つのカーネルすべてに同じコマンド キューを使用し、最初の 4 つのカーネルのそれぞれに clEnqueueNDRangekernel コマンドを指定し、コマンド キューの作成中に OUT_OF_ORDER 引数について言及した場合、これは可能ですか? そして、これが可能な場合、最初の 4 つのカーネルの後に実行される次の 4 つのカーネルを並行して実行する方法..? 最初の 4 つのカーネルの後に clWaitForEvents コマンドを実行してから、次の 4 つのカーネルを指定できますか? ? これにより、最初の 4 つのカーネルが並行して実行され、その後に次の 4 つのカーネルが並行して実行されることが保証されますか?
各カーネルに約 1000 ピクセルがあり、clEnqueueTask を使用すると gobal_workitem_size と local_work_item_size を 1 にすることができるため、clEnqueueTask を使用するとコードが遅くなると思います。
これらすべてのことができるかどうかはわかりません...そして何が間違っていて何が正しいのか...だから、確認が必要です...!しかし、この方法ではない場合は、別の方法を提案してください...!