Difference between revisions of "SPEC2000 benchmarks"

From gem5
Jump to: navigation, search
(SPEC2K Syscall-Emulation Mode)
 
(5 intermediate revisions by one other user not shown)
Line 14: Line 14:
  
 
<pre>
 
<pre>
from cpu2000 import gzip_long
+
from cpu2000 import gzip_log
 
workload = gzip_log('alpha', 'tru64', 'smred')
 
workload = gzip_log('alpha', 'tru64', 'smred')
 
root.system.cpu.workload = workload.makeLiveProcess()
 
root.system.cpu.workload = workload.makeLiveProcess()
Line 22: Line 22:
 
__NOTOC__
 
__NOTOC__
  
==== SPEC2K Syscall-Emulation Mode ====
+
==== 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:
 
If you would like to run SPEC2K using syscall-emulation mode, a good reference for the correct command line options can be found here:
 
* [http://kbarr.net/specint2000-commandlines SPEC2K INT Command Lines]
 
* [http://kbarr.net/specint2000-commandlines SPEC2K INT Command Lines]
 
* [http://kbarr.net/specfp2000-commandlines SPEC2K FP Command Lines]
 
* [http://kbarr.net/specfp2000-commandlines SPEC2K FP Command Lines]
 +
(Note: these example command lines aren't for reduced/minimized input sets.)
  
If you had a statically-linked, eon binary then you could run the benchmarks with this command
+
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:
 
<pre>
 
<pre>
$ build/ALPHA_SE/m5.debug configs/example/se.py --cmd=eon00 --options="chair.control.cook  
+
$ 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" --caches
+
chair.camera chair.surfaces chair.cook.ppm ppm pixels_out.cook"
 
</pre>
 
</pre>

Latest revision as of 23:10, 27 August 2012

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"