cpu2000.py revision 5361
15361Srstrong@cs.ucsd.edu# Copyright (c) 2006-2008 The Regents of The University of Michigan
23671Sbinkertn@umich.edu# All rights reserved.
33671Sbinkertn@umich.edu#
43671Sbinkertn@umich.edu# Redistribution and use in source and binary forms, with or without
53671Sbinkertn@umich.edu# modification, are permitted provided that the following conditions are
63671Sbinkertn@umich.edu# met: redistributions of source code must retain the above copyright
73671Sbinkertn@umich.edu# notice, this list of conditions and the following disclaimer;
83671Sbinkertn@umich.edu# redistributions in binary form must reproduce the above copyright
93671Sbinkertn@umich.edu# notice, this list of conditions and the following disclaimer in the
103671Sbinkertn@umich.edu# documentation and/or other materials provided with the distribution;
113671Sbinkertn@umich.edu# neither the name of the copyright holders nor the names of its
123671Sbinkertn@umich.edu# contributors may be used to endorse or promote products derived from
133671Sbinkertn@umich.edu# this software without specific prior written permission.
143671Sbinkertn@umich.edu#
153671Sbinkertn@umich.edu# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
163671Sbinkertn@umich.edu# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
173671Sbinkertn@umich.edu# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
183671Sbinkertn@umich.edu# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
193671Sbinkertn@umich.edu# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
203671Sbinkertn@umich.edu# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
213671Sbinkertn@umich.edu# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
223671Sbinkertn@umich.edu# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
233671Sbinkertn@umich.edu# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
243671Sbinkertn@umich.edu# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
253671Sbinkertn@umich.edu# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
263671Sbinkertn@umich.edu#
273671Sbinkertn@umich.edu# Authors: Nathan Binkert
283671Sbinkertn@umich.edu
293671Sbinkertn@umich.eduimport os
303671Sbinkertn@umich.eduimport sys
313671Sbinkertn@umich.edufrom os.path import basename, exists, join as joinpath, normpath
323671Sbinkertn@umich.edufrom os.path import isdir, isfile, islink
333671Sbinkertn@umich.edu
343671Sbinkertn@umich.eduspec_dist = '/dist/m5/cpu2000'
353671Sbinkertn@umich.edu
363671Sbinkertn@umich.edudef copyfiles(srcdir, dstdir):
373671Sbinkertn@umich.edu    from filecmp import cmp as filecmp
383671Sbinkertn@umich.edu    from shutil import copyfile
393671Sbinkertn@umich.edu
403671Sbinkertn@umich.edu    srcdir = normpath(srcdir)
413671Sbinkertn@umich.edu    dstdir = normpath(dstdir)
423671Sbinkertn@umich.edu
433671Sbinkertn@umich.edu    if not isdir(dstdir):
443671Sbinkertn@umich.edu        os.mkdir(dstdir)
453671Sbinkertn@umich.edu
463671Sbinkertn@umich.edu    for root, dirs, files in os.walk(srcdir):
473671Sbinkertn@umich.edu        root = normpath(root)
483671Sbinkertn@umich.edu        prefix = os.path.commonprefix([root, srcdir])
493671Sbinkertn@umich.edu
503671Sbinkertn@umich.edu        root = root[len(prefix):]
513671Sbinkertn@umich.edu        if root.startswith('/'):
523671Sbinkertn@umich.edu            root = root[1:]
533671Sbinkertn@umich.edu
543671Sbinkertn@umich.edu        for entry in dirs:
553671Sbinkertn@umich.edu            newdir = joinpath(dstdir, root, entry)
563671Sbinkertn@umich.edu            if not isdir(newdir):
573671Sbinkertn@umich.edu                os.mkdir(newdir)
583671Sbinkertn@umich.edu
593671Sbinkertn@umich.edu        for entry in files:
603671Sbinkertn@umich.edu            dest = normpath(joinpath(dstdir, root, entry))
613671Sbinkertn@umich.edu            src = normpath(joinpath(srcdir, root, entry))
623671Sbinkertn@umich.edu            if not isfile(dest) or not filecmp(src, dest):
633671Sbinkertn@umich.edu                copyfile(src, dest)
643671Sbinkertn@umich.edu
653671Sbinkertn@umich.edu    # some of the spec benchmarks expect to be run from one directory up.
663671Sbinkertn@umich.edu    # just create some symlinks that solve the problem
673671Sbinkertn@umich.edu    inlink = joinpath(dstdir, 'input')
683671Sbinkertn@umich.edu    outlink = joinpath(dstdir, 'output')
693671Sbinkertn@umich.edu    if not exists(inlink):
703671Sbinkertn@umich.edu        os.symlink('.', inlink)
713671Sbinkertn@umich.edu    if not exists(outlink):
723671Sbinkertn@umich.edu        os.symlink('.', outlink)
733671Sbinkertn@umich.edu
743671Sbinkertn@umich.educlass Benchmark(object):
753671Sbinkertn@umich.edu    def __init__(self, isa, os, input_set):
763671Sbinkertn@umich.edu        if not hasattr(self.__class__, 'name'):
773671Sbinkertn@umich.edu            self.name = self.__class__.__name__
783671Sbinkertn@umich.edu
793671Sbinkertn@umich.edu        if not hasattr(self.__class__, 'binary'):
803671Sbinkertn@umich.edu            self.binary = self.name
813671Sbinkertn@umich.edu
823671Sbinkertn@umich.edu        if not hasattr(self.__class__, 'args'):
833671Sbinkertn@umich.edu            self.args = []
843671Sbinkertn@umich.edu
853671Sbinkertn@umich.edu        if not hasattr(self.__class__, 'output'):
863671Sbinkertn@umich.edu            self.output = '%s.out' % self.name
873671Sbinkertn@umich.edu
885361Srstrong@cs.ucsd.edu        if not hasattr(self.__class__, 'simpoint'):
895361Srstrong@cs.ucsd.edu            self.simpoint = None
905361Srstrong@cs.ucsd.edu
913671Sbinkertn@umich.edu        try:
923671Sbinkertn@umich.edu            func = getattr(self.__class__, input_set)
933671Sbinkertn@umich.edu        except AttributeError:
943671Sbinkertn@umich.edu            raise AttributeError, \
953671Sbinkertn@umich.edu                  'The benchmark %s does not have the %s input set' % \
963671Sbinkertn@umich.edu                  (self.name, input_set)
973671Sbinkertn@umich.edu
983671Sbinkertn@umich.edu        executable = joinpath(spec_dist, 'binaries', isa, os, self.binary)
993671Sbinkertn@umich.edu        if not isfile(executable):
1003671Sbinkertn@umich.edu            raise AttributeError, '%s not found' % executable
1013671Sbinkertn@umich.edu        self.executable = executable
1023671Sbinkertn@umich.edu
1033671Sbinkertn@umich.edu        # root of tree for input & output data files
1043671Sbinkertn@umich.edu        data_dir = joinpath(spec_dist, 'data', self.name)
1053671Sbinkertn@umich.edu        # optional subtree with files shared across input sets
1063671Sbinkertn@umich.edu        all_dir = joinpath(data_dir, 'all')
1073671Sbinkertn@umich.edu        # dirs for input & output files for this input set
1083671Sbinkertn@umich.edu        inputs_dir = joinpath(data_dir, input_set, 'input')
1093671Sbinkertn@umich.edu        outputs_dir = joinpath(data_dir, input_set, 'output')
1104116Sgblack@eecs.umich.edu        # keep around which input set was specified
1114116Sgblack@eecs.umich.edu        self.input_set = input_set
1123671Sbinkertn@umich.edu
1133671Sbinkertn@umich.edu        if not isdir(inputs_dir):
1143671Sbinkertn@umich.edu            raise AttributeError, '%s not found' % inputs_dir
1153671Sbinkertn@umich.edu
1163671Sbinkertn@umich.edu        self.inputs_dir = [ inputs_dir ]
1173671Sbinkertn@umich.edu        if isdir(all_dir):
1183671Sbinkertn@umich.edu            self.inputs_dir += [ joinpath(all_dir, 'input') ]
1193671Sbinkertn@umich.edu        if isdir(outputs_dir):
1203671Sbinkertn@umich.edu            self.outputs_dir = outputs_dir
1213671Sbinkertn@umich.edu
1223671Sbinkertn@umich.edu        if not hasattr(self.__class__, 'stdin'):
1233671Sbinkertn@umich.edu            self.stdin = joinpath(inputs_dir, '%s.in' % self.name)
1243671Sbinkertn@umich.edu            if not isfile(self.stdin):
1253671Sbinkertn@umich.edu                self.stdin = None
1263671Sbinkertn@umich.edu
1273671Sbinkertn@umich.edu        if not hasattr(self.__class__, 'stdout'):
1283671Sbinkertn@umich.edu            self.stdout = joinpath(outputs_dir, '%s.out' % self.name)
1293671Sbinkertn@umich.edu            if not isfile(self.stdout):
1303671Sbinkertn@umich.edu                self.stdout = None
1313671Sbinkertn@umich.edu
1323671Sbinkertn@umich.edu        func(self, isa, os)
1333671Sbinkertn@umich.edu
1343671Sbinkertn@umich.edu    def makeLiveProcessArgs(self, **kwargs):
1353671Sbinkertn@umich.edu        # set up default args for LiveProcess object
1363671Sbinkertn@umich.edu        process_args = {}
1374555Sbinkertn@umich.edu        process_args['cmd'] = [ self.name ] + self.args
1383671Sbinkertn@umich.edu        process_args['executable'] = self.executable
1393671Sbinkertn@umich.edu        if self.stdin:
1403671Sbinkertn@umich.edu            process_args['input'] = self.stdin
1413671Sbinkertn@umich.edu        if self.stdout:
1423671Sbinkertn@umich.edu            process_args['output'] = self.stdout
1435361Srstrong@cs.ucsd.edu        process_args['simpoint'] = self.simpoint
1443671Sbinkertn@umich.edu        # explicit keywords override defaults
1453671Sbinkertn@umich.edu        process_args.update(kwargs)
1463671Sbinkertn@umich.edu
1473671Sbinkertn@umich.edu        return process_args
1483671Sbinkertn@umich.edu
1493671Sbinkertn@umich.edu    def makeLiveProcess(self, **kwargs):
1503671Sbinkertn@umich.edu        process_args = self.makeLiveProcessArgs(**kwargs)
1513671Sbinkertn@umich.edu
1523671Sbinkertn@umich.edu        # figure out working directory: use m5's outdir unless
1533671Sbinkertn@umich.edu        # overridden by LiveProcess's cwd param
1543671Sbinkertn@umich.edu        cwd = process_args.get('cwd')
1555361Srstrong@cs.ucsd.edu
1563671Sbinkertn@umich.edu        if not cwd:
1573671Sbinkertn@umich.edu            from m5.main import options
1583671Sbinkertn@umich.edu            cwd = options.outdir
1593671Sbinkertn@umich.edu            process_args['cwd'] = cwd
1603671Sbinkertn@umich.edu        if not isdir(cwd):
1613671Sbinkertn@umich.edu            os.makedirs(cwd)
1623671Sbinkertn@umich.edu        # copy input files to working directory
1633671Sbinkertn@umich.edu        for d in self.inputs_dir:
1643671Sbinkertn@umich.edu            copyfiles(d, cwd)
1653671Sbinkertn@umich.edu        # generate LiveProcess object
1663671Sbinkertn@umich.edu        from m5.objects import LiveProcess
1673671Sbinkertn@umich.edu        return LiveProcess(**process_args)
1683671Sbinkertn@umich.edu
1693671Sbinkertn@umich.edu    def __str__(self):
1703671Sbinkertn@umich.edu        return self.name
1713671Sbinkertn@umich.edu
1723671Sbinkertn@umich.educlass DefaultBenchmark(Benchmark):
1733671Sbinkertn@umich.edu    def ref(self, isa, os): pass
1743671Sbinkertn@umich.edu    def test(self, isa, os): pass
1753671Sbinkertn@umich.edu    def train(self, isa, os): pass
1763671Sbinkertn@umich.edu
1773671Sbinkertn@umich.educlass MinneDefaultBenchmark(DefaultBenchmark):
1783671Sbinkertn@umich.edu    def smred(self, isa, os): pass
1793671Sbinkertn@umich.edu    def mdred(self, isa, os): pass
1803671Sbinkertn@umich.edu    def lgred(self, isa, os): pass
1813671Sbinkertn@umich.edu
1823671Sbinkertn@umich.educlass ammp(MinneDefaultBenchmark):
1833671Sbinkertn@umich.edu    name = 'ammp'
1843671Sbinkertn@umich.edu    number = 188
1853671Sbinkertn@umich.edu    lang = 'C'
1865361Srstrong@cs.ucsd.edu    simpoint = 108*100E6
1873671Sbinkertn@umich.edu
1883671Sbinkertn@umich.educlass applu(MinneDefaultBenchmark):
1893671Sbinkertn@umich.edu    name = 'applu'
1903671Sbinkertn@umich.edu    number = 173
1913671Sbinkertn@umich.edu    lang = 'F77'
1925361Srstrong@cs.ucsd.edu    simpoint = 2179*100E6
1933671Sbinkertn@umich.edu
1943671Sbinkertn@umich.educlass apsi(MinneDefaultBenchmark):
1953671Sbinkertn@umich.edu    name = 'apsi'
1963671Sbinkertn@umich.edu    number = 301
1973671Sbinkertn@umich.edu    lang = 'F77'
1985361Srstrong@cs.ucsd.edu    simpoint = 3408*100E6
1993671Sbinkertn@umich.edu
2003671Sbinkertn@umich.educlass art(DefaultBenchmark):
2013671Sbinkertn@umich.edu    name = 'art'
2023671Sbinkertn@umich.edu    number = 179
2033671Sbinkertn@umich.edu    lang = 'C'
2043671Sbinkertn@umich.edu
2053671Sbinkertn@umich.edu    def test(self, isa, os):
2063671Sbinkertn@umich.edu        self.args = [ '-scanfile', 'c756hel.in',
2073671Sbinkertn@umich.edu                      '-trainfile1', 'a10.img',
2083671Sbinkertn@umich.edu                      '-stride', '2',
2093671Sbinkertn@umich.edu                      '-startx', '134',
2103671Sbinkertn@umich.edu                      '-starty', '220',
2113671Sbinkertn@umich.edu                      '-endx', '139',
2123671Sbinkertn@umich.edu                      '-endy', '225',
2133671Sbinkertn@umich.edu                      '-objects', '1' ]
2143671Sbinkertn@umich.edu        self.output = 'test.out'
2153671Sbinkertn@umich.edu
2163671Sbinkertn@umich.edu    def train(self, isa, os):
2173671Sbinkertn@umich.edu        self.args = [ '-scanfile', 'c756hel.in',
2183671Sbinkertn@umich.edu                      '-trainfile1', 'a10.img',
2193671Sbinkertn@umich.edu                      '-stride', '2',
2203671Sbinkertn@umich.edu                      '-startx', '134',
2213671Sbinkertn@umich.edu                      '-starty', '220',
2223671Sbinkertn@umich.edu                      '-endx', '184',
2233671Sbinkertn@umich.edu                      '-endy', '240',
2243671Sbinkertn@umich.edu                      '-objects', '3' ]
2253671Sbinkertn@umich.edu        self.output = 'train.out'
2263671Sbinkertn@umich.edu
2273671Sbinkertn@umich.edu    def lgred(self, isa, os):
2283671Sbinkertn@umich.edu        self.args = ['-scanfile', 'c756hel.in',
2293671Sbinkertn@umich.edu                     '-trainfile1', 'a10.img',
2303671Sbinkertn@umich.edu                     '-stride', '5',
2313671Sbinkertn@umich.edu                     '-startx', '134',
2323671Sbinkertn@umich.edu                     '-starty', '220',
2333671Sbinkertn@umich.edu                     '-endx', '184',
2343671Sbinkertn@umich.edu                     '-endy', '240',
2353671Sbinkertn@umich.edu                     '-objects', '1' ]
2363671Sbinkertn@umich.edu        self.output = 'lgred.out'
2373671Sbinkertn@umich.edu
2383671Sbinkertn@umich.edu
2393671Sbinkertn@umich.educlass art110(art):
2403671Sbinkertn@umich.edu    def ref(self, isa, os):
2413671Sbinkertn@umich.edu        self.args = [ '-scanfile', 'c756hel.in',
2423671Sbinkertn@umich.edu                      '-trainfile1', 'a10.img',
2433671Sbinkertn@umich.edu                      '-trainfile2', 'hc.img',
2443671Sbinkertn@umich.edu                      '-stride', '2',
2453671Sbinkertn@umich.edu                      '-startx', '110',
2463671Sbinkertn@umich.edu                      '-starty', '200',
2473671Sbinkertn@umich.edu                      '-endx', '160',
2483671Sbinkertn@umich.edu                      '-endy', '240',
2493671Sbinkertn@umich.edu                      '-objects', '10' ]
2503671Sbinkertn@umich.edu        self.output = 'ref.1.out'
2515361Srstrong@cs.ucsd.edu        self.simpoint = 340*100E6
2523671Sbinkertn@umich.edu
2533671Sbinkertn@umich.educlass art470(art):
2543671Sbinkertn@umich.edu    def ref(self, isa, os):
2553671Sbinkertn@umich.edu        self.args = [ '-scanfile', 'c756hel.in',
2563671Sbinkertn@umich.edu                      '-trainfile1', 'a10.img',
2573671Sbinkertn@umich.edu                      '-trainfile2', 'hc.img',
2583671Sbinkertn@umich.edu                      '-stride', '2',
2593671Sbinkertn@umich.edu                      '-startx', '470',
2603671Sbinkertn@umich.edu                      '-starty', '140',
2613671Sbinkertn@umich.edu                      '-endx', '520',
2623671Sbinkertn@umich.edu                      '-endy', '180',
2633671Sbinkertn@umich.edu                      '-objects', '10' ]
2643671Sbinkertn@umich.edu        self.output = 'ref.2.out'
2655361Srstrong@cs.ucsd.edu        self.simpoint = 365*100E6
2663671Sbinkertn@umich.edu
2673671Sbinkertn@umich.educlass equake(DefaultBenchmark):
2683671Sbinkertn@umich.edu    name = 'equake'
2693671Sbinkertn@umich.edu    number = 183
2703671Sbinkertn@umich.edu    lang = 'C'
2715361Srstrong@cs.ucsd.edu    simpoint = 812*100E6
2723671Sbinkertn@umich.edu
2733671Sbinkertn@umich.edu    def lgred(self, isa, os): pass
2743671Sbinkertn@umich.edu
2753671Sbinkertn@umich.educlass facerec(MinneDefaultBenchmark):
2763671Sbinkertn@umich.edu    name = 'facerec'
2773671Sbinkertn@umich.edu    number = 187
2783671Sbinkertn@umich.edu    lang = 'F'
2795361Srstrong@cs.ucsd.edu    simpoint = 375*100E6
2803671Sbinkertn@umich.edu
2813671Sbinkertn@umich.educlass fma3d(MinneDefaultBenchmark):
2823671Sbinkertn@umich.edu    name = 'fma3d'
2833671Sbinkertn@umich.edu    number = 191
2843671Sbinkertn@umich.edu    lang = 'F'
2855361Srstrong@cs.ucsd.edu    simpoint = 2541*100E6
2863671Sbinkertn@umich.edu
2873671Sbinkertn@umich.educlass galgel(MinneDefaultBenchmark):
2883671Sbinkertn@umich.edu    name = 'galgel'
2893671Sbinkertn@umich.edu    number = 178
2903671Sbinkertn@umich.edu    lang = 'F'
2915361Srstrong@cs.ucsd.edu    simpoint = 2491*100E6
2923671Sbinkertn@umich.edu
2933671Sbinkertn@umich.educlass lucas(MinneDefaultBenchmark):
2943671Sbinkertn@umich.edu    name = 'lucas'
2953671Sbinkertn@umich.edu    number = 189
2963671Sbinkertn@umich.edu    lang = 'F'
2975361Srstrong@cs.ucsd.edu    simpoint = 545*100E6
2983671Sbinkertn@umich.edu
2993671Sbinkertn@umich.educlass mesa(Benchmark):
3003671Sbinkertn@umich.edu    name = 'mesa'
3013671Sbinkertn@umich.edu    number = 177
3023671Sbinkertn@umich.edu    lang = 'C'
3033671Sbinkertn@umich.edu    stdin = None
3043671Sbinkertn@umich.edu
3053671Sbinkertn@umich.edu    def __set_args(self, frames):
3063671Sbinkertn@umich.edu        self.args = [ '-frames', frames, '-meshfile', '%s.in' % self.name,
3073671Sbinkertn@umich.edu                      '-ppmfile', '%s.ppm' % self.name ]
3083671Sbinkertn@umich.edu
3093671Sbinkertn@umich.edu    def test(self, isa, os):
3103671Sbinkertn@umich.edu        self.__set_args('10')
3113671Sbinkertn@umich.edu
3123671Sbinkertn@umich.edu    def train(self, isa, os):
3133671Sbinkertn@umich.edu        self.__set_args('500')
3143671Sbinkertn@umich.edu
3153671Sbinkertn@umich.edu    def ref(self, isa, os):
3163671Sbinkertn@umich.edu        self.__set_args('1000')
3175361Srstrong@cs.ucsd.edu        self.simpoint = 1135*100E6
3183671Sbinkertn@umich.edu
3193671Sbinkertn@umich.edu    def lgred(self, isa, os):
3203671Sbinkertn@umich.edu        self.__set_args('1')
3213671Sbinkertn@umich.edu
3223671Sbinkertn@umich.educlass mgrid(MinneDefaultBenchmark):
3233671Sbinkertn@umich.edu    name = 'mgrid'
3243671Sbinkertn@umich.edu    number = 172
3253671Sbinkertn@umich.edu    lang = 'F77'
3265361Srstrong@cs.ucsd.edu    simpoint = 3292*100E6
3273671Sbinkertn@umich.edu
3283671Sbinkertn@umich.educlass sixtrack(DefaultBenchmark):
3293671Sbinkertn@umich.edu    name = 'sixtrack'
3303671Sbinkertn@umich.edu    number = 200
3313671Sbinkertn@umich.edu    lang = 'F77'
3325361Srstrong@cs.ucsd.edu    simpoint = 3043*100E6
3333671Sbinkertn@umich.edu
3343671Sbinkertn@umich.edu    def lgred(self, isa, os): pass
3353671Sbinkertn@umich.edu
3363671Sbinkertn@umich.educlass swim(MinneDefaultBenchmark):
3373671Sbinkertn@umich.edu    name = 'swim'
3383671Sbinkertn@umich.edu    number = 171
3393671Sbinkertn@umich.edu    lang = 'F77'
3405361Srstrong@cs.ucsd.edu    simpoint = 2079*100E6
3413671Sbinkertn@umich.edu
3423671Sbinkertn@umich.educlass wupwise(DefaultBenchmark):
3433671Sbinkertn@umich.edu    name = 'wupwise'
3443671Sbinkertn@umich.edu    number = 168
3453671Sbinkertn@umich.edu    lang = 'F77'
3465361Srstrong@cs.ucsd.edu    simpoint = 3237*100E6
3473671Sbinkertn@umich.edu
3483671Sbinkertn@umich.edu    def lgred(self, isa, os): pass
3493671Sbinkertn@umich.edu
3503671Sbinkertn@umich.educlass bzip2(DefaultBenchmark):
3513671Sbinkertn@umich.edu    name = 'bzip2'
3523671Sbinkertn@umich.edu    number = 256
3533671Sbinkertn@umich.edu    lang = 'C'
3543671Sbinkertn@umich.edu
3553671Sbinkertn@umich.edu    def test(self, isa, os):
3563671Sbinkertn@umich.edu        self.args = [ 'input.random' ]
3573671Sbinkertn@umich.edu
3583671Sbinkertn@umich.edu    def train(self, isa, os):
3593671Sbinkertn@umich.edu        self.args = [ 'input.compressed' ]
3603671Sbinkertn@umich.edu
3613671Sbinkertn@umich.educlass bzip2_source(bzip2):
3623671Sbinkertn@umich.edu    def ref(self, isa, os):
3635361Srstrong@cs.ucsd.edu        self.simpoint = 977*100E6
3643671Sbinkertn@umich.edu        self.args = [ 'input.source', '58' ]
3653671Sbinkertn@umich.edu
3663671Sbinkertn@umich.edu    def lgred(self, isa, os):
3673671Sbinkertn@umich.edu        self.args = [ 'input.source', '1' ]
3683671Sbinkertn@umich.edu
3693671Sbinkertn@umich.educlass bzip2_graphic(bzip2):
3703671Sbinkertn@umich.edu    def ref(self, isa, os):
3715361Srstrong@cs.ucsd.edu        self.simpoint = 718*100E6
3723671Sbinkertn@umich.edu        self.args = [ 'input.graphic', '58' ]
3733671Sbinkertn@umich.edu
3743671Sbinkertn@umich.edu    def lgred(self, isa, os):
3753671Sbinkertn@umich.edu        self.args = [ 'input.graphic', '1' ]
3763671Sbinkertn@umich.edu
3773671Sbinkertn@umich.educlass bzip2_program(bzip2):
3783671Sbinkertn@umich.edu    def ref(self, isa, os):
3795361Srstrong@cs.ucsd.edu        self.simpoint = 458*100E6
3803671Sbinkertn@umich.edu        self.args = [ 'input.program', '58' ]
3813671Sbinkertn@umich.edu
3823671Sbinkertn@umich.edu    def lgred(self, isa, os):
3833671Sbinkertn@umich.edu        self.args = [ 'input.program', '1' ]
3843671Sbinkertn@umich.edu
3853671Sbinkertn@umich.educlass crafty(MinneDefaultBenchmark):
3863671Sbinkertn@umich.edu    name = 'crafty'
3873671Sbinkertn@umich.edu    number = 186
3883671Sbinkertn@umich.edu    lang = 'C'
3895361Srstrong@cs.ucsd.edu    simpoint = 774*100E6
3903671Sbinkertn@umich.edu
3913671Sbinkertn@umich.educlass eon(MinneDefaultBenchmark):
3923671Sbinkertn@umich.edu    name = 'eon'
3933671Sbinkertn@umich.edu    number = 252
3943671Sbinkertn@umich.edu    lang = 'CXX'
3953671Sbinkertn@umich.edu    stdin = None
3963671Sbinkertn@umich.edu
3973671Sbinkertn@umich.educlass eon_kajiya(eon):
3983671Sbinkertn@umich.edu    args = [ 'chair.control.kajiya', 'chair.camera', 'chair.surfaces',
3993671Sbinkertn@umich.edu             'chair.kajiya.ppm', 'ppm', 'pixels_out.kajiya']
4003671Sbinkertn@umich.edu    output = 'kajiya_log.out'
4013671Sbinkertn@umich.edu
4023671Sbinkertn@umich.edu
4033671Sbinkertn@umich.educlass eon_cook(eon):
4043671Sbinkertn@umich.edu    args = [ 'chair.control.cook', 'chair.camera', 'chair.surfaces',
4053671Sbinkertn@umich.edu             'chair.cook.ppm', 'ppm', 'pixels_out.cook' ]
4063671Sbinkertn@umich.edu    output = 'cook_log.out'
4073671Sbinkertn@umich.edu
4083671Sbinkertn@umich.educlass eon_rushmeier(eon):
4093671Sbinkertn@umich.edu    args = [ 'chair.control.rushmeier', 'chair.camera', 'chair.surfaces',
4103671Sbinkertn@umich.edu             'chair.rushmeier.ppm', 'ppm', 'pixels_out.rushmeier' ]
4113671Sbinkertn@umich.edu    output = 'rushmeier_log.out'
4125361Srstrong@cs.ucsd.edu    simpoint = 403*100E6
4133671Sbinkertn@umich.edu
4143671Sbinkertn@umich.educlass gap(DefaultBenchmark):
4153671Sbinkertn@umich.edu    name = 'gap'
4163671Sbinkertn@umich.edu    number = 254
4173671Sbinkertn@umich.edu    lang = 'C'
4183671Sbinkertn@umich.edu
4193671Sbinkertn@umich.edu    def __set_args(self, size):
4203671Sbinkertn@umich.edu        self.args = [ '-l', './', '-q', '-m', size ]
4213671Sbinkertn@umich.edu
4223671Sbinkertn@umich.edu    def test(self, isa, os):
4233671Sbinkertn@umich.edu        self.__set_args('64M')
4243671Sbinkertn@umich.edu
4253671Sbinkertn@umich.edu    def train(self, isa, os):
4263671Sbinkertn@umich.edu        self.__set_args('128M')
4273671Sbinkertn@umich.edu
4283671Sbinkertn@umich.edu    def ref(self, isa, os):
4293671Sbinkertn@umich.edu        self.__set_args('192M')
4305361Srstrong@cs.ucsd.edu        self.simpoint = 674*100E6
4313671Sbinkertn@umich.edu
4323671Sbinkertn@umich.edu    def lgred(self, isa, os):
4333671Sbinkertn@umich.edu        self.__set_args('64M')
4343671Sbinkertn@umich.edu
4353671Sbinkertn@umich.edu    def mdred(self, isa, os):
4363671Sbinkertn@umich.edu        self.__set_args('64M')
4373671Sbinkertn@umich.edu
4383671Sbinkertn@umich.edu    def smred(self, isa, os):
4393671Sbinkertn@umich.edu        self.__set_args('64M')
4403671Sbinkertn@umich.edu
4413671Sbinkertn@umich.educlass gcc(DefaultBenchmark):
4423671Sbinkertn@umich.edu    name = 'gcc'
4433671Sbinkertn@umich.edu    number = 176
4443671Sbinkertn@umich.edu    lang = 'C'
4453671Sbinkertn@umich.edu
4463671Sbinkertn@umich.edu    def test(self, isa, os):
4473671Sbinkertn@umich.edu        self.args = [ 'cccp.i', '-o', 'cccp.s' ]
4483671Sbinkertn@umich.edu
4493671Sbinkertn@umich.edu    def train(self, isa, os):
4503671Sbinkertn@umich.edu        self.args = [ 'cp-decl.i', '-o', 'cp-decl.s' ]
4513671Sbinkertn@umich.edu
4523671Sbinkertn@umich.edu    def smred(self, isa, os):
4533671Sbinkertn@umich.edu        self.args = [ 'c-iterate.i', '-o', 'c-iterate.s' ]
4543671Sbinkertn@umich.edu
4553671Sbinkertn@umich.edu    def mdred(self, isa, os):
4563671Sbinkertn@umich.edu        self.args = [ 'rdlanal.i', '-o', 'rdlanal.s' ]
4573671Sbinkertn@umich.edu
4583671Sbinkertn@umich.edu    def lgred(self, isa, os):
4593671Sbinkertn@umich.edu        self.args = [ 'cp-decl.i', '-o', 'cp-decl.s' ]
4603671Sbinkertn@umich.edu
4613671Sbinkertn@umich.educlass gcc_166(gcc):
4623671Sbinkertn@umich.edu    def ref(self, isa, os):
4635361Srstrong@cs.ucsd.edu        self.simpoint = 389*100E6
4643671Sbinkertn@umich.edu        self.args = [ '166.i', '-o', '166.s' ]
4653671Sbinkertn@umich.edu
4663671Sbinkertn@umich.educlass gcc_200(gcc):
4673671Sbinkertn@umich.edu    def ref(self, isa, os):
4685361Srstrong@cs.ucsd.edu        self.simpoint = 736*100E6
4693671Sbinkertn@umich.edu        self.args = [ '200.i', '-o', '200.s' ]
4703671Sbinkertn@umich.edu
4713671Sbinkertn@umich.educlass gcc_expr(gcc):
4723671Sbinkertn@umich.edu    def ref(self, isa, os):
4735361Srstrong@cs.ucsd.edu        self.simpoint = 36*100E6
4743671Sbinkertn@umich.edu        self.args = [ 'expr.i', '-o', 'expr.s' ]
4753671Sbinkertn@umich.edu
4763671Sbinkertn@umich.educlass gcc_integrate(gcc):
4773671Sbinkertn@umich.edu    def ref(self, isa, os):
4785361Srstrong@cs.ucsd.edu        self.simpoint = 4*100E6
4793671Sbinkertn@umich.edu        self.args = [ 'integrate.i', '-o', 'integrate.s' ]
4803671Sbinkertn@umich.edu
4813671Sbinkertn@umich.educlass gcc_scilab(gcc):
4823671Sbinkertn@umich.edu    def ref(self, isa, os):
4835361Srstrong@cs.ucsd.edu        self.simpoint = 207*100E6
4843671Sbinkertn@umich.edu        self.args = [ 'scilab.i', '-o', 'scilab.s' ]
4853671Sbinkertn@umich.edu
4863671Sbinkertn@umich.educlass gzip(DefaultBenchmark):
4873671Sbinkertn@umich.edu    name = 'gzip'
4883671Sbinkertn@umich.edu    number = 164
4893671Sbinkertn@umich.edu    lang = 'C'
4903671Sbinkertn@umich.edu
4913671Sbinkertn@umich.edu    def test(self, isa, os):
4923671Sbinkertn@umich.edu        self.args = [ 'input.compressed', '2' ]
4933671Sbinkertn@umich.edu
4943671Sbinkertn@umich.edu    def train(self, isa, os):
4953671Sbinkertn@umich.edu        self.args = [ 'input.combined', '32' ]
4963671Sbinkertn@umich.edu
4973671Sbinkertn@umich.educlass gzip_source(gzip):
4983671Sbinkertn@umich.edu    def ref(self, isa, os):
4995361Srstrong@cs.ucsd.edu        self.simpoint = 334*100E6
5003671Sbinkertn@umich.edu        self.args = [ 'input.source', '1' ]
5013671Sbinkertn@umich.edu    def smred(self, isa, os):
5023671Sbinkertn@umich.edu        self.args = [ 'input.source', '1' ]
5033671Sbinkertn@umich.edu    def mdred(self, isa, os):
5043671Sbinkertn@umich.edu        self.args = [ 'input.source', '1' ]
5053671Sbinkertn@umich.edu    def lgred(self, isa, os):
5063671Sbinkertn@umich.edu        self.args = [ 'input.source', '1' ]
5073671Sbinkertn@umich.edu
5083671Sbinkertn@umich.educlass gzip_log(gzip):
5093671Sbinkertn@umich.edu    def ref(self, isa, os):
5105361Srstrong@cs.ucsd.edu        self.simpoint = 265*100E6
5113671Sbinkertn@umich.edu        self.args = [ 'input.log', '60' ]
5123671Sbinkertn@umich.edu    def smred(self, isa, os):
5133671Sbinkertn@umich.edu        self.args = [ 'input.log', '1' ]
5143671Sbinkertn@umich.edu    def mdred(self, isa, os):
5153671Sbinkertn@umich.edu        self.args = [ 'input.log', '1' ]
5163671Sbinkertn@umich.edu    def lgred(self, isa, os):
5173671Sbinkertn@umich.edu        self.args = [ 'input.log', '1' ]
5183671Sbinkertn@umich.edu
5193671Sbinkertn@umich.educlass gzip_graphic(gzip):
5203671Sbinkertn@umich.edu    def ref(self, isa, os):
5215361Srstrong@cs.ucsd.edu        self.simpoint = 653*100E6
5223671Sbinkertn@umich.edu        self.args = [ 'input.graphic', '60' ]
5233671Sbinkertn@umich.edu    def smred(self, isa, os):
5243671Sbinkertn@umich.edu        self.args = [ 'input.graphic', '1' ]
5253671Sbinkertn@umich.edu    def mdred(self, isa, os):
5263671Sbinkertn@umich.edu        self.args = [ 'input.graphic', '1' ]
5273671Sbinkertn@umich.edu    def lgred(self, isa, os):
5283671Sbinkertn@umich.edu        self.args = [ 'input.graphic', '1' ]
5293671Sbinkertn@umich.edu
5303671Sbinkertn@umich.educlass gzip_random(gzip):
5313671Sbinkertn@umich.edu    def ref(self, isa, os):
5325361Srstrong@cs.ucsd.edu        self.simpoint = 623*100E6
5333671Sbinkertn@umich.edu        self.args = [ 'input.random', '60' ]
5343671Sbinkertn@umich.edu    def smred(self, isa, os):
5353671Sbinkertn@umich.edu        self.args = [ 'input.random', '1' ]
5363671Sbinkertn@umich.edu    def mdred(self, isa, os):
5373671Sbinkertn@umich.edu        self.args = [ 'input.random', '1' ]
5383671Sbinkertn@umich.edu    def lgred(self, isa, os):
5393671Sbinkertn@umich.edu        self.args = [ 'input.random', '1' ]
5403671Sbinkertn@umich.edu
5413671Sbinkertn@umich.educlass gzip_program(gzip):
5423671Sbinkertn@umich.edu    def ref(self, isa, os):
5435361Srstrong@cs.ucsd.edu        self.simpoint = 1189*100E6
5443671Sbinkertn@umich.edu        self.args = [ 'input.program', '60' ]
5453671Sbinkertn@umich.edu    def smred(self, isa, os):
5463671Sbinkertn@umich.edu        self.args = [ 'input.program', '1' ]
5473671Sbinkertn@umich.edu    def mdred(self, isa, os):
5483671Sbinkertn@umich.edu        self.args = [ 'input.program', '1' ]
5493671Sbinkertn@umich.edu    def lgred(self, isa, os):
5503671Sbinkertn@umich.edu        self.args = [ 'input.program', '1' ]
5513671Sbinkertn@umich.edu
5523671Sbinkertn@umich.educlass mcf(MinneDefaultBenchmark):
5533671Sbinkertn@umich.edu    name = 'mcf'
5543671Sbinkertn@umich.edu    number = 181
5553671Sbinkertn@umich.edu    lang = 'C'
5564271Sgblack@eecs.umich.edu    args = [ 'mcf.in' ]
5575361Srstrong@cs.ucsd.edu    simpoint = 553*100E6
5583671Sbinkertn@umich.edu
5593671Sbinkertn@umich.educlass parser(MinneDefaultBenchmark):
5603671Sbinkertn@umich.edu    name = 'parser'
5613671Sbinkertn@umich.edu    number = 197
5623671Sbinkertn@umich.edu    lang = 'C'
5633671Sbinkertn@umich.edu    args = [ '2.1.dict', '-batch' ]
5645361Srstrong@cs.ucsd.edu    simpoint = 1146*100E6
5653671Sbinkertn@umich.edu
5663671Sbinkertn@umich.educlass perlbmk(DefaultBenchmark):
5673671Sbinkertn@umich.edu    name = 'perlbmk'
5683671Sbinkertn@umich.edu    number = 253
5693671Sbinkertn@umich.edu    lang = 'C'
5703671Sbinkertn@umich.edu
5713671Sbinkertn@umich.edu    def test(self, isa, os):
5723671Sbinkertn@umich.edu        self.args = [ '-I.', '-I', 'lib', 'test.pl' ]
5733671Sbinkertn@umich.edu        self.stdin = 'test.in'
5743671Sbinkertn@umich.edu
5753671Sbinkertn@umich.educlass perlbmk_diffmail(perlbmk):
5763671Sbinkertn@umich.edu    def ref(self, isa, os):
5775361Srstrong@cs.ucsd.edu        self.simpoint = 141*100E6
5783671Sbinkertn@umich.edu        self.args = [ '-I', 'lib', 'diffmail.pl', '2', '550', '15', '24',
5793671Sbinkertn@umich.edu                      '23', '100' ]
5803671Sbinkertn@umich.edu
5813671Sbinkertn@umich.edu    def train(self, isa, os):
5823671Sbinkertn@umich.edu        self.args = [ '-I', 'lib', 'diffmail.pl', '2', '350', '15', '24',
5833671Sbinkertn@umich.edu                      '23', '150' ]
5843671Sbinkertn@umich.edu
5853671Sbinkertn@umich.educlass perlbmk_scrabbl(perlbmk):
5863671Sbinkertn@umich.edu    def train(self, isa, os):
5873671Sbinkertn@umich.edu        self.args = [ '-I.', '-I', 'lib', 'scrabbl.pl' ]
5883671Sbinkertn@umich.edu        self.stdin = 'scrabbl.in'
5893671Sbinkertn@umich.edu
5903671Sbinkertn@umich.educlass perlbmk_makerand(perlbmk):
5913671Sbinkertn@umich.edu    def ref(self, isa, os):
5925361Srstrong@cs.ucsd.edu        self.simpoint = 11*100E6
5933671Sbinkertn@umich.edu        self.args = [ '-I', 'lib',  'makerand.pl' ]
5943671Sbinkertn@umich.edu
5953671Sbinkertn@umich.edu    def lgred(self, isa, os):
5963671Sbinkertn@umich.edu        self.args = [ '-I.', '-I', 'lib', 'lgred.makerand.pl' ]
5973671Sbinkertn@umich.edu
5983671Sbinkertn@umich.edu    def mdred(self, isa, os):
5993671Sbinkertn@umich.edu        self.args = [ '-I.', '-I', 'lib', 'mdred.makerand.pl' ]
6003671Sbinkertn@umich.edu
6013671Sbinkertn@umich.edu    def smred(self, isa, os):
6023671Sbinkertn@umich.edu        self.args = [ '-I.', '-I', 'lib', 'smred.makerand.pl' ]
6033671Sbinkertn@umich.edu
6043671Sbinkertn@umich.educlass perlbmk_perfect(perlbmk):
6053671Sbinkertn@umich.edu    def ref(self, isa, os):
6065361Srstrong@cs.ucsd.edu        self.simpoint = 5*100E6
6073671Sbinkertn@umich.edu        self.args = [ '-I', 'lib',  'perfect.pl', 'b', '3', 'm', '4' ]
6083671Sbinkertn@umich.edu
6093671Sbinkertn@umich.edu    def train(self, isa, os):
6103671Sbinkertn@umich.edu        self.args = [ '-I', 'lib', 'perfect.pl', 'b',  '3' ]
6113671Sbinkertn@umich.edu
6123671Sbinkertn@umich.educlass perlbmk_splitmail1(perlbmk):
6133671Sbinkertn@umich.edu    def ref(self, isa, os):
6145361Srstrong@cs.ucsd.edu        self.simpoint = 405*100E6
6153671Sbinkertn@umich.edu        self.args = [ '-I', 'lib', 'splitmail.pl', '850', '5', '19',
6163671Sbinkertn@umich.edu                      '18', '1500' ]
6173671Sbinkertn@umich.edu
6183671Sbinkertn@umich.educlass perlbmk_splitmail2(perlbmk):
6193671Sbinkertn@umich.edu    def ref(self, isa, os):
6203671Sbinkertn@umich.edu        self.args = [ '-I', 'lib', 'splitmail.pl', '704', '12', '26',
6213671Sbinkertn@umich.edu                      '16', '836' ]
6223671Sbinkertn@umich.edu
6233671Sbinkertn@umich.educlass perlbmk_splitmail3(perlbmk):
6243671Sbinkertn@umich.edu    def ref(self, isa, os):
6253671Sbinkertn@umich.edu        self.args = [ '-I', 'lib', 'splitmail.pl', '535', '13', '25',
6263671Sbinkertn@umich.edu                      '24', '1091' ]
6273671Sbinkertn@umich.edu
6283671Sbinkertn@umich.educlass perlbmk_splitmail4(perlbmk):
6293671Sbinkertn@umich.edu    def ref(self, isa, os):
6303671Sbinkertn@umich.edu        self.args = [ '-I', 'lib', 'splitmail.pl', '957', '12', '23',
6313671Sbinkertn@umich.edu                      '26', '1014' ]
6323671Sbinkertn@umich.edu
6333671Sbinkertn@umich.educlass twolf(Benchmark):
6343671Sbinkertn@umich.edu    name = 'twolf'
6353671Sbinkertn@umich.edu    number = 300
6363671Sbinkertn@umich.edu    lang = 'C'
6373671Sbinkertn@umich.edu    stdin = None
6383671Sbinkertn@umich.edu
6393671Sbinkertn@umich.edu    def test(self, isa, os):
6403671Sbinkertn@umich.edu        self.args = [ 'test' ]
6413671Sbinkertn@umich.edu
6423671Sbinkertn@umich.edu    def train(self, isa, os):
6433671Sbinkertn@umich.edu        self.args = [ 'train' ]
6443671Sbinkertn@umich.edu
6453671Sbinkertn@umich.edu    def ref(self, isa, os):
6465361Srstrong@cs.ucsd.edu        self.simpoint = 1066*100E6
6473671Sbinkertn@umich.edu        self.args = [ 'ref' ]
6483671Sbinkertn@umich.edu
6493671Sbinkertn@umich.edu    def smred(self, isa, os):
6503671Sbinkertn@umich.edu        self.args = [ 'smred' ]
6513671Sbinkertn@umich.edu
6523671Sbinkertn@umich.edu    def mdred(self, isa, os):
6533671Sbinkertn@umich.edu        self.args = [ 'mdred' ]
6543671Sbinkertn@umich.edu
6553671Sbinkertn@umich.edu    def lgred(self, isa, os):
6563671Sbinkertn@umich.edu        self.args = [ 'lgred' ]
6573671Sbinkertn@umich.edu
6583671Sbinkertn@umich.educlass vortex(Benchmark):
6593671Sbinkertn@umich.edu    name = 'vortex'
6603671Sbinkertn@umich.edu    number = 255
6613671Sbinkertn@umich.edu    lang = 'C'
6623671Sbinkertn@umich.edu    stdin = None
6633671Sbinkertn@umich.edu
6643671Sbinkertn@umich.edu    def __init__(self, isa, os, input_set):
6653671Sbinkertn@umich.edu        if isa == 'alpha':
6663671Sbinkertn@umich.edu            self.endian = 'lendian'
6674116Sgblack@eecs.umich.edu        elif (isa == 'sparc' or isa == 'sparc32'):
6684116Sgblack@eecs.umich.edu            self.endian = 'bendian'
6693671Sbinkertn@umich.edu        else:
6703671Sbinkertn@umich.edu            raise AttributeError, "unknown ISA %s" % isa
6713671Sbinkertn@umich.edu
6723671Sbinkertn@umich.edu        super(vortex, self).__init__(isa, os, input_set)
6733671Sbinkertn@umich.edu
6743671Sbinkertn@umich.edu    def test(self, isa, os):
6753671Sbinkertn@umich.edu        self.args = [ '%s.raw' % self.endian ]
6763671Sbinkertn@umich.edu        self.output = 'vortex.out'
6773671Sbinkertn@umich.edu
6783671Sbinkertn@umich.edu    def train(self, isa, os):
6793671Sbinkertn@umich.edu        self.args = [ '%s.raw' % self.endian ]
6803671Sbinkertn@umich.edu        self.output = 'vortex.out'
6813671Sbinkertn@umich.edu
6823671Sbinkertn@umich.edu    def smred(self, isa, os):
6833671Sbinkertn@umich.edu        self.args = [ '%s.raw' % self.endian ]
6843671Sbinkertn@umich.edu        self.output = 'vortex.out'
6853671Sbinkertn@umich.edu
6863671Sbinkertn@umich.edu    def mdred(self, isa, os):
6873671Sbinkertn@umich.edu        self.args = [ '%s.raw' % self.endian ]
6883671Sbinkertn@umich.edu        self.output = 'vortex.out'
6893671Sbinkertn@umich.edu
6903671Sbinkertn@umich.edu    def lgred(self, isa, os):
6913671Sbinkertn@umich.edu        self.args = [ '%s.raw' % self.endian ]
6923671Sbinkertn@umich.edu        self.output = 'vortex.out'
6933671Sbinkertn@umich.edu
6943671Sbinkertn@umich.educlass vortex1(vortex):
6953671Sbinkertn@umich.edu    def ref(self, isa, os):
6963671Sbinkertn@umich.edu        self.args = [ '%s1.raw' % self.endian ]
6973671Sbinkertn@umich.edu        self.output = 'vortex1.out'
6985361Srstrong@cs.ucsd.edu        self.simpoint = 271*100E6
6993671Sbinkertn@umich.edu
7003671Sbinkertn@umich.edu
7013671Sbinkertn@umich.educlass vortex2(vortex):
7023671Sbinkertn@umich.edu    def ref(self, isa, os):
7035361Srstrong@cs.ucsd.edu        self.simpoint = 1024*100E6
7043671Sbinkertn@umich.edu        self.args = [ '%s2.raw' % self.endian ]
7053671Sbinkertn@umich.edu        self.output = 'vortex2.out'
7063671Sbinkertn@umich.edu
7073671Sbinkertn@umich.educlass vortex3(vortex):
7083671Sbinkertn@umich.edu    def ref(self, isa, os):
7095361Srstrong@cs.ucsd.edu        self.simpoint = 564*100E6
7103671Sbinkertn@umich.edu        self.args = [ '%s3.raw' % self.endian ]
7113671Sbinkertn@umich.edu        self.output = 'vortex3.out'
7123671Sbinkertn@umich.edu
7133671Sbinkertn@umich.educlass vpr(MinneDefaultBenchmark):
7143671Sbinkertn@umich.edu    name = 'vpr'
7153671Sbinkertn@umich.edu    number = 175
7163671Sbinkertn@umich.edu    lang = 'C'
7173671Sbinkertn@umich.edu
7183671Sbinkertn@umich.edu# not sure about vpr minnespec place.in
7193671Sbinkertn@umich.educlass vpr_place(vpr):
7203671Sbinkertn@umich.edu    args = [ 'net.in', 'arch.in', 'place.out', 'dum.out', '-nodisp',
7213671Sbinkertn@umich.edu             '-place_only', '-init_t', '5', '-exit_t', '0.005',
7223671Sbinkertn@umich.edu             '-alpha_t', '0.9412', '-inner_num', '2' ]
7233671Sbinkertn@umich.edu    output = 'place_log.out'
7243671Sbinkertn@umich.edu
7253671Sbinkertn@umich.educlass vpr_route(vpr):
7265361Srstrong@cs.ucsd.edu    simpoint = 476*100E6
7273671Sbinkertn@umich.edu    args = [ 'net.in', 'arch.in', 'place.in', 'route.out', '-nodisp',
7283671Sbinkertn@umich.edu             '-route_only', '-route_chan_width', '15',
7293671Sbinkertn@umich.edu             '-pres_fac_mult', '2', '-acc_fac', '1',
7303671Sbinkertn@umich.edu             '-first_iter_pres_fac', '4', '-initial_pres_fac', '8' ]
7313671Sbinkertn@umich.edu    output = 'route_log.out'
7323671Sbinkertn@umich.edu
7333671Sbinkertn@umich.eduall = [ ammp, applu, apsi, art110, art470, equake, facerec, fma3d, galgel,
7343671Sbinkertn@umich.edu        lucas, mesa, mgrid, sixtrack, swim, wupwise, bzip2_source,
7353671Sbinkertn@umich.edu        bzip2_graphic, bzip2_program, crafty, eon_kajiya, eon_cook,
7363671Sbinkertn@umich.edu        eon_rushmeier, gap, gcc_166, gcc_200, gcc_expr, gcc_integrate,
7373671Sbinkertn@umich.edu        gcc_scilab, gzip_source, gzip_log, gzip_graphic, gzip_random,
7383671Sbinkertn@umich.edu        gzip_program, mcf, parser, perlbmk_diffmail, perlbmk_makerand,
7393671Sbinkertn@umich.edu        perlbmk_perfect, perlbmk_splitmail1, perlbmk_splitmail2,
7403671Sbinkertn@umich.edu        perlbmk_splitmail3, perlbmk_splitmail4, twolf, vortex1, vortex2,
7413671Sbinkertn@umich.edu        vortex3, vpr_place, vpr_route ]
7423671Sbinkertn@umich.edu
7433671Sbinkertn@umich.edu__all__ = [ x.__name__ for x in all ]
7443671Sbinkertn@umich.edu
7453671Sbinkertn@umich.eduif __name__ == '__main__':
7463671Sbinkertn@umich.edu    from pprint import pprint
7473671Sbinkertn@umich.edu    for bench in all:
7483671Sbinkertn@umich.edu        for input_set in 'ref', 'test', 'train':
7493671Sbinkertn@umich.edu            print 'class: %s' % bench.__name__
7503671Sbinkertn@umich.edu            x = bench('alpha', 'tru64', input_set)
7513671Sbinkertn@umich.edu            print '%s: %s' % (x, input_set)
7523671Sbinkertn@umich.edu            pprint(x.makeLiveProcessArgs())
7533671Sbinkertn@umich.edu            print
754