1

Web カメラを介してオブジェクトを検出するコンピューター ビジョン アプリケーションを作成しています。私は現在、アプリケーションのパフォーマンスに焦点を当てています

私の問題は、Haartraining ファイルを使用して XML カスケード ファイルを生成するアプリケーションの一部にあります。これは非常に遅く、約6 日かかります。この問題を回避するために、マルチプロセッシングを使用して、Haartraining XML ファイルを生成する合計時間を最小限に抑えることにしました。

openclと ( openMp and openMPI )の 2 つの解決策を見つけました。

今、どちらを使おうか迷っています。opencl は複数の cpu と GPU を使用するが、同じマシン上にあることを読みました。そうですか?一方、OpenMP はマルチプロセッシング用であり、openmpi を使用すると、ネットワーク上で複数の CPU を使用できます。しかし、OpenMP には GPU サポートがありません。

いずれかのライブラリを使用することの長所と短所を提案してください。

4

3 に答える 3

7

OpenCL は、GPU ストリーム プロセッサを使用するためのものです。 http://en.wikipedia.org/wiki/Opencl

OpenMP は、CPU コアを使用するためのものです。 http://en.wikipedia.org/wiki/Openmp

OpenMPI は、分散ネットワーク クラスターを使用するためのものです。 http://en.wikipedia.org/wiki/Openmpi

どちらを使用するのが最適かは、問題の仕様によって異なりますが、シングル スレッド プログラムを OpenMP に移植するのが最も簡単であるため、最初に OpenMP を使用してみます。メインループを並列化するように指示するプラグマを配置するだけで、CPU コア数の順に高速化できる場合があります。

問題が非常にデータ並列で浮動小数点の場合 - GPU からより良いパフォーマンスを得ることができますが、C のような言語でカーネルを記述し、ホストと GPU の間でメモリ バッファーをマップまたは読み取り/書き込みする必要があります。これは面倒ですが、GPU はデータ並列処理用に特別に設計されているため、パフォーマンスが 100 程度向上する場合もあります。

OpenMPI は最大のパフォーマンスを発揮しますが、クラスター (同じネットワーク上の多数のサーバー) が必要であり、それらは高価です。

于 2012-04-07T18:25:08.247 に答える
0

パフォーマンスの問題は XML ファイル自体にあるのでしょうか?

別の軽量なファイル形式を使用しようとしましたか?

生成に 6 日間かかる XML ファイルは、かなり長くて複雑であるに違いないと思います。このデータ形式を制御できる場合は、Google のProtocol Buffersを試してください。

OpenMP や OpenCL などを掘り下げる前に、ハードディスクへのアクセスにどれくらいの時間が費やされているかを確認してください。それが問題である場合、並列ライブラリは問題を改善しません。

于 2012-05-15T15:55:06.500 に答える
-3

opencv を調べて、役立つかどうかを確認してください。

于 2014-04-24T02:30:27.433 に答える