2012-03-14 5 views
0

現在、IntelのMKL 2D FFTルーチンを使用しています。Intel-MKL一部の条件でのFFTパフォーマンス

パフォーマンスが4〜5倍に変化する条件が発生しています。

私がやっていることは、FFTライブラリを使った一種のバンドパスフィルタを実装することです。テストの結果は正しいが、スピードは問題である。

私が見ているのは、順方向FFTで約1.3秒、逆FFTで約1.3秒~6秒です。

私はこれを、FFTのフォワードパスの後に適用しているウェイトまで追跡しました。 重みは0と-1の間です.6秒になったらほとんど0になります。 時間を適用する前にウェイトを1に設定すると、1.3秒です。他のテストでは、このような振る舞いが1の重みを使用しないで表示されます。

私の質問は、この種の減速の原因になりますか?私は実行時間のわずかな変化を理解できましたが、この変化の劇的な変化ではありません。

おかげで、 ジム・K

これはFFTのMKLのバージョンや、一般的な問題に固有のものであれば、私は知りません。

答えて

0

一部のCPUでは、アンダーフローしたオペランドを使用して浮動小数点演算を行う場合、またはアンダーフローした結果を生成する場合に、さらに多くの実行サイクルが必要になる場合があります。

フィルタ係数については、ゼロよりもはるかに大きい重み(IEEEの倍数または浮動小数点アンダーフロー数に近い値)を試しても、-120 dBストップバンドよりも優れたフィルタを使用できます。それを試してください。

一部のCPUとOSの組み合わせにより、アンダーフローした浮動小数点の算術演算または結果をオフにすることができます。それはまた助けるかもしれません。

関連する問題