リアルタイムで実行する必要がある流体力学のナビエストークス ソルバーに取り組んでいます。したがって、パフォーマンスは重要です。
現在、実行時間のかなりの部分を占めている多数のタイト ループを調べています。ボトルネックは 1 つもありません。これらのループのほとんどは、いくつかの浮動小数点演算を実行しますが、間に多くの分岐があります。
浮動小数点演算は、ほとんどの場合、加算、減算、乗算、除算、および比較に限定されています。これはすべて 32 ビット浮動小数点数を使用して行われます。私のターゲット プラットフォームは、少なくとも SSE1 命令を備えた x86 です。(アセンブラー出力で、コンパイラーが実際に SSE 命令を生成することを確認しました。)
私が扱っているほとんどの浮動小数点値の上限はかなり小さく、ゼロに近い値の精度はそれほど重要ではありません。それで、固定小数点演算に切り替えると速度が上がるのではないかという考えが浮かびました。本当に確実な唯一の方法は測定することだとわかっていますが、それには数日かかるかもしれないので、事前に成功の確率を知りたいです.
Doom の時代には固定小数点が大流行していましたが、2010 年現在の状況がどうなっているのかはわかりません。現在、浮動小数点のパフォーマンスにどれだけのシリコンが投入されているかを考えると、固定小数点演算が引き続き使用される可能性はありますか?速度が大幅に向上しますか? 私の状況に当てはまる実世界の経験を持っている人はいますか?