2012-01-11 7 views

答えて

2

逆に、最適化コンパイラは現代のCPUをより多く獲得します。自動ベクトル化はコードを数倍高速化します。最新の命令セットでは、いくつかの最適化の機会も与えられます(たとえば、x86の条件分岐の代わりにCMOVを使用するなど)。

パフォーマンスのギャップが狭まっている領域があります。 CPUは関数呼び出しを高速に実行するので、関数インライン展開は以前のように有益ではない可能性があります。ループをアンロールすると、コードが少し遅くなることがあります。しかし、ほとんどの場合、コンパイラの最適化とCPUの最適化はお互いに直交しています。 CPUはループフュージョンまたは共通部分式の削除を行うことはできません。コンパイラは、動的命令スケジューリング、分岐予測、またはデータプリフェッチに代わる良い方法を提供することはできません。

関連する問題