現在の位置
diff プラグインを使用中
- 追加された行はこの色です。
- 削除された行はこの色です。
- ターゲット環境/SPEC/SPECCPU2000のコンパイル へ行く。
- ターゲット環境/SPEC/SPECCPU2000のコンパイル の差分を削除
*概要 [#d6e1b714] **必要なもの [#gee15146] -ターゲット環境用のクロスコンパイラ : gcc, g++, gfortran -SPEC2000のISOイメージ : spec2000-1.10.iso --teraにあります **注意 [#wcd5eb88] -&color(red){SPEC2000のソースは古いgcc向けに作られているので、新しいgccではコンパイルが通りません!}; --いくつかのソースに対して2,3行の改変をすればコンパイルが通ります --バージョン2.x.xの古いgccを使うとよいかもしれません(未テスト) **作業の流れ [#u1e590a0] -SPEC2000 のCD(iso)より環境をインストール -設定ファイルの作成 -ソースの書き換え --[[ターゲット環境/SPECCPU2000のコンパイル/環境毎の設定例]]参照 -make *1.SPEC2000のインストール [#wb36ac14] ** 1.1 SPEC2000 のisoイメージをマウント [#c0c1a482] マウントポイントを dvd とする場合 mkdir dvd su mount -t iso9660 -o loop,ro spec2000-1.10.iso dvd exit ** 1.2 インストール [#qa2a78b6] cd dvd ./install.sh -インストール先のディレクトリを要求されるので入力&color(red){(←以降${SPEC}とする)}; -プラットフォームを選べと言われて選択肢が表示される。表示された選択肢を入力 --deltaでインストールしたらlinux-redhat62-i686しか選択肢がなかった -&color(red){libdb.so.3がないと言われてインストールに失敗する場合}; --compat-db とgdbm を導入する yum install compat-db yum install gdbm ** 1.3 アンマウント [#m5e31f31] su umount dvd exit ** 1.4 入力データの配置 [#p8e4260e] [[SPECベンチマークの入力データの配置]]を参照 * 2 SPEC2000のコンパイル [#b3cb4ebb] ** 2.1 設定ファイルの作成 [#ya97b61d] -設定ファイルの書き方については詳しくは${SPEC}/docs/config.txtを参照 -主にコンパイルオプションを指定するための存在 --通常Makefileの中に書くようなことを書く -int,fpのスイートレベル、ベンチマークレベルなど異なるレベル毎にオプションを指定できる --固有の書式を用いる。config.txt参照 -設定ファイルは ${SPEC}/config にある --同ディレクトリに自分の設定ファイルを作成 --それっぽい設定ファイルをコピーしてベースにする *** 書き換えの例 [#h07dd756] -作成済みのものについては,[[ターゲット環境/SPECCPU2000のコンパイル/環境毎の設定例]]を参照 cd ${SPEC}/config (例えば)cp alpha-linux-gcc-nag.cfg myalpha64.cfg 設定ファイルのヘッダセクションに次の行を追加 # makeの作業の中で並列実行可能なものを並列実行(下の例の場合4つまで) makeflags = -j 4 # 「SPEC のwebサイトにアクセスしてバージョンチェックを行う」を無効にする check_version = no コンパイラの設定を変更(例) CC = alpha-unknown-linux-gnu-gcc CXX = alpha-unknown-linux-gnu-g++ FC = alpha-unknown-linux-gnu-gfortran 最適化・共通のフラグの設定を変更(例) default=base=default=default: COPTIMIZE = -O3 CXXOPTIMIZE = -O3 FOPTIMIZE = -O3 PORTABILITY = -DSPEC_CPU_LP64 -DSPEC_CPU_LINUX -benchspec/CINT2000/(ベンチマーク名)/docsを参考にして各ベンチマークに必要なフラグを追加 --コピー元の設定ファイルに近い環境ならほとんどそのままで大丈夫かも ** 2.2 ソースの改変 [#ia84d62f] -必要に応じてファイルを書き換える必要がある -[[ターゲット環境/SPECCPU2000のコンパイル/環境毎の設定例]]を参照 ** 2.3 コンパイル [#n41aef28] -コンパイルにはrunspecというツールを用いる --makeの働きもするし、ベンチマークを走らせて結果のレポートを作ることもできる --- --actionオプションで機能を選択する --- ベンチマークをonikiriで走らせるつもりなら、とりあえずmakeの代わりだと思っておけばよい -- --configオプションで上で作成したconfigファイルを指定 --環境変数を設定すると${SPEC}/binにパスが通って使えるようになる cd ${SPEC} # 環境変数 の設定 (bash) . ./shrc (csh) source ./cshrc # コンパイル runspec --config myalpha64.cfg --action build int fp ***中間ファイル [#k04be2d3] -benchspec/CINT2000/(ベンチマーク名)/run の下にディレクトリが作られ、その中でコンパイルが行われる -実行ファイルは、 benchspec/CINT2000/(ベンチマーク名)/exe/ に置かれる -コンパイルを行うと、コンパイルに用いたconfigファイルにこのようなセクションが追加される __MD5__ 164.gzip=base=nag-gcc-dec07=default: # Last updated Wed May 14 02:00:58 2008 optmd5=7541206c681781d328ce4345604f87d5 exemd5=fcc9a1be3229af9fe78d449fd68b0fc4 175.vpr=base=nag-gcc-dec07=default: # Last updated Wed May 14 02:00:58 2008 optmd5=0a0eb08f8a55964668c71727d3b7a3ff exemd5=27a35a4e0132d6aead8bf088744294e9 ... -ここには最後にバイナリがビルドされた時のコンパイルオプションなどの条件が記録されている --同時にconfigディレクトリにバックアップが作成される ---なんどもビルドしているとどんどんバックアップが増える --特定のベンチマークだけオプションを変えてコンパイルし直すと、条件の変わったベンチマークだけ作り直してくれる ***実行環境の作成 [#g4cfc2e2] # 実行環境の作成 runspec --config myalpha64 --action setup --size test int fp runspec --config myalpha64 --action setup --size train int fp runspec --config myalpha64 --action setup --size ref int fp -test,train,refはそれぞれ異なる入力ファイルのセット -入力ファイルと実行ファイルが benchspec/CINT2000/(ベンチマーク名)/run/ 以下にコピーされる --新しく00000001のような名前のディレクトリが作られ、そこに置かれる ---新しくバイナリを作り直したりする度にディレクトリが増える --同じディレクトリに作られたlistというファイルにそれぞれのディレクトリの内容が書かれている ---要するに異なる条件で作成されたバイナリのインスタンスごとに作業ディレクトリが作成される ---バイナリの作成、実行、結果報告までをrunspecが一括して管理できるような仕組みになっている ** 2.4 clean [#bb57e8a4] runspec --config myalpha64 --action clobber int fp ↑実行ファイルが全部削除されます (文責: ほりお,しおや)