Hello,
I ran m5.fast with following command line, but optinos of warmup-insts
and max-inst dosen't work. It seems that run.py is need to modify to
work warmup-inst and max-inst. Attached please find my run.py. I would
appreciate if you tell me how to modify run.py to work these options.
Please tell me if these options dose't work, because the verson of m5,
2.0_beta6 which I ran is too old. Namely if I ran gem5, dose this option
work?

../build/ALPHA_SE/m5.fast -d test  ../configs/speccpu2000/run.py -n 1
--benchmark=200.sixtrack  --l2shared --l1size=32kB --l1assoc=2
--l1latency=2 --l2size=256kB --l2assoc=16 --l2latency=12
--rootdir=/home/oka/m5-stable-fukumoto3/m5-stable/benchspec
--standard-switch --caches  --fast-forward=500 --warmup-insts=100
--max-inst=100

Thank you.
Keitarou

-- 
-----------------------------------------
九州大学大学院 システム情報科学府
情報知能工学専攻 修士課程1年
村上・井上研究室
Keitarou Oka(岡 慶太郎)
[email protected]
-----------------------------------------
# Splash2 Run Script

import m5

if m5.build_env['FULL_SYSTEM']:
    m5.panic("This script requires syscall emulation mode (*_SE).")

from m5.objects import *
import os, optparse, sys
from os.path import join as joinpath
m5.AddToPath('../common')
import Simulation
from Caches import *
from cpu2000 import *

#import m5
#from m5.objects import *
#import os, optparse, sys
#m5.AddToPath('../common')

# --------------------
# Define Command Line Options
# ====================

parser = optparse.OptionParser()

parser.add_option("-d", "--detailed", action="store_true")
parser.add_option("-m", "--maxtick", type="int")
parser.add_option("-n", "--numcpus",
                  help="Number of cpus in total", type="int")
parser.add_option("-f", "--frequency",
                  default = "1.2GHz",
                  help="Frequency of each CPU")
parser.add_option("--l1size", action="store", type="string",
                  help="Size of L1 cache")
parser.add_option("--l1latency", action="store", type="int",
                  help="Latency of L1 cache in clock cycles")
parser.add_option("--l1assoc", action="store", type="int",
                  help="Associativity of L1 cache in clock cycles")
parser.add_option("--l2shared", action="store_true")
parser.add_option("--l2distributed", action="store_true")
parser.add_option("--l2size", action="store", type="string",
                  help="Size of L2 cache")
parser.add_option("--l2latency", action="store", type="int",
                  help="Latency of L2 cache in clock cycles")
parser.add_option("--l2assoc", action="store", type="int",
                  help="Associativity of L2 cache in clock cycles")
parser.add_option("--memsize", action="store", type="string",
                  default = "1536MB",
                  help="Size of main memory")
parser.add_option("--memlatency",  action="store", type="int",
                  default = 200,
                  help="Latency of main memory in clock cycles")
parser.add_option("--tol2bus_width",  action="store", type="int",
                  default = 64,
                  help="Width of on-chip shared bus")
parser.add_option("--tol2bus_clock_ratio",  action="store", type="int",
                  default = 1,
                  help="Processor clock to bus clock ratio (on-chip shared 
bus)")
parser.add_option("--tomembus_width",  action="store", type="int",
                  default = 16,
                  help="Width of off-chip bus")
parser.add_option("--tomembus_clock_ratio",  action="store", type="int",
                  default = 4,
                  help="Processor clock to bus clock ratio (off-chip bus)")
parser.add_option("--rootdir",
                  help="Root directory of Splash2",
                  default=os.environ['M5_PATH']+"/benchspec")
parser.add_option("-b", "--benchmark",
                  help="Splash 2 benchmark to run")
parser.add_option("--lsc_mode",action="store",type="int",default=0)

parser.add_option("--tag_entries",action="store",type="int",default=1024);

parser.add_option("--group_num",action="store",type="int",default=1);

parser.add_option("--reverse_ptr",action="store",type="int",default=0)

parser.add_option("--repl_mode",action="store",type="int",default=0)

parser.add_option("--row_nums",action="store",type="int",default=0)

parser.add_option("--line_nums",action="store",type="int",default=0)

parser.add_option("--u_ratio_flag",action="store",type="int",default=0)

parser.add_option("--value_flag",action="store",type="int",default=0)

parser.add_option("--long_tail_flag",action="store",type="int",default=0)

parser.add_option("-s", "--standard-switch", action="store_true",
                    help="switch from timing CPU to Detailed CPU")

parser.add_option("-W", "--warmup-insts", action="store", type="int",
    default=None,
    help="Warmup period in total instructions (requires --standard-switch)")

parser.add_option("-I", "--max-inst", action="store", type="int", default=None,
    help="Total number of instructions to simulate (default: run forever)")

parser.add_option("--bench", action="store", type="string", default=None,
    help="base names for --take-checkpoint and --checkpoint-restore")

parser.add_option("-F", "--fast-forward", action="store", type="string",
    default=None,
    help="Number of instructions to fast forward before switching")

parser.add_option("-S", "--simpoint", action="store_true", default=False,
    help="""Use workload simpoints as an instruction offset for
--checkpoint-restore or --take-checkpoint.""")

parser.add_option("--at-instruction", action="store_true", default=False,
    help="""Treate value of --checkpoint-restore or --take-checkpoint as a
number of instructions.""")

parser.add_option("--caches", action="store_true")

(options, args) = parser.parse_args()

if args:
    print "Error: script doesn't take any positional arguments"
    sys.exit(1)

if not options.numcpus:
    print "Specify the number of cpus with -n"
    sys.exit(1)

if not options.l1size:
    print "Specify the size of l1cache with --l1size"
    sys.exit(1)

if not options.l1assoc:
    print "Specify the associativity of l1cache with --l1assoc"
    sys.exit(1)

if not options.l1latency:
    print "Specify the latency of l1cache with --l1latency"
    sys.exit(1)

if not options.l2size:
    print "Specify the size of l2cache with --l2size"
    sys.exit(1)

if not options.l2assoc:
    print "Specify the associativity of l2cache with --l2assoc"
    sys.exit(1)

if not options.l2latency:
    print "Specify the latency of l2cache with --l2latency"
    sys.exit(1)

if not options.l2shared and not options.l2distributed:
    print "Use option --l2shared or --l2distributed"
    sys.exit(1)

if options.l2shared and options.l2distributed:
    print "Use option --l2shared or --l2distributed"
    sys.exit(1)



# --------------------
# Define SPEC CPU 2000 Benchmarks
# ====================

#integer

class gzip(LiveProcess):
    executable = options.rootdir + '/CINT2000/164.gzip/exe/gzip_base.none'
    cmd = ['gzip_base.none','input.source','60']
    cwd = options.rootdir + '/CINT2000/164.gzip/data/ref/input'

class vpr(LiveProcess):
    executable = options.rootdir + '/CINT2000/175.vpr/exe/vpr_base.none'
    cmd = 
['vpr_base.none','net.in','arch.in','place.out','dumb.out','-nodisp','-place_only','-init_t','5','-exit_t','0.005','-alpha_t','0.9412','-inner_num','2']
    cwd = options.rootdir + '/CINT2000/175.vpr/data/ref/input/'

class gcc(LiveProcess):
    executable = options.rootdir + '/CINT2000/176.gcc/exe/gcc_base.none'
    cmd = ['gcc_base.none','166.i','-o','166.s']
    cwd = options.rootdir + '/CINT2000/176.gcc/data/ref/input'

class mcf(LiveProcess):
    executable = options.rootdir + '/CINT2000/181.mcf/exe/mcf_base.none'
    cmd = ['mcf_base.none','inp.in']
    cwd = options.rootdir + '/CINT2000/181.mcf/data/ref/input'
#    cwd = options.rootdir + '/CINT2000/181.mcf/data/ref/input'

#class crafty(LiveProcess):
#    executable = options.rootdir + '/CINT2000/186.crafty/exe/crafty_base.none'
#    cmd = ['crafty_base.none',]
#    cwd = options.rootdir + '/CINT2000/186.crafty/data/ref/input'

class parser(LiveProcess):
    executable = options.rootdir + '/CINT2000/197.parser/exe/parser_base.none'
    cmd = ['parser_base.none','2.1.dict','-batch']
    input = options.rootdir + '/CINT2000/197.parser/data/ref/input/ref.in'
    cwd = options.rootdir + '/CINT2000/197.parser/data/ref/input'
    
#class eon(LiveProcess):
#    executable = options.rootdir + '/CINT2000/252.eon/exe/eon_base.none'
#    cmd = ['eon_base.none',]
#    cwd = options.rootdir + '/CINT2000/252.eon/data/ref/input'

#class perlbmk(LiveProcess):
#    executable = options.rootdir + 
'/CINT2000/253.perlbmk/exe/perlbmk_base.none'
#    cmd = ['perlbmk_base.none',]
#    cwd = options.rootdir + '/CINT2000/253.perlbmk/data/ref/input'

#class gap(LiveProcess):



class vortex(LiveProcess):
    executable = options.rootdir + '/CINT2000/255.vortex/exe/vortex_base.none'
    cmd = ['vortex_base.none','lendian1.raw']
    cwd = options.rootdir + '/CINT2000/255.vortex/data/ref/input'

class bzip2(LiveProcess):
    executable = options.rootdir + '/CINT2000/256.bzip2/exe/bzip2_base.none'
    cmd = ['bzip2_base.none','input.graphic','58']
    cwd = options.rootdir + '/CINT2000/256.bzip2/data/ref/input'

class twolf(LiveProcess):
    executable = options.rootdir + '/CINT2000/300.twolf/exe/twolf_base.none'
    cmd = ['twolf_base.none','ref']
    cwd = options.rootdir + '/CINT2000/300.twolf/data/ref/input'
        

#floating point

class art(LiveProcess):
    executable = options.rootdir + '/CFP2000/179.art/exe/art_base.none'
    cmd = 
['art_base.none','-scanfile','c756hel.in','-trainfile1','a10.img','-trainfile2 
hc.imd -stride 2']
    cwd = options.rootdir + '/CFP2000/179.art/data/ref/input'
#mada
class mesa(LiveProcess):
    executable = options.rootdir + '/CFP2000/177.mesa/exe/mesa_base.none'
    cmd = 
['mesa_base.none','-frames','1000','-meshfile','mesa.in','-ppmfile','mesa.ppm']
    cwd = options.rootdir + '/CFP2000/177.mesa/data/ref/input'
#mada
class equake(LiveProcess):
    executable = options.rootdir + '/CFP2000/183.equake/exe/equake_base.none'
    cmd = ['equake_base.none']
    input = options.rootdir + '/CFP2000/183.equake/data/ref/input/inp.in'
    cwd = options.rootdir + '/CFP2000/183.equake/data/ref/input'
    
class ammp(LiveProcess):
    executable = options.rootdir + '/CFP2000/188.ammp/exe/ammp_base.none'
    cmd = ['ammp_base.none']
    input = options.rootdir + '/CFP2000/188.ammp/data/ref/input/ammp.in'
    cwd = options.rootdir + '/CFP2000/188.ammp/data/ref/input'
    
class wupwise(LiveProcess):
    executable = options.rootdir + '/CFP2000/168.wupwise/exe/wupwise_base.none'
    cmd = ['wupwise_base.none']
    cwd = options.rootdir + '/CFP2000/168.wupwise/data/ref/input'

class swim(LiveProcess):
    executable = options.rootdir + '/CFP2000/171.swim/exe/swim_base.none'
    cmd = ['swim_base.none']
    input = options.rootdir + '/CFP2000/171.swim/data/ref/input/swim.in'

class mgrid(LiveProcess):
    executable = options.rootdir + '/CFP2000/172.mgrid/exe/mgrid_base.none'
    cmd = ['mgrid_base.none']
    input = options.rootdir + '/CFP2000/172.mgrid/data/ref/input/mgrid.in'
    cwd = options.rootdir + '/CFP2000/172.mgrid/data/ref/input'

class applu(LiveProcess):
    executable = options.rootdir + '/CFP2000/173.applu/exe/applu_base.none'
    cmd = ['applu_base.none']
    input = options.rootdir + '/CFP2000/173.applu/data/ref/input/applu.in'
    cwd = options.rootdir + '/CFP2000/173.applu/data/ref/input'

class sixtrack(LiveProcess):
    executable = options.rootdir + 
'/CFP2000/200.sixtrack/exe/sixtrack_base.none'
    cmd = ['sixtrack_base.none']
    input = options.rootdir + '/CFP2000/200.sixtrack/data/ref/input/inp.in'
    cwd = options.rootdir + '/CFP2000/200.sixtrack/data/ref/input'

class apsi(LiveProcess):
    executable = options.rootdir + '/CFP2000/301.apsi/exe/apsi_base.none'
    cmd = ['apsi_base.none']
    cwd = options.rootdir + '/CFP2000/301.apsi/data/ref/input'

class faceref(LiveProcess):
    executable = options.rootdir + '/CFP2000/187.faceref/exe/apsi_base.none'
    cmd = ['face_base.none']
    cwd = options.rootdir + '/CFP2000/187.faceref/data/ref/input'

class fma3d(LiveProcess):
    executable = options.rootdir + '/CFP2000/191.fma3d/exe/apsi_base.none'
    cmd = ['fma3d_base.none']
    cwd = options.rootdir + '/CFP2000/191.fma3d/data/ref/input'

class lucas(LiveProcess):
    executable = options.rootdir + '/CFP2000/189.lucas/exe/lucas_base.none'
    cmd = ['lucas_base.none']
    cwd = options.rootdir + '/CFP2000/189.lucas/data/ref/input'



# --------------------
# Define Splash2 Benchmarks
# ====================
class Barnes(LiveProcess):
    executable = options.rootdir + '/apps/barnes/BARNES'
    cmd = ['BARNES']
#    input = options.rootdir + '/apps/barnes/inputs/input.p' + 
str(options.numcpus)
#    input = options.rootdir + '/apps/barnes/inputs/input8192.p' + 
str(options.numcpus)
#    input = options.rootdir + '/apps/barnes/inputs/input16384.p' + 
str(options.numcpus)
    input = options.rootdir + '/apps/barnes/inputs/input32768.p' + 
str(options.numcpus)
#    input = options.rootdir + '/apps/barnes/inputs/input65536.p' + 
str(options.numcpus)
    cwd = options.rootdir + '/apps/barnes'

class Cholesky(LiveProcess):
    cwd = options.rootdir + '/kernels/cholesky'
    executable = options.rootdir + '/kernels/cholesky/CHOLESKY'
#    cmd = ['CHOLESKY', '-p' + str(options.numcpus), options.rootdir + 
'/kernels/cholesky/inputs/tk23.O']
#    cmd = ['CHOLESKY', '-p' + str(options.numcpus), options.rootdir + 
'/kernels/cholesky/inputs/tk17.O']
    cmd = ['CHOLESKY', '-p' + str(options.numcpus), options.rootdir + 
'/kernels/cholesky/inputs/tk29.O']

class FFT(LiveProcess):
    cwd = options.rootdir + '/kernels/fft'
    executable = options.rootdir + '/kernels/fft/FFT'
#    cmd = ['FFT', '-p' + str(options.numcpus), '-m18']
    cmd = ['FFT', '-p' + str(options.numcpus), '-m22']

class FMM(LiveProcess):
    executable = options.rootdir + '/apps/fmm/FMM'
    cmd = ['FMM']
#    input = options.rootdir + '/apps/fmm/inputs/input256.p' + 
str(options.numcpus)
    input = options.rootdir + '/apps/fmm/inputs/input2048.p' + 
str(options.numcpus)
#    input = options.rootdir + '/apps/fmm/inputs/input8192.p' + 
str(options.numcpus)
#    input = options.rootdir + '/apps/fmm/inputs/input16384.p' + 
str(options.numcpus)
#    input = options.rootdir + '/apps/fmm/inputs/input65536.p' + 
str(options.numcpus)
    cwd = options.rootdir + '/apps/fmm'

class LU_contig(LiveProcess):
    executable = options.rootdir + '/kernels/lu/contiguous_blocks/LU'
#    cmd = ['LU', '-p' + str(options.numcpus)]
    cmd = ['LU', '-n1024', '-b64', '-p' + str(options.numcpus)]
#    cmd = ['LU', '-n2048', '-b64', '-p' + str(options.numcpus)]
#    cmd = ['LU', '-n4096', '-b64', '-p' + str(options.numcpus)]
    cwd = options.rootdir + '/kernels/lu/contiguous_blocks'

class LU_noncontig(LiveProcess):
    executable = options.rootdir + '/kernels/lu/non_contiguous_blocks/LU'
#    cmd = ['LU', '-p' + str(options.numcpus)]
    cmd = ['LU', '-n1024', '-b64', '-p' + str(options.numcpus)]
#    cmd = ['LU', '-n2048', '-b64', '-p' + str(options.numcpus)]
#    cmd = ['LU', '-n4096', '-b64', '-p' + str(options.numcpus)]
    cwd = options.rootdir + '/kernels/lu/non_contiguous_blocks'

class Radix(LiveProcess):
    executable = options.rootdir + '/kernels/radix/RADIX'
#    cmd = ['RADIX', '-n4096', '-t', '-p' + str(options.numcpus)]
#    cmd = ['RADIX', '-n524288', '-p' + str(options.numcpus)]
    cmd = ['RADIX', '-n8388608', '-p' + str(options.numcpus)]
    cwd = options.rootdir + '/kernels/radix'

class Ocean_contig(LiveProcess):
    executable = options.rootdir + '/apps/ocean/contiguous_partitions/OCEAN'
#    cmd = ['OCEAN', '-p' + str(options.numcpus)]
#    cmd = ['OCEAN', '-n10', '-p' + str(options.numcpus)]
    cmd = ['OCEAN', '-n130', '-p' + str(options.numcpus)]
#    cmd = ['OCEAN', '-n258', '-p' + str(options.numcpus)]
#    cmd = ['OCEAN', '-n514', '-p' + str(options.numcpus)]
    cwd = options.rootdir + '/apps/ocean/contiguous_partitions'

class Ocean_noncontig(LiveProcess):
    executable = options.rootdir + '/apps/ocean/non_contiguous_partitions/OCEAN'
#    cmd = ['OCEAN', '-p' + str(options.numcpus)]
#    cmd = ['OCEAN', '-n10', '-p' + str(options.numcpus)]
#    cmd = ['OCEAN', '-n130', '-p' + str(options.numcpus)]
#    cmd = ['OCEAN', '-n258', '-p' + str(options.numcpus)]
    cmd = ['OCEAN', '-n514', '-p' + str(options.numcpus)]
    cwd = options.rootdir + '/apps/ocean/non_contiguous_partitions'

class Raytrace(LiveProcess):
    executable = options.rootdir + '/apps/raytrace/RAYTRACE'
#    cmd = ['RAYTRACE', '-p' + str(options.numcpus), options.rootdir + 
'/apps/raytrace/inputs/teapot.env']
#    cmd = ['RAYTRACE', '-m1024', '-p' + str(options.numcpus), options.rootdir 
+ '/apps/raytrace/inputs/car.env']
    cmd = ['RAYTRACE', '-m1024', '-p' + str(options.numcpus), options.rootdir + 
'/apps/raytrace/inputs/balls4.env']
    cwd = options.rootdir + '/apps/raytrace'

class Water_nsquared(LiveProcess):
    executable = options.rootdir + '/apps/water-nsquared/WATER-NSQUARED'
    cmd = ['WATER-NSQUARED']
    input = options.rootdir + '/apps/water-nsquared/inputs/input512.p' + 
str(options.numcpus)
#    input = options.rootdir + '/apps/water-nsquared/inputs/input4096.p' + 
str(options.numcpus)
    cwd = options.rootdir + '/apps/water-nsquared'
        
class Water_spatial(LiveProcess):
    executable = options.rootdir + '/apps/water-spatial/WATER-SPATIAL'
    cmd = ['WATER-SPATIAL']
#    input = options.rootdir + '/apps/water-spatial/inputs/input512.p' + 
str(options.numcpus)
    input = options.rootdir + '/apps/water-spatial/inputs/input4096.p' + 
str(options.numcpus)
    cwd = options.rootdir + '/apps/water-spatial'

# --------------------
# L1 Cache Definition
# ====================

class L1(BaseCache):
    size = options.l1size
    latency = options.l1latency * Parent.clock.period
    block_size = 64
    level = 1
    assoc = options.l1assoc
    tgts_per_mshr = 16
    lsc_mode = 0
    reverse_ptr = 0
    repl_mode = 0
    u_ratio_flag = 0
    value_flag = 0
    long_tail_flag = 0

class IL1(L1):
    mshrs = 8
    
class DL1(L1):
    mshrs = 32

# ----------------------
# L2 Cache Definition
# ----------------------

class L2(BaseCache):
    size = options.l2size
    latency = options.l2latency * Parent.cpu[0].clock.period
    block_size = 64
    assoc = options.l2assoc
    mshrs = 10000
    tgts_per_mshr = 16
    level = 2
    write_buffers = 8
    lsc_mode = options.lsc_mode
    reverse_ptr = options.reverse_ptr
    repl_mode = options.repl_mode
    group_num = options.group_num
    tag_entries = options.tag_entries
    row_nums = options.row_nums
    line_nums = options.line_nums
    u_ratio_flag = options.u_ratio_flag
    value_flag = options.value_flag
    long_tail_flag = options.long_tail_flag

# ----------------------
# Physical Memory Definition
# ----------------------

class MainMemory(PhysicalMemory):
    range = AddrRange(options.memsize)
    latency = options.memlatency * Parent.cpu[0].clock.period

# --------------------
# Bus Definition
# ====================

class ToL2Bus(Bus):
    width = options.tol2bus_width
    clock = options.tol2bus_clock_ratio * Parent.cpu[0].clock.period

class ToMemBus(Bus):
    width = options.tomembus_width
    clock = options.tomembus_clock_ratio * Parent.cpu[0].clock.period

# ----------------------
# Define the cpus
# ----------------------

if options.detailed:
    cpus = [DerivO3CPU(cpu_id = i,
                       clock=options.frequency)
            for i in xrange(options.numcpus)]
else:
    cpus = [TimingSimpleCPU(cpu_id = i,
                            clock=options.frequency)
            for i in xrange(options.numcpus)]

# ----------------------
# Create a system, and add system wide objects
# ----------------------        

system = System(cpu = cpus, physmem = MainMemory(),
                membus = ToMemBus())
if options.l2shared:
    system.toL2bus = ToL2Bus()
    system.l2cache = L2()
elif options.l2distributed:
    system.toL2bus = [ToL2Bus() for i in xrange(options.numcpus)]
    system.l2cache = [L2() for i in xrange(options.numcpus)]
else:
    print >> sys.stderr, """???"""
    exit(1);

# ----------------------
# Connect the L2 cache and memory together
# ----------------------

system.physmem.port = system.membus.port
if options.l2shared:
    system.l2cache.cpu_side = system.toL2bus.port
    system.l2cache.mem_side = system.membus.port
elif options.l2distributed:
    for i in xrange(options.numcpus):
        system.l2cache[i].cpu_side = system.toL2bus[i].port
        system.l2cache[i].mem_side = system.membus.port
else:
    print >> sys.stderr, """???"""
    exit(1);

# ----------------------
# Connect the L2 cache and clusters together
# ----------------------
for i in xrange(options.numcpus):
    cpus[i].addPrivateSplitL1Caches(IL1(), DL1())
    cpus[i].mem = cpus[i].dcache
    if options.l2shared:
        # connect cpu level-1 caches to shared level-2 cache
        cpus[i].connectMemPorts(system.toL2bus)
    elif options.l2distributed:
        # connect cpu level-1 caches to distributed level-2 cache
        cpus[i].connectMemPorts(system.toL2bus[i])
    else:
        print >> sys.stderr, """???"""
        exit(1);

# ----------------------
# Define the root
# ----------------------

root = Root(system = system)

# --------------------
# Pick the correct Splash2 Benchmarks
# ====================


# --------------------
# Pick the correct Splash2 Benchmarks
# ====================
if options.benchmark == '164.gzip':
    root.workload = gzip()
elif options.benchmark == '175.vpr':
    root.workload = vpr()
elif options.benchmark == '176.gcc':
    root.workload = gcc()
elif options.benchmark == '181.mcf':
    root.workload = mcf()
elif options.benchmark == '197.parser':
    root.workload = parser()
elif options.benchmark == '252.eon':
    root.workload = eon()
elif options.benchmark == '253.perlbmk':
    root.workload = perlbmk()
elif options.benchmark == '254.gap':
    root.workload = gap()
elif options.benchmark == '255.vortex':
    root.workload = vortex()
elif options.benchmark == '256.bzip2':
    root.workload = bzip2()
elif options.benchmark == '300.twolf':
    root.workload = twolf()            
elif options.benchmark == '179.art':
    root.workload = art()
elif options.benchmark == '177.mesa':
    root.workload = mesa()
elif options.benchmark == '183.equake':
    root.workload = equake()
elif options.benchmark == '188.ammp':
    root.workload = ammp()
elif options.benchmark == '168.wupwise':
    root.workload = wupwise()
elif options.benchmark == '171.swim':
    root.workload = swim()
elif options.benchmark == '172.mgrid':
    root.workload = mgrid()
elif options.benchmark == '173.applu':
    root.workload = applu()
elif options.benchmark == '200.sixtrack':
    root.workload = sixtrack()
elif options.benchmark == '301.apsi':
    root.workload = apsi()
elif options.benchmark == '187.faceref':
    root.workload = apsi()
elif options.benchmark == '189.lucas':
    root.workload = apsi()
elif options.benchmark == '191.fma3d':
    root.workload = apsi()
elif options.benchmark == 'Cholesky':
    root.workload = Cholesky()
elif options.benchmark == 'FFT':
    root.workload = FFT()
elif options.benchmark == 'LUContig':
    root.workload = LU_contig()
elif options.benchmark == 'LUNoncontig':
    root.workload = LU_noncontig()
elif options.benchmark == 'Radix':
    root.workload = Radix()
elif options.benchmark == 'Barnes':
    root.workload = Barnes()
elif options.benchmark == 'FMM':
    root.workload = FMM()
elif options.benchmark == 'OceanContig':
    root.workload = Ocean_contig()
elif options.benchmark == 'OceanNoncontig':
    root.workload = Ocean_noncontig()
elif options.benchmark == 'Raytrace':
    root.workload = Raytrace()
elif options.benchmark == 'WaterNSquared':
    root.workload = Water_nsquared()
elif options.benchmark == 'WaterSpatial':
    root.workload = Water_spatial()
else:
    print >> sys.stderr, """The --benchmark environment variable was set to 
something improper.
Use Cholesky, FFT, LUContig, LUNoncontig, Radix, Barnes, FMM, OceanContig,
OceanNoncontig, Raytrace, WaterNSquared, or WaterSpatial"""
    sys.exit(1)

# --------------------
# Assign the workload to the cpus
# ====================

for cpu in cpus:
    cpu.workload = root.workload

# ----------------------
# Run the simulation
# ----------------------

root.system.mem_mode = 'timing'

# instantiate configuration
m5.instantiate(root)

# simulate until program terminates
if options.maxtick:
    exit_event = m5.simulate(options.maxtick)
else:
    exit_event = m5.simulate(m5.MaxTick)

print 'Exiting @ tick', m5.curTick(), 'because', exit_event.getCause()

_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to