ビデオを1つずつ処理し、アルゴリズムを実行してスコアを抽出する必要があるプロジェクトに取り組んでいます。問題は、動画の処理に時間がかかりすぎることです。いくつかの場所で parfor を使用してコードを並列化しようとしましたが、パフォーマンスは依然として悪いです。どうすればパフォーマンスを向上させることができますか? フレームをキャッシュする方法はありますか? 各フレームを読み取って処理しています。どんな提案でも大歓迎です。
2 に答える
1
キャッシングは確かにオプションですが、役に立たない場合があります。何が遅いのかわからない場合、コードを高速化するのは非常に困難です。Matlabのプロファイラーを使用して遅い部分を見つけ、それらの部分の速度を上げます。その後、もう一度プロファイルを作成して、変更がどのような影響を与えたかを確認します。
プロファイラーを使用する基本的な方法は次のとおりです。
profile on
% call your function here
profile off
profile report
于 2013-02-15T13:54:02.827 に答える
1
まず、コードが parallel をサポートしていること、および matlabpool を実行して CPU 並列計算を開いていることを確認しますか?
次に、コードを最適化する必要があるかもしれません
第三に、GPU 並列計算を試すことができます
于 2013-02-15T13:58:59.033 に答える