無料で30%のパフォーマンスUP!! - intel compiler
最近、雑誌の記事でよく見かけるようになった、Intel Compiler 通称 icc ですが、Linux系にプリインストールされる gcc と比較して re-compile するだけで概ね 30 % 程度の高速化が図れるようです。
試しに、当サイトで配布している「高速半角全角ライブラリ」で検証してみました。
gcc - compile版
[h2z]Drk::Encode[1000000]LOOP TIME=13
[z2h]Drk::Encode[1000000]LOOP TIME=13
icc - compile版
[h2z]Drk::Encode[1000000]LOOP TIME=10
[z2h]Drk::Encode[1000000]LOOP TIME=10
とウワサ通りの高速化が実現できてしまいました。実は version 6 の頃に試用したことがあったのですが、 gcc との互換性が低くて使い物になりませんでした。現在は version 8.1 ですが、かなりのレベルで gcc と互換性があると思いました。コンパイル時に warning がたくさんでますが、実行にはそれほど差し支えないものと思われます。[h2z]Drk::Encode[1000000]LOOP TIME=13
[z2h]Drk::Encode[1000000]LOOP TIME=13
icc - compile版
[h2z]Drk::Encode[1000000]LOOP TIME=10
[z2h]Drk::Encode[1000000]LOOP TIME=10
当サイトでサービス提供している Amazon Search はコアが C++ で記述されているので、早速 re-compile してみました。warning が大量に出ましたが、正常に動作しました。benchmark は撮ってませんが、体感速度も向上しました。
Intel Compiler を利用する利点をまとめますと、
- CPU 毎に最適化。かつ gcc を超える高度な最適化。(CPU と Compiler の製造が同じ会社ならではなせる技!)
- gcc との互換性は、ほぼ問題なし
- Linux での個人利用(非営利目的)の場合は無料(非サポートとなります)
- スポンサーリンク -
Intel Compiler のインストール方法は次の通りです。
- Intel® C++ Compiler for Linux をダウンロードします(メールアドレス登録必要)。
- メールで送られてくるライセンスファイルとダウンロードしたファイルを /usr/local/src あたりに保存。
- tar xvfz l_cc_pu_8.1.024.tar.gz
cd l_cc_pu_8.1.024
source ./install.sh
※途中でライセンスファイルの場所を聞いてくるので、/usr/local/src とか入力。
- 僕の環境だけかもしれないが、icc / icpc / iccvars.sh が旨くインストールできていなかったので、手動で設定反映。
mv icc icc.bk
cp icc.abs icc
chmod 755 icc
mv icpc icpc.bk
cp icpc.abs icpc
chmod 755 icpc
mv iccvars.sh iccvars.sh.bk
cp iccvars.sh.abs iccvars.sh
chmod 755 iccvars.sh
echo '
source /opt/intel_cc_80/bin/iccvars.sh
export GXX_ROOT=/usr/lib/gcc-lib/i386-redhat-linux/3.2.3/
export GXX_INCLUDE=/usr/include/c++/3.2.3/
'>> /etc/bashrc
source /etc/bashrc
- cp /usr/bin/gcc /usr/bin/gcc.3.2.3
mv /usr/bin/gcc /usr/bin/gcc.bk
ln -s /opt/intel_cc_80/bin/icc /usr/bin/gcc
コンパイルオプションですが、マニュアルを熟読しないととても使いこなせそうにありませんが、取りあえず
- CFLAGS="-O3 -tpp7 -xWNB -axWNB -ip" ./configure
- スポンサーリンク -
コメントやシェアをお願いします!
drk
有償ですが、PathScale EKO Compiler Suite なる AMD-cpu 向けの最適化コンパイラーがあります。最低価格で8万円ほどしますが、概ね Intel Compiler より高めな値段設定ですね。
http://www.clubsse.com/pathscale/
開発元では、30日の Trial 版がダウンロード可能です。
http://www.pathscale.com/trial.php
amd
これ、CPUにAMDを使っているサーバーだと
効果ないですよね・・・。
似たようなコンパイラあるんでしょーか