intel compiler v.s. gcc

intelコンパイラの最新版10.1が入手できたので,久しぶりにベンチマークを取ってみた.

比較対象は

  • intel compiler (ICC) version 10.1 20070913
  • gcc-4.2.2
  • gcc-4.3.0 (snapshots/20071020)

これらのコンパイラで手元にあった数値計算のコードをビルドし,生成されたバイナリの処理時間を測定してみた.

まずオプションを何もつけずにビルドした場合の処理時間

icc 10.1 gcc-4.2.2 gcc-4.3.0(snapshots/20071020)
7.485 13.548 14.010

iccが速いのは,デフォルトで"-O2"でコンパイルするため.

次に最適化をかけた場合の処理時間

icc 10.1 gcc-4.2.2 gcc-4.3.0(snapshots/20071020)
-O3 -ipo -parallel -xO -O3 -ftree-vectorize -mtune=prescott -O3 -ftree-vectorize -mtune=prescott
1.661 3.060 2.884

ということで,予想通りの結果となったが

  • intel compiler の圧勝
  • gcc-4.2 より gcc-4.3 のほうが最適化は強力になっている

ことが判明.