December 04, 2004

コンパイラの入れ替え

コンパイラを入れ替えたら数値計算が速くなりました。今までCygwinのgcc3.3.2で-O3 -march=i686 -malign-doubleで1分程度かかっていた計算が、Microsoft Visual C++ Toolkit 2003のcl.exe /O2 /G7で30秒程度で終わるようになりました。なんと半分に!!

入れ替えたVisual C++ Toolkit 2003ですが、普段gcc使いの自分のことなので当然無償です。しかし無償だからといっていい加減なわけではなく、付属するコンパイラやリンカは最適化を含めてVisual Studio .NETと同等品らしいです。ライブラリもSTLまではついてくるので数値計算にはこれで十分だと思います。
また聞いた話によると、Intelの最適化コンパイラはMicrosoftのリンカを必要とするらしいですが、製品版を買わなくともこれで代用可能らしいと聞きました(真偽はわかりません)。

せっかくなのでCygwinのmakeからも使えるようにしました。方法は簡単で、インストールディレクトリの下のbinにpathを通すことと、ライブラリパス(LIBPATH)とインクールドパス(INCLUDE)を環境変数かコマンドオプションで渡してやればOKです。

参考にmakefileのテンプレートを下の書いておきます。(例えばD:¥Program Files¥Microsoft Visual C++ Toolkit 2003¥にインストールした場合)

CXX="/cygdrive/d/Program\ Files/Microsoft\ Visual\ C++\ Toolkit\ 2003/bin/cl.exe"
CFLAG=/O2 /I "D:\Program Files\Microsoft Visual C++ Toolkit 2003\include" /G7 /link /LIBPATH:"D:\Program Files\Microsoft Visual C++ Toolkit 2003\lib"

all : hoge.exe

%.exe : %.cpp
    {CXX} $< ${CFLAG}

clean :
    if [ -f *.exe ]; then rm *.exe; fi; \
    if [ -f *.obj ]; then rm *.obj; fi

16:09 fenrir が投稿 : 固定リンク | | このエントリーを含むはてなブックマーク | この記事をdel.icio.usでブックマーク | トラックバック
このエントリーのトラックバックURL: http://fenrir.naruoka.org/mt/mt-tb.cgi/343
コメント
コメントする









名前、アドレスを登録しますか?
(次回以降コメント入力が楽になります)
  • 匿名でのコメントは受け付けておりません。
  • 名前(ハンドル名可)とメールアドレスは必ず入力してください。
  • メールアドレスを表示されたくないときはURLも必ず記入してください。
  • コメント欄でHTMLタグは使用できません。
  • コメント本文に日本語(全角文字)がある程度多く含まれている必要があります。
  • コメント欄内のURLと思われる文字列は自動的にリンクに変換されます。