魔術師見習いのノート

プロフィール

魔術師見習い
Author魔術師見習い-_-.
Twitter魔術師見習い

コンピュータ関係のメモを主に書きます.

MENU

SPEC CPU 2006

投稿日:
修正日:
タグ:

SPEC CPU 2006のプログラムをクロスコンパイルした時のことをメモ. ただし,fortranのクロスコンパイラとperlのライブラリの用意がまだなので,私が確認したのはそれ以外のプログラムだけ.

SPEC CPU 2006 インストール

メモといっても付属のドキュメントが分かりやすく,基本的にそれに従っていけば良い.ドキュメントは"Docs/install-guide-unix.html". 以降の処理も"Docs/"内のドキュメントを見れば良いが,今回はクロスコンパイルなのでコンパイラやライブラリを指定する必要がある.

まずスクリプトを使って,任意のディレクトリに作業環境を構築する.

user% ./install.sh -d $HOME/workspace/cpu2006
install.shは対話式に任意のディレクトリに必要なファイルをインストールすることができる. また,前述で使用しているdオプションを指定することで,インストール先のディレクトリを対話の前に設定することができる.

SPEC CPU 2006 (クロス)コンパイル

まずインストールした場所へ移動し,shrcかcshrcを読み込む.読み込み方は次に示す方法以外に,sourceコマンドを使用する方法などがある.

user% cd $HOME/workspace/cpu2006
user% . ./shrc

これによりパスが通りrunspecコマンドが使用可能になる.runspecの詳しい説明についてはドキュメントに詳しく書かれている.それに従うと,例えばbzip2をコンパイルしようとした場合,次のように指定する.

user% runspec --config=$PWD/config/Example-sgi_mips32.cfg --tune=base bzip2
configオプションは対象とするマシンの環境を指示するための設定ファイルを指定する.そのためクロスコンパイルする場合は,このファイルにコンパイラや使用する引数を指定すれば良いようである(CCやCXX,FCの部分や引数の部分).あるいは賢い方法とは思えないが,SPEC CPU 2006の各プログラムのコンパイルでは"benchspec/Makefile.defaults"が利用されるため,これを直接書き換えることでも可能なようだ.

SPEC CPU 2006では,CとC++,fortranのコードがある. また,perlはサードパーティのライブラリを使用しているためそれらのビルドも必要のようだ.

実行確認

実行方法はプログラムによってさまざまだが,前述のコマンドで無事コンパイルできたものは,"benchspec/CPU2006/"の各ディレクトリの中の"exe"ディレクトリ内に生成される. 例えば作成したbzip2をsescから実行すると,次のようになる.

user% ./sesc.mem
 $HOME/workspace/cpu2006/benchspec/CPU2006/401.bzip2/exe/bzip2_base.mips2-32
  $HOME/workspace/cpu2006/benchspec/CPU2006/401.bzip2/data/all/input/input.combined
各プログラムはそれぞれの特性を持つが,実行ファイルや入力ファイル,ドキュメントなどは皆"benchspec/CPU2006"の各ディレクトリ内の,"exe"や"data","Docs"というディレクトリに配置される.

追記:sescutilsのコンパイラでは,fortran90や95はコンパイルできない模様(少なくとも標準のままでは)。

一覧