タスク レベルで大量のデータを処理する OpenCL プログラムを作成します (これ以上の並列処理はできませんが、データ量は十分に多いです)。データ自体はファイルから読み取られ、結果は別のファイルに書き込まれる必要があります。 . ここで、1 つのスレッドがファイルを読み取ってデータをカーネルにプッシュし、別のスレッドが完成したデータを取得してファイルに書き込むのが最善 (最速) であると考えました。したがって、実際には ReadData->CopyToDevice->ExecuteKernel->CopyToHost->WriteData のようなものが必要になります
例はありますか、これを最善に行う方法はありますか? 10 個程度の配列 (キュー、InputMemory、OutputMemory、Events) から始めます。最初のスレッド: データを読み取り、次のイベント エントリが null になるのを待ち、この配列に入力し、次の
2 番目のスレッド: event!=null->waitforevent、データを書き込み、イベントを null に設定 または、チェックする代わりに 10 セマフォを使用するヌル