「スキャンライン レイトレーシングによる3Dレンダリングのコードをインテル C++ コンパイラでコンパイルしたところ、関数のインライン化等コンパイラの性能にかなり依存したコード部分があったことにもより、かなり速度差があって驚きました。
これだけコンパイラの性能があれば保守性、可読性を優先した上で、より上位の基本的アルゴリズムの改良による高速化に専念することができます。
元の環境は VisualC++ 2003 Standard です (オプションは Standard なため /O2 しか選べません)。 その前は VC6.0、CodeWarrior8.0 でもビルドしてましたがこれらは速度的にあまり変わりありませんでした。
使用した インテル C++ コンパイラーのオプションは次の通りです。
Maximize Speed plus High Level Optimization ( /O3 intel )
Global Optimizations: Yes
Inline Function Expansion: Any Suitable
Enable Intrinsic Functions: No
Floating Point Precition Improvement: None
Favor Size or Speed: Favor Fast Code
Omit Frame Pointers: No
Enable Fiber-safe Optimizations: No
Optimize For Windows Application: Yes
Use Intel® Processor Extensions: PenIII
Require Intel Processor Extension: None
Loop Unrolling:
Parallelization: No
最適化オプションをほとんどオフにしたデバッグ用ビルドの場合、VisualC++ 2003 と Intel C++ コンパイラとの速度差はあまりありませんでした。 今後、どのオプションによってどれだけ速くなるのかは検証する予定です。」
レンダリング開発者殿