aboutsummaryrefslogtreecommitdiff
These are scripts to install, build and run SPEC CPU2000 and CPU2006 benchmarks
on Linux systems.  These are tested on Debian and Ubuntu flavours of
armhf and arm64.

Read through
https://collaborate.linaro.org/display/TCWG/Handling+Restricted+Benchmarks
for background on how to handle SPEC benchmarks and results.

Unlike previous versions of these scripts, the current scripts should
be run on machine that will execute the benchmarks.

The scripts support both native and cross-compilation of benchmarks.
To cross-compile benchmarks use "--build BUILDER" option of spec2xxx-config.
Note that the machine should be able to ssh to BUILDER password-lessly and
quickly (i.e., use ssh connection multiplexing).


Target requirements:

- bash, tar, xz, pxz, other common utilities
- ssh client, rsync (if using cross-compilation)
- sysroot with core libraries (if using cross-compilation against custom sysroot)
- If using profiling support: Linux perf, cpufrequtils.  For a 1-core system use "--bind 0 --helpercpu 0".
- [optional] cpufrequtils to fix cores' frequency.


Builder requirements (if using cross-compilation):
- bash, tar, xz, pxz, other common utilities
- ssh server, rsync
- target compiler
- ability to access mirror paths of target's installation of benchmarks.


Typical usage:

# Install SPEC CPU2006
$ ./spec2xxx-install -d $HOME/$(hostname)/cpu2006 ~/tmp/cpu2006-1.2-linaro.tar.xz
# Generate config file from cpu2xxx.cfg and cpu2006.cfg templates
$ ./spec2xxx-config --config my-bmk-task --build my-x86_64-box --ccprefix $HOME/abe/builds/destdir/x86_64-unknown-linux-gnu/bin/aarch64-linux-gnu- --ccflags "-static --sysroot=$HOME/abe/sysroots/aarch64-linux-gnu" --bind 1 --helpercpu 0 --profiler perf --save-temps $HOME/$(hostname)/cpu2006
# Examine that $HOME/$(hostname)/cpu2006/config/my-bmk-task.cfg is to your liking
# Run SPEC for your config, use "-O3 -g" for optimization options.
$ (cd $HOME/$(hostname)/cpu2006; . shrc; runspec -c my-bmk-task -e O3g -a run)
# Go and read a big book
# Stash away results, including profiling data and assembly files
$ ./spec2xxx-result --tag 1-my-bmk-task --dest mylaptop.ssh:$(hostname)-cpu2006-results $HOME/$(hostname)/cpu2006