2016-03-26 10 views
2

実行するジョブが多数あります。各ジョブは、バッファ書き込み、カーネル実行、およびバッファ読み出しから構成され、これらの操作はもちろん順番に実行されなければなりません。しかし、様々なジョブは一意ではないため、同時に実行することができます。OpenCL複数のイン・オーダー・コマンド・キュー対単一のアウト・オブ・オーダー・キュー

複数のインオーダーコマンドキュー(CUDAストリームと同様)を使用する場合と、1つのアウトオブオーダーを使用する場合(同等の同期化を使用する場合)のパフォーマンスに違いはありますか?どちらが良いですか?

答えて

0

アウトオブオーダーコマンドキューをサポートしていない実装もあります。

あなたの記述に基づいて、私は複数のアウト・オブ・オーダー・キューを使用します。単一のアウト・オブ・オーダー・キューを使用するには、仮想キュー内でイベントを同期させる必要があります。これは余分な作業です。

+0

はい、ただしコマンドキューの数はいくつですか?マニュアル「バッチ」の作成による余計な努力をしても、私は単一のアウト・オブ・オーダー・キューを使用する方がより簡単です。しかし、それがサポートされていて、パフォーマンスに苦しんでいない場合に限ります。 – Shepard

+0

>コマンドキューの数 実行中のジョブごとに1つ(完了したジョブから新しいジョブに再利用できます)。しかし、1つのアウト・オブ・オーダー・キューを使用して試してみるのは、もっと簡単です。実行するすべてのデバイスがサポートされていることを確認します。 – Dithermaster

+0

これは、一度利用可能な古いキューを再利用することをお勧めします。私は単一のキューを使用したいと思いますが、複数のキューを比較してどのように実行するのか不思議でした。私はいくつかのテストをするつもりだと思う。 – Shepard

関連する問題