SPEC CPU2006 Documentation
Readme 1st CPU2006
Requirements SPEC CPU2006
Unix Install SPEC CPU2006
runspec (CPU2006)
Rules SPEC CPU2006
SPEC Benchmarks
SPEC CPU2006 Documentation
SPEC CPU2006 Documentation
参考下面的链接SPEC CPU® 2006,对照自己的操作系统和芯片类型,可以找到相应的测试结果文档,如果找不到再进行针对性的测试。
./install.sh
指定安装位置
/install.sh -d /Users/kgoel/cpu2006
Userscd/Users/kgoel/cpu2006/cpu2006
. ./shrc <– that's dot-space-dot-slash-shrc
Unix Install SPEC CPU2006
Config files - SPEC CPU2006
Rules SPEC CPU2006
benchmark[,…]=tuning[,…]=extension[,…]=machine[,…]:
benchmark: 要编译的测试文件
tuning类型
extension:标志某条规则。runspec命令行可以指定extension,执行特定规则
例子,下面三句等价
465.tonto=base=default=default:
465.tonto=base=default:
465.tonto=base:
该部分是spec运行过程中自动生成的,不用管
III. Config file options for specmake
使用下面的变量
V. Config file options for readers
V.C. Additional notes for the reader
notes_os_001 = The operating system used service pack 2 plus patches
notes_os_002 = 31415, 92653, and 58979. At installation time, the
notes_os_003 = optional "Numa Performance Package" was selected.
$ cat tmp.cfg
size = test
iterations = 1
output_format = text
teeout = 1
runlist = sjeng
tune = base
notes_part_greeting_011 = + how you?
notes_part_greeting_20 = +
notes_part_greeting_012 = + are Alex,
notes_part_aname_1 = +
notes_part_080 = ++ hi
$ runspec –config tmp > /nev/dull
$ cd ../result
$ ls -t *test.txt | head -1
CINT2006.101.test.txt
$ grep + *101*txt hi
++ Alex, how
++ are you?
+
$
IV. Config file options for the shell
II.B. Options
$[variable]
$variable, ${variable}
include: SUT.inc
#开头
$ cd $SPEC/config
$ cp Example-macosx-gcc421.cfg Khushboo-macosx.cfg
$ runspec –config=Khushboo-macosx.cfg –action=build –tune=base bzip2
成功标志:
Build successes: 401.bzip2(base) <<– what we want to see
The base metrics (e.g. SPECint_base2006) are required for all reported results and have stricter guidelines for compilation. For example, the same flags must be used in the same order for all benchmarks of a given language. This is the point closer to those who might prefer a relatively simple build process.
The peak metrics (e.g. SPECint2006) are optional and have less strict requirements. For example, different compiler options may be used on each benchmark, and feedback-directed optimization is allowed. This point is closer to those who may be willing to invest more time and effort in development of build procedures.
runspec (CPU2006)
$ runspec –config=Khushboo-macosx.cfg –size=test –noreportable –tune=base –iterations=1 bzip2
$SPEC/result
–iterations=1
–nobuild
bash-2.05$ runspec –config newint.cfg –nobuild –reportable int
michael.cfg
output_format = asc,ps
tune = base
reportable = 1
runlist = fp
下面两句等价:
runspec –config=michael
runspec –config=michael –output=asc,ps –tune=base –reportable fp
当三者同时存在时,优先执行
最高优先级 命令benchmark
其次 套件名 int/fp
最低 default
$ cat tmp.cfg
runlist = sjeng
size = test
iterations = 1
tune = base
output_format = text
teeout = 1
458.sjeng=default=default=default:
OPTIMIZE = -xO4 -w
default=default=default=default:
OPTIMIZE = -xO2 -w
int=default=default=default:
OPTIMIZE = -xO3 -w
$ runspec –config=tmp | grep sjeng.c
cc -c -o sjeng.o -DSPEC_CPU -DNDEBUG -xO4 -w sjeng.c
458.sjeng=default=default=default:
OPTIMIZE = -xO4
400.perlbench=default:
OPTIMIZE = -fast
458.sjeng=default=default=default:
OPTIMIZE = -xO3
The ending value of OPTIMIZE for 458.sjeng is -xO3, not -xO4.
$ cat tmp.cfg
runlist = sjeng
size = test
iterations = 1
tune = base
output_format = text
teeout = 1
default=default=default=default:
OPTIMIZE = -xO2 -w
int=default=default=default:
OPTIMIZE = -xO3 -w
458.sjeng=default=default=default: #使用这条规则
OPTIMIZE = -xO4 -w
$ runspec –config=tmp | grep sjeng.c
cc -c -o sjeng.o -DSPEC_CPU -DNDEBUG -xO4 -w sjeng.c
$
打印特定语句
$ cat tmp.cfg
runlist = sjeng
size = test
iterations = 1
tune = base
output_format = text
teeout = 1
default=default=default=default:
OPTIMIZE = -xO2 -w
int=default=default=default: #这个优先级高,先执行
OPTIMIZE = -xO3 -w
$ runspec –config=tmp | grep sjeng.c
cc -c -o sjeng.o -DSPEC_CPU -DNDEBUG -xO3 -w sjeng.c
$
结果:
打印了二条语法
$ cat tmp.cfg
runlist = sjeng
size = test
iterations = 1
tune = base
output_format = text
teeout = 1
default=default=default=default:
OPTIMIZE = -xO1 -w
$ runspec –config=tmp | grep sjeng.c
cc -c -o sjeng.o -DSPEC_CPU -DNDEBUG -xO1 -w sjeng.c
结果:
peak和base的优先级一样,都会执行
$ cat tmp.cfg
runlist = sjeng
size = test
iterations = 1
tune = base,peak
output_format = text
teeout = 1
default=default=default=default:
CC = /opt/SUNWspro/bin/cc -w
default=base=default=default: #执行
CC = /update1/bin/cc -w
default=peak=default=default: #执行
CC = /update2/bin/cc -w
$ runspec –config=tmp | grep sjeng.c
/update1/bin/cc -w -c -o sjeng.o -DSPEC_CPU -DNDEBUG sjeng.c
/update2/bin/cc -w -c -o sjeng.o -DSPEC_CPU -DNDEBUG sjeng.c
$ cat tmp.cfg
runlist = sjeng
size = test
iterations = 1
tune = base
output_format = text
teeout = 1
default=default=default:
LIBS = -lslowmalloc
default=default=myke:
LIBS = -lbsdmalloc
default=default=yusuf:
LIBS = -lthread -lmtmalloc
$
$ runspec –config=tmp –extension=myke | grep sjeng.o
cc -c -o sjeng.o -DSPEC_CPU -DNDEBUG sjeng.c
cc attacks.o book.o crazy.o draw.o ecache.o epd.o eval.o leval.o moves.o
neval.o partner.o proof.o rcfile.o search.o see.o seval.o sjeng.o ttable.o
utils.o -lbsdmalloc -o sjeng
$
$ runspec –config=tmp –extension=yusuf | grep sjeng.o
cc -c -o sjeng.o -DSPEC_CPU -DNDEBUG sjeng.c
cc attacks.o book.o crazy.o draw.o ecache.o epd.o eval.o leval.o moves.o
neval.o partner.o proof.o rcfile.o search.o see.o seval.o sjeng.o ttable.o
utils.o -lthread -lmtmalloc -o sjeng
$
$ cd $SPEC/benchspec/CPU2006/458.sjeng/exe
$ ls -lt | head -3
total 5888
-rwxrwxr-x 1 alan staff 244688 May 11 16:32 sjeng_base.yusuf
-rwxrwxr-x 1 alan staff 244628 May 11 16:31 sjeng_base.myke
$
benchmark>suite>tuning>extension
$ cat tmp.cfg
runlist = sjeng
size = test
iterations = 1
tune = base
output_format = text
teeout = 1
default=default=default=default:
OPTIMIZE = -xO2 -w
CC = /opt/SUNWspro/bin/cc
LIBS = -lbsdmalloc
458.sjeng=default=default=default:
OPTIMIZE = -xO4 -w
default=peak=default=default:
CC = /update1/bin/cc
default=default=mt=default:
LIBS = -lthread -lmtmalloc
$ runspec –config=tmp –tune=peak –ext=mt | grep sjeng.o
/update1/bin/cc -c -o sjeng.o -DSPEC_CPU -DNDEBUG -xO4 -w sjeng.c
/update1/bin/cc -xO4 -w attacks.o book.o crazy.o draw.o ecache.o epd.o
eval.o leval.o moves.o neval.o partner.o proof.o rcfile.o search.o see.o
seval.o sjeng.o ttable.o utils.o -lthread -lmtmalloc -o sjeng
$
Notice above that all three sections applied: the section specifier for 458.sjeng, the specifier for peak tuning, and the specifier for extension mt.
fdo_pre0 = mkdir /tmp/pb; rm -f /tmp/pb/${baseexe}*
$ cat tmp.cfg
runlist = mcf
size = test
tune = base,peak
iterations = 1
output_format = asc
teeout = 1
expand_notes = 1
use_submit_for_speed = 1
default=peak=default=default:
submit = echo "home=$HOME; spec=$SPEC;" > /tmp/chan; $command
default=base=default=default:
submit = echo "home=\$HOME; spec=\$SPEC;" > /tmp/nui; $command
$ runspec –config=tmp > /dev/null
$ cat /tmp/chan
home=; spec=;
$ cat /tmp/nui
home=/home/chris; spec=/spec/cpu2006;
$
I.D.1.d Example: submit to multiple nodes, Tru64 Unix
I.D.1.e Example: bind to processors, SPEC TurboBlaster9000
I.D.2.b Example: submitting to multiple nodes, SGI Origin 2000
IV.C. Using submit