Skip to content

SPECCPU2006のコンパイル

Ryota Shioya edited this page Mar 24, 2022 · 4 revisions

dst/ターゲット環境/SPEC/SPECCPU2006のコンパイル

  • 必要なもの
    • SPEC2006のISOイメージ : CPU2006v1.0.1.ISO
    • ターゲット環境用のクロスコンパイラ : gcc, g++, gfortran

1.SPEC2006のインストール

/home/ichi-h/work/cpu2006 にインストールする場合

1.1 SPEC2006 のisoイメージをマウント

マウントポイントを dvd とする場合

mkdir dvd
su
mount -t iso9660 -o loop,ro CPU2006v1.0.1.ISO dvd
exit

1.2 インストール

cd dvd
./install.sh

コンパイル制御に使用する tool set の種類が表示されるので確認して Y

その後インストール先のディレクトリを入力を要求されるので入力 (ex. /home/ichi-h/work/cpu2006)

1.3 アンマウント

su
umount dvd
exit

1.4 入力ファイルの配置

SPECベンチマークの入力データの配置を参照.

2 SPEC2006のコンパイル

2.1 設定ファイルの作成

設定ファイルは /home/ichi-h/work/cpu2006/config に作成する。それっぽい設定ファイルをコピーしてベースにする。

cd /home/ichi-h/work/cpu2006/config
(例えば)cp linux32-i386-gcc42.cfg ichi.cfg

設定ファイルに次の行を追加

# 例
makeflags = -j 4

# 「SPEC のwebサイトにアクセスしてバージョンチェックを行う」を無効にする
check_version = no

コンパイラの設定を変更(例) CC = alpha-linux-gnu-gcc CXX = alpha-linux-gnu-g++ FC = alpha-linux-gnu-gfortran

最適化・共通のフラグの設定を変更(例) default=base=default=default: COPTIMIZE = -O3 CXXOPTIMIZE = -O3 FOPTIMIZE = -O3 PORTABILITY = -DSPEC_CPU_LP64 -DSPEC_CPU_LINUX

benchspec/CPU2006/(ベンチマーク名)/Docs を参考にして各ベンチマークに必要なフラグを追加

例 (Onikiri-Alpha用)

# Portability Flags - INT
400.perlbench=default=default=default:
CPORTABILITY= -DSPEC_CPU_LINUX_ALPHA

473.astar=default=default=default:
CXXPORTABILITY = -DSPEC_CPU_LITTLE_ENDIAN

# Portability Flags - FP
481.wrf=default=default=default:
CPORTABILITY = -DSPEC_CPU_CASE_FLAG -DSPEC_CPU_LINUX
wrf_data_header_size = 4

# from gfortran 4.2.1 ChangeLog :
#  The GNU Fortran compiler now uses 4-byte record markers
#  by default for unformatted files to be compatible with g77
#  and most other compilers.

2.2 コンパイル

cd /home/ichi-h/work/cpu2006

環境変数 の設定

(bash) . ./shrc
(csh) source ./cshrc

コンパイルと実行環境の作成 (makefileだけを作成するときは action=buildsetup とする)

runspec --config ichi.cfg --action runsetup --size test --tune=base int fp
runspec --config ichi.cfg --action runsetup --size train --tune=base int fp
runspec --config ichi.cfg --action runsetup --size ref --tune=base int fp

benchspec/CPU2006/(ベンチマーク名)/run の下にディレクトリが作られ、その中でコンパイルが行われる。

実行ファイルは、 benchspec/CPU2006/(ベンチマーク名)/exe に置かれる。

入力ファイル等の実行環境は、 benchspec/CPU2006/(ベンチマーク名)/run に置かれる。

2.3 clean

runspec --config ichi.cfg --action clean int fp

3 ソースコードの改造

benchspec/CPU2006/(ベンチマーク名)/src をそのまま改造するとエラーとなりビルドできないので以下の手順を踏む。

3.1 ビルドディレクトリを作り改造

例えば410.bwavesを改造したい時

runspec --config ichi.cfg --fake --loose --size test --tune base bwaves

でビルドディレクトリが生成される。

benchspec/CPU2006/410.bwaves/run に「build_(チューニング)_(アーキテクチャ).(4桁の数字)」というディレクトリができる。

この中にソースコードがあるのでこれを改造する。

3.2 改造したソースコードのビルド

まずビルドディレクトリに入る。 specmake clean specmake

(文責: いちばやし, くらた)

Clone this wiki locally