私はiphone用のライブラリを構築しています(speexですが、他の多くのライブラリにも適用されると確信しています)。makeスクリプトには、浮動小数点の代わりに固定小数点を使用するオプションがあります。
iphone ARMプロセッサにはVFP拡張機能があり、浮動小数点計算を非常にうまく実行するので、固定小数点オプションを使用する方が良い選択だと思いますか?
誰かがすでにこれをベンチマークしていて、共有したいのなら、私は本当に彼に感謝します。
私はiphone用のライブラリを構築しています(speexですが、他の多くのライブラリにも適用されると確信しています)。makeスクリプトには、浮動小数点の代わりに固定小数点を使用するオプションがあります。
iphone ARMプロセッサにはVFP拡張機能があり、浮動小数点計算を非常にうまく実行するので、固定小数点オプションを使用する方が良い選択だと思いますか?
誰かがすでにこれをベンチマークしていて、共有したいのなら、私は本当に彼に感謝します。
まあ、それはあなたのアプリケーションのセットアップに依存します。ここにいくつかのガイドラインがあります
シーケンシャル データの大きなブロックを扱う場合は、NEON が最適です。
フロートか固定か、それは良い質問です。NEON は固定を処理する方がいくぶん高速ですが、変換には時間がかかり、最終的に余分なメモリがかかるため、ネイティブの入力形式を維持します。
lib がオプションとして異なる出力形式を提供している場合でも、ほとんどの場合、lib 内部の変換を意味します。したがって、この場合はfloatがネイティブだと思います。それに固執。
より優れたアルゴリズムをマイクロ最適化することを誰も妨げません。そして通常、アルゴリズムが優れているほど、最新のマシンのパイプライン処理によるマイクロ最適化によって、より多くのパフォーマンスを向上させることができます。
ただし、組み込み関数には近づきません。特に即時値を扱う場合に、組み込み関数が何かおかしなことをすることに不満を言う投稿がネット上に非常に多くあります。それは非常に面倒なことになる可能性があり、組み込み関数を使用して最適化することもほとんどできません。