Gem5在X64架構下運行SPEC2006

問題來源:爲了驗證GEM5執行banchmark需要的時間是否可以容忍,故摸索了下gem5下如何運行spec2006,分析可用性。


步驟一 (編譯spec2006): 
1. 購買或下載spec2006源碼; 

2. 驗證壓縮文件的完整性
$ md5sum spec2006v1_0.tar.bz2 
61a69f45ee38d1030a1c217dde782253    spec2006v1_0.tar.bz2
3. 解壓
$ tar -jxvf spec2006v1_0.tar.bz2
默認解壓到CPU2006v1.0.1目錄

4. 賦權限

CPU2006v1.0.1/目錄下:

chmod a+x install.sh
CPU2006v1.0.1/bin/目錄下:
chmod a+x relocate
CPU2006v1.0.1/tools/bin/linux-suse101-AMD64/目錄下:    
chmod a+x spec*
chmod a+x description

5. 安裝

CPU2006v1.0.1/下執行: ./install.sh 


6.編譯(build)一個benchmarkbzip2爲例)獲得bzip2_base.amd64-m64-gcc41-nn

命令:cd config(首先進入路徑)

命令:cp linux64-amd64-gcc41.cfg experiment5.cfg


7.安裝g++, gfortran:
輸入命令:sudo apt-get install g++
輸入命令:sudo apt-get install gfortran
通過命令“gfortran -v”,可以查看gfortran是否安裝成功。


注意:通過拷貝linux64-amd64-gcc41.cfg成爲experiment5.cfg,進行bzip2的build,默認是動態編譯,而在gem5運行build好的bzip2時應該是靜態編譯好的exe文件,所以在編譯bzip2時,應該選擇靜態編譯,那麼如何修改呢?

修改experiment5.cfg文件中的:

修改編譯器的路徑:

#####################################################################
#
# Compiler selection
#
#####################################################################
CC           = /usr/bin/gcc
CXX          = /usr/bin/g++
FC           = /usr/bin/gfortran

將編譯選項改爲靜態:

#####################################################################

# Optimization
#####################################################################


## Base is low opt
default=base=default=default:
COPTIMIZE     = -O2 -static
CXXOPTIMIZE  = -O2 -static
FOPTIMIZE    = -O2 -static


命令(build): runspec --config=experiment5.cfg --action=build --tune=base bzip2

如果輸入runspec提示找不到命令時(即提示:runspec:command not found)錯誤是,需要退回spec的按裝目錄,即退回到CPU2006v1.0.1目錄,輸入命令:

.空格./shrc

編譯過後進入目錄:

命令:cd benchspec/

命令:cd CPU2006

命令: cd 401.bzip2/

可以看見 401.bzip2文件中多了兩個文件夾 exe , buildls命令查看)

7.運行:首先進入目錄 cd /home/danny/spec2006/CPU2006v1.0.1/config

命令runspec --config=experiment5.cfg --size=test --noreportable --tune=base --iterations=1 bzip2

含義:noreportable 保證只運行一個benchmark而不是所有的那31benchmarkspec 200631benchmark

運行結果:

runspec v4662 - Copyright 1999-2006 Standard Performance Evaluation Corporation
Using 'linux-suse101-AMD64' tools
Reading MANIFEST... 17910 files
Loading runspec modules...............
Locating benchmarks...found 31 benchmarks in 12 benchsets.
Locating output formats: ASCII, config, CSV, flags, HTML, mail, PDF, PostScript, raw, Screen, Submission Check
Reading config file '/home/danny/spec2006/CPU2006v1.0.1/config/experiment5.cfg'
Benchmarks selected: 401.bzip2
Compiling Binaries
  Up to date 401.bzip2 test base amd64-m64-gcc41-nn default




Parsing Flags
  Looking at 401.bzip2 base amd64-m64-gcc41-nn default: done
Flag Parsing Complete


Setting Up Run Directories
  Setting up 401.bzip2 test base amd64-m64-gcc41-nn default: created (run_base_test_amd64-m64-gcc41-nn.0000)
Running Benchmarks
  Running 401.bzip2 test base amd64-m64-gcc41-nn default
/home/danny/spec2006/CPU2006v1.0.1/bin/specinvoke -d /home/danny/spec2006/CPU2006v1.0.1/benchspec/CPU2006/401.bzip2/run/run_base_test_amd64-m64-gcc41-nn.0000 -e speccmds.err -o speccmds.stdout -f speccmds.cmd -C
/home/danny/spec2006/CPU2006v1.0.1/bin/specinvoke -E -d /home/danny/spec2006/CPU2006v1.0.1/benchspec/CPU2006/401.bzip2/run/run_base_test_amd64-m64-gcc41-nn.0000 -c 1 -e compare.err -o compare.stdout -f compare.cmd
Success: 1x401.bzip2
Producing Reports
mach: default
  ext: amd64-m64-gcc41-nn
    size: test
      set: int
        format: raw -> /home/danny/spec2006/CPU2006v1.0.1/result/CINT2006.003.test.rsf
        format: ASCII -> /home/danny/spec2006/CPU2006v1.0.1/result/CINT2006.003.test.txt
      set: fp


The log for this run is in /home/danny/spec2006/CPU2006v1.0.1/result/CPU2006.003.log


runspec finished at Wed Feb 15 16:35:25 2017; 37 total seconds elapsed

8.在GEM5中運行,獲得執行時間和統計信息:

./build/X86/gem5.opt ./configs/example/se.py -c /home/danny/spec2006/CPU2006v1.0.1/benchspec/CPU2006/401.bzip2/exe/bzip2_base.amd64-m64-gcc41-nn -o /home/danny/spec2006/CPU2006v1.0.1/benchspec/CPU2006/401.bzip2/data/test/input/control

發佈了26 篇原創文章 · 獲贊 8 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章