1 つの opencl コマンド キューが複数のハードウェア キューにコマンドをディスパッチしないように私には思えます。順不同のコマンド キュー内のコマンドは、キューに入れられた順序ではなく、1 つずつ実行されますか?
複数のハードウェア キューを利用したい場合は、複数の opencl コマンド キューを作成するしかありませんか?
1 つの opencl コマンド キューが複数のハードウェア キューにコマンドをディスパッチしないように私には思えます。順不同のコマンド キュー内のコマンドは、キューに入れられた順序ではなく、1 つずつ実行されますか?
複数のハードウェア キューを利用したい場合は、複数の opencl コマンド キューを作成するしかありませんか?
OOO (順不同) キューは、ユーザー イベントの依存関係のニーズを満たすために使用できます。このタイプのアプリケーションに 1 つのキューがあると、決して来ないユーザー イベントを待っているブロックされたキューにつながる可能性があります。また、ジョブごとに 1 つのキューを作成することも最適ではありません。
実行に並列処理が必要な場合、OOO は必要なものではありません。しかし、複数のキュー。
一般的なアプローチは、IO 用のキューと実行中のカーネル用のキューを使用することです。ただし、マルチスレッド処理スキームでは、スレッドごとにキューを使用することもできます。各スレッドの IO は、他のスレッドの実行とオーバーラップします。
注: nVIDIA は単一のキューでのジョブの並列実行をサポートしていますが、これは標準外です。