SPEC2000 benchmarks

From gem5
Jump to: navigation, search

This is a work in-progress. Everyone should feel free to extend this page with their experiences to help new users get started.

cpu2000.py

Input sets and Binaries

Several of the cpu2000 benchmarks for our regression tests. Unfortunately because of licensing restrictions we can't provide the binaries or input files, however to make this a bit easier we have created cpu2000.py. Currently the script is tailored to our particular organization of the binaries and input files. To make the python work for you you'll minimally have to change spec_dist to point to wherever you keep your cpu2000 binaries/input sets. We have our binaries and input sets organized in the following directory structure:

cpu2000/binaries/ARCH/OPSYS/BENCHMARK
cpu2000/data/BENCHMARK/INPUTSET/FILES

Where ARCH is alpha or sparc, OPSYS is linux or tru64, BENCHMARK is the name of the spec binary (e.g gzip), INPUTSET is the input files (e.g. smred), and FILES are the specific input files. If you can't create this structure you'll have to mess with cpu2000.py to change how it finds files.

How to use it

The cpu2000.py configuration file takes this data and creates an m5 workload parameter based on benchmark name, isa, operating system, and input set. If you take a look at tests/long/00.gzip/test.py you can see an example of this, but in brief:

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

Assuming you have a machine configured normally above that blob would correctly run the gzip log spec2000 benchmark for alpha/tru64 with the smred input set.


SPEC2K Command Lines (Syscall Emulation)

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.)

Then, if you are unable to use some of the aforementioned cpu2000.py scripts, you could try something like this to run statically-linked, ALPHA, eon binary:

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