1

私はGPUでビデオフィードをリアルタイムで処理するアプリケーションに取り組んでおり、GPUでリソースを大量に計算する必要があります。今の私の問題は、ビデオ処理をリアルタイムの速度で維持しながら、追加の作業が発生したら並行して実行したいということです。

これを行うべきだと私が思う方法は、2つのコマンドキューを使用することです。1つはリアルタイムビデオ処理用で、もう1つは大規模な計算用です。ただし、これがGPUのコンピューティングリソースでどのようになるかはわかりません。並列実行中にコマンドキューに割り当てられるワーカーが同じくらい多くなるでしょうか。(つまり、リアルタイム計算の約50%の速度低下が予想できますか?)それとも、デバイスに依存しますか?

4

2 に答える 2

3

OpenCL仕様は、複数のコマンドキュー間で実行リソースのバランスを取る方法を決定するのはベンダーに任されています。したがって、ベンダーは、GPUが一度に1つのカーネルでのみ動作するようにOpenCLを実装できます。私の意見では、それは合法的な実施になるでしょう。

デバイスに依存しない方法で問題を本当に解決したい場合は、大規模な非リアルタイム計算をより小さな計算に分割する方法を理解する必要があると思います。

于 2013-01-10T18:55:42.223 に答える
1

AMDには、デバイスの分裂のためにいくつかの拡張機能があります(そのうちのいくつかは、OpenCL 1.2で採用されたと思います)。つまり、デバイスの一部を1つのコンテキスト用に予約し、残りを他のコンテキスト用に使用できます。

于 2013-01-19T19:46:11.030 に答える