SPEC benchmarks

From gem5
Jump to: navigation, search

SPEC 2000 (spec2k)

To run SPEC 2000 binaries on gem5 you can use the gem5 specific cpu2000 python package.

cpu2000 Package

The cpu2000 python package defines workload classes which represent various benchmarks from the SPEC 2000 CPU suite. These take the ISA, operating system, and desired input set as parameters. The following example is from tests/long/00.gzip/test.py.

from cpu2000 import gzip_log
workload = gzip_log('alpha', 'tru64', 'smred')
root.system.cpu.workload = workload.makeLiveProcess()

This creates a workload representing the gzip log spec2000 benchmark compiled for alpha/tru64 with the smred input set and assigns it to root.system.cpu.

Workloads created from this package expect to find their binaries and input files in the following two directories, respectively.

cpu2000/binaries/<isa>/<operating system>/<benchmark>
cpu2000/data/<benchmark>/<input set>

Syscall Emulation Mode Command Lines

If you would like to run SPEC2K using syscall-emulation mode, a good reference for the correct command line options can be found here:

(Note: these example command lines aren't for reduced/minimized input sets.)

If you are unable to use the cpu2000 package, you can still set up and run binaries as you normally would. To run a statically-linked ALPHA eon binary with se.py, you could use the following command line:

$ build/ALPHA_SE/m5.debug configs/example/se.py --cmd=eon00 --options="chair.control.cook 
chair.camera chair.surfaces chair.cook.ppm ppm pixels_out.cook"

SPEC 2006 (spec2k6)

We need to get bits of info from SPEC2006_benchmarks and commit some of the code mentioned there.