6

いくつかの高次元 NLP (非線形プログラミング) を含むリアルタイム アプリケーション用のアルゴリズムを作成しようとしています。

実装の前に、アルゴリズムのタイミングを計って、リアルタイム アプリケーションで実現可能かどうかを確認する必要があるため、Matlab の組み込み fmincons をベースラインとして使用します。

経験が示すように、matlab アルゴリズムは C++ の対応するアルゴリズムよりも遅いものから非常に遅いものまで変化する傾向があるため、この特定のケースでどのようなパフォーマンスの向上が期待できるかを見積もりたいと思いますか?

私の仕事は主にリアルタイム アプリケーションに関連しているため、NLP (非線形プログラミング) を使用することはめったにありません。同僚に尋ねたところ、最初に ipopt を試すことを勧められました。その Web サイトをググったところ、Matlab に対するベンチマークはありませんでした。 、アルゴリズムの詳細に関するトピックはあまりありません(少なくともMatlabでは、アルゴリズムの詳細を確認することは難しくありません)ので、基本的に精度/堅牢性/最適性などについてはほとんどわかりません。

したがって、NLP の C++ 実装に関するここでのヘルプは非常に役立ちます。事前に感謝します。

4

1 に答える 1

2

これらの種類の問題の多くは、大きなO(n ^〜3)行列の乗算によって支配されます。その場合、両方のシステムが同じアルゴリズムを使用している場合、パフォーマンスは類似しており、言語に依存しません。基礎となる行列の乗算関数は、とにかくasmでネイティブに実装されるためです。

アルゴリズムがこのような単純な関数に支配されておらず、代わりにC ++ライブラリよりも多くのメモリ管理が必要な場合(3〜10倍の速度)。

(パフォーマンスが重要である場合、多くの人がOpenCLを使用して、このタイプの数値計算用に設計されているGPUにデータをファームオフし、20〜100倍の範囲で価格/パフォーマンスの違いがあります。またはクラスターにファームオフすることもできますさらに速く必要な場合。)

于 2012-11-10T15:29:15.840 に答える