cpu2000.py revision 5378
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
1435378Ssaidi@eecs.umich.edu        if self.simpoint:
1445378Ssaidi@eecs.umich.edu            process_args['simpoint'] = self.simpoint
1453671Sbinkertn@umich.edu        # explicit keywords override defaults
1463671Sbinkertn@umich.edu        process_args.update(kwargs)
1473671Sbinkertn@umich.edu
1483671Sbinkertn@umich.edu        return process_args
1493671Sbinkertn@umich.edu
1503671Sbinkertn@umich.edu    def makeLiveProcess(self, **kwargs):
1513671Sbinkertn@umich.edu        process_args = self.makeLiveProcessArgs(**kwargs)
1523671Sbinkertn@umich.edu
1533671Sbinkertn@umich.edu        # figure out working directory: use m5's outdir unless
1543671Sbinkertn@umich.edu        # overridden by LiveProcess's cwd param
1553671Sbinkertn@umich.edu        cwd = process_args.get('cwd')
1565361Srstrong@cs.ucsd.edu
1573671Sbinkertn@umich.edu        if not cwd:
1583671Sbinkertn@umich.edu            from m5.main import options
1593671Sbinkertn@umich.edu            cwd = options.outdir
1603671Sbinkertn@umich.edu            process_args['cwd'] = cwd
1613671Sbinkertn@umich.edu        if not isdir(cwd):
1623671Sbinkertn@umich.edu            os.makedirs(cwd)
1633671Sbinkertn@umich.edu        # copy input files to working directory
1643671Sbinkertn@umich.edu        for d in self.inputs_dir:
1653671Sbinkertn@umich.edu            copyfiles(d, cwd)
1663671Sbinkertn@umich.edu        # generate LiveProcess object
1673671Sbinkertn@umich.edu        from m5.objects import LiveProcess
1683671Sbinkertn@umich.edu        return LiveProcess(**process_args)
1693671Sbinkertn@umich.edu
1703671Sbinkertn@umich.edu    def __str__(self):
1713671Sbinkertn@umich.edu        return self.name
1723671Sbinkertn@umich.edu
1733671Sbinkertn@umich.educlass DefaultBenchmark(Benchmark):
1743671Sbinkertn@umich.edu    def ref(self, isa, os): pass
1753671Sbinkertn@umich.edu    def test(self, isa, os): pass
1763671Sbinkertn@umich.edu    def train(self, isa, os): pass
1773671Sbinkertn@umich.edu
1783671Sbinkertn@umich.educlass MinneDefaultBenchmark(DefaultBenchmark):
1793671Sbinkertn@umich.edu    def smred(self, isa, os): pass
1803671Sbinkertn@umich.edu    def mdred(self, isa, os): pass
1813671Sbinkertn@umich.edu    def lgred(self, isa, os): pass
1823671Sbinkertn@umich.edu
1833671Sbinkertn@umich.educlass ammp(MinneDefaultBenchmark):
1843671Sbinkertn@umich.edu    name = 'ammp'
1853671Sbinkertn@umich.edu    number = 188
1863671Sbinkertn@umich.edu    lang = 'C'
1875361Srstrong@cs.ucsd.edu    simpoint = 108*100E6
1883671Sbinkertn@umich.edu
1893671Sbinkertn@umich.educlass applu(MinneDefaultBenchmark):
1903671Sbinkertn@umich.edu    name = 'applu'
1913671Sbinkertn@umich.edu    number = 173
1923671Sbinkertn@umich.edu    lang = 'F77'
1935361Srstrong@cs.ucsd.edu    simpoint = 2179*100E6
1943671Sbinkertn@umich.edu
1953671Sbinkertn@umich.educlass apsi(MinneDefaultBenchmark):
1963671Sbinkertn@umich.edu    name = 'apsi'
1973671Sbinkertn@umich.edu    number = 301
1983671Sbinkertn@umich.edu    lang = 'F77'
1995361Srstrong@cs.ucsd.edu    simpoint = 3408*100E6
2003671Sbinkertn@umich.edu
2013671Sbinkertn@umich.educlass art(DefaultBenchmark):
2023671Sbinkertn@umich.edu    name = 'art'
2033671Sbinkertn@umich.edu    number = 179
2043671Sbinkertn@umich.edu    lang = 'C'
2053671Sbinkertn@umich.edu
2063671Sbinkertn@umich.edu    def test(self, isa, os):
2073671Sbinkertn@umich.edu        self.args = [ '-scanfile', 'c756hel.in',
2083671Sbinkertn@umich.edu                      '-trainfile1', 'a10.img',
2093671Sbinkertn@umich.edu                      '-stride', '2',
2103671Sbinkertn@umich.edu                      '-startx', '134',
2113671Sbinkertn@umich.edu                      '-starty', '220',
2123671Sbinkertn@umich.edu                      '-endx', '139',
2133671Sbinkertn@umich.edu                      '-endy', '225',
2143671Sbinkertn@umich.edu                      '-objects', '1' ]
2153671Sbinkertn@umich.edu        self.output = 'test.out'
2163671Sbinkertn@umich.edu
2173671Sbinkertn@umich.edu    def train(self, isa, os):
2183671Sbinkertn@umich.edu        self.args = [ '-scanfile', 'c756hel.in',
2193671Sbinkertn@umich.edu                      '-trainfile1', 'a10.img',
2203671Sbinkertn@umich.edu                      '-stride', '2',
2213671Sbinkertn@umich.edu                      '-startx', '134',
2223671Sbinkertn@umich.edu                      '-starty', '220',
2233671Sbinkertn@umich.edu                      '-endx', '184',
2243671Sbinkertn@umich.edu                      '-endy', '240',
2253671Sbinkertn@umich.edu                      '-objects', '3' ]
2263671Sbinkertn@umich.edu        self.output = 'train.out'
2273671Sbinkertn@umich.edu
2283671Sbinkertn@umich.edu    def lgred(self, isa, os):
2293671Sbinkertn@umich.edu        self.args = ['-scanfile', 'c756hel.in',
2303671Sbinkertn@umich.edu                     '-trainfile1', 'a10.img',
2313671Sbinkertn@umich.edu                     '-stride', '5',
2323671Sbinkertn@umich.edu                     '-startx', '134',
2333671Sbinkertn@umich.edu                     '-starty', '220',
2343671Sbinkertn@umich.edu                     '-endx', '184',
2353671Sbinkertn@umich.edu                     '-endy', '240',
2363671Sbinkertn@umich.edu                     '-objects', '1' ]
2373671Sbinkertn@umich.edu        self.output = 'lgred.out'
2383671Sbinkertn@umich.edu
2393671Sbinkertn@umich.edu
2403671Sbinkertn@umich.educlass art110(art):
2413671Sbinkertn@umich.edu    def ref(self, isa, os):
2423671Sbinkertn@umich.edu        self.args = [ '-scanfile', 'c756hel.in',
2433671Sbinkertn@umich.edu                      '-trainfile1', 'a10.img',
2443671Sbinkertn@umich.edu                      '-trainfile2', 'hc.img',
2453671Sbinkertn@umich.edu                      '-stride', '2',
2463671Sbinkertn@umich.edu                      '-startx', '110',
2473671Sbinkertn@umich.edu                      '-starty', '200',
2483671Sbinkertn@umich.edu                      '-endx', '160',
2493671Sbinkertn@umich.edu                      '-endy', '240',
2503671Sbinkertn@umich.edu                      '-objects', '10' ]
2513671Sbinkertn@umich.edu        self.output = 'ref.1.out'
2525361Srstrong@cs.ucsd.edu        self.simpoint = 340*100E6
2533671Sbinkertn@umich.edu
2543671Sbinkertn@umich.educlass art470(art):
2553671Sbinkertn@umich.edu    def ref(self, isa, os):
2563671Sbinkertn@umich.edu        self.args = [ '-scanfile', 'c756hel.in',
2573671Sbinkertn@umich.edu                      '-trainfile1', 'a10.img',
2583671Sbinkertn@umich.edu                      '-trainfile2', 'hc.img',
2593671Sbinkertn@umich.edu                      '-stride', '2',
2603671Sbinkertn@umich.edu                      '-startx', '470',
2613671Sbinkertn@umich.edu                      '-starty', '140',
2623671Sbinkertn@umich.edu                      '-endx', '520',
2633671Sbinkertn@umich.edu                      '-endy', '180',
2643671Sbinkertn@umich.edu                      '-objects', '10' ]
2653671Sbinkertn@umich.edu        self.output = 'ref.2.out'
2665361Srstrong@cs.ucsd.edu        self.simpoint = 365*100E6
2673671Sbinkertn@umich.edu
2683671Sbinkertn@umich.educlass equake(DefaultBenchmark):
2693671Sbinkertn@umich.edu    name = 'equake'
2703671Sbinkertn@umich.edu    number = 183
2713671Sbinkertn@umich.edu    lang = 'C'
2725361Srstrong@cs.ucsd.edu    simpoint = 812*100E6
2733671Sbinkertn@umich.edu
2743671Sbinkertn@umich.edu    def lgred(self, isa, os): pass
2753671Sbinkertn@umich.edu
2763671Sbinkertn@umich.educlass facerec(MinneDefaultBenchmark):
2773671Sbinkertn@umich.edu    name = 'facerec'
2783671Sbinkertn@umich.edu    number = 187
2793671Sbinkertn@umich.edu    lang = 'F'
2805361Srstrong@cs.ucsd.edu    simpoint = 375*100E6
2813671Sbinkertn@umich.edu
2823671Sbinkertn@umich.educlass fma3d(MinneDefaultBenchmark):
2833671Sbinkertn@umich.edu    name = 'fma3d'
2843671Sbinkertn@umich.edu    number = 191
2853671Sbinkertn@umich.edu    lang = 'F'
2865361Srstrong@cs.ucsd.edu    simpoint = 2541*100E6
2873671Sbinkertn@umich.edu
2883671Sbinkertn@umich.educlass galgel(MinneDefaultBenchmark):
2893671Sbinkertn@umich.edu    name = 'galgel'
2903671Sbinkertn@umich.edu    number = 178
2913671Sbinkertn@umich.edu    lang = 'F'
2925361Srstrong@cs.ucsd.edu    simpoint = 2491*100E6
2933671Sbinkertn@umich.edu
2943671Sbinkertn@umich.educlass lucas(MinneDefaultBenchmark):
2953671Sbinkertn@umich.edu    name = 'lucas'
2963671Sbinkertn@umich.edu    number = 189
2973671Sbinkertn@umich.edu    lang = 'F'
2985361Srstrong@cs.ucsd.edu    simpoint = 545*100E6
2993671Sbinkertn@umich.edu
3003671Sbinkertn@umich.educlass mesa(Benchmark):
3013671Sbinkertn@umich.edu    name = 'mesa'
3023671Sbinkertn@umich.edu    number = 177
3033671Sbinkertn@umich.edu    lang = 'C'
3043671Sbinkertn@umich.edu    stdin = None
3053671Sbinkertn@umich.edu
3063671Sbinkertn@umich.edu    def __set_args(self, frames):
3073671Sbinkertn@umich.edu        self.args = [ '-frames', frames, '-meshfile', '%s.in' % self.name,
3083671Sbinkertn@umich.edu                      '-ppmfile', '%s.ppm' % self.name ]
3093671Sbinkertn@umich.edu
3103671Sbinkertn@umich.edu    def test(self, isa, os):
3113671Sbinkertn@umich.edu        self.__set_args('10')
3123671Sbinkertn@umich.edu
3133671Sbinkertn@umich.edu    def train(self, isa, os):
3143671Sbinkertn@umich.edu        self.__set_args('500')
3153671Sbinkertn@umich.edu
3163671Sbinkertn@umich.edu    def ref(self, isa, os):
3173671Sbinkertn@umich.edu        self.__set_args('1000')
3185361Srstrong@cs.ucsd.edu        self.simpoint = 1135*100E6
3193671Sbinkertn@umich.edu
3203671Sbinkertn@umich.edu    def lgred(self, isa, os):
3213671Sbinkertn@umich.edu        self.__set_args('1')
3223671Sbinkertn@umich.edu
3233671Sbinkertn@umich.educlass mgrid(MinneDefaultBenchmark):
3243671Sbinkertn@umich.edu    name = 'mgrid'
3253671Sbinkertn@umich.edu    number = 172
3263671Sbinkertn@umich.edu    lang = 'F77'
3275361Srstrong@cs.ucsd.edu    simpoint = 3292*100E6
3283671Sbinkertn@umich.edu
3293671Sbinkertn@umich.educlass sixtrack(DefaultBenchmark):
3303671Sbinkertn@umich.edu    name = 'sixtrack'
3313671Sbinkertn@umich.edu    number = 200
3323671Sbinkertn@umich.edu    lang = 'F77'
3335361Srstrong@cs.ucsd.edu    simpoint = 3043*100E6
3343671Sbinkertn@umich.edu
3353671Sbinkertn@umich.edu    def lgred(self, isa, os): pass
3363671Sbinkertn@umich.edu
3373671Sbinkertn@umich.educlass swim(MinneDefaultBenchmark):
3383671Sbinkertn@umich.edu    name = 'swim'
3393671Sbinkertn@umich.edu    number = 171
3403671Sbinkertn@umich.edu    lang = 'F77'
3415361Srstrong@cs.ucsd.edu    simpoint = 2079*100E6
3423671Sbinkertn@umich.edu
3433671Sbinkertn@umich.educlass wupwise(DefaultBenchmark):
3443671Sbinkertn@umich.edu    name = 'wupwise'
3453671Sbinkertn@umich.edu    number = 168
3463671Sbinkertn@umich.edu    lang = 'F77'
3475361Srstrong@cs.ucsd.edu    simpoint = 3237*100E6
3483671Sbinkertn@umich.edu
3493671Sbinkertn@umich.edu    def lgred(self, isa, os): pass
3503671Sbinkertn@umich.edu
3513671Sbinkertn@umich.educlass bzip2(DefaultBenchmark):
3523671Sbinkertn@umich.edu    name = 'bzip2'
3533671Sbinkertn@umich.edu    number = 256
3543671Sbinkertn@umich.edu    lang = 'C'
3553671Sbinkertn@umich.edu
3563671Sbinkertn@umich.edu    def test(self, isa, os):
3573671Sbinkertn@umich.edu        self.args = [ 'input.random' ]
3583671Sbinkertn@umich.edu
3593671Sbinkertn@umich.edu    def train(self, isa, os):
3603671Sbinkertn@umich.edu        self.args = [ 'input.compressed' ]
3613671Sbinkertn@umich.edu
3623671Sbinkertn@umich.educlass bzip2_source(bzip2):
3633671Sbinkertn@umich.edu    def ref(self, isa, os):
3645361Srstrong@cs.ucsd.edu        self.simpoint = 977*100E6
3653671Sbinkertn@umich.edu        self.args = [ 'input.source', '58' ]
3663671Sbinkertn@umich.edu
3673671Sbinkertn@umich.edu    def lgred(self, isa, os):
3683671Sbinkertn@umich.edu        self.args = [ 'input.source', '1' ]
3693671Sbinkertn@umich.edu
3703671Sbinkertn@umich.educlass bzip2_graphic(bzip2):
3713671Sbinkertn@umich.edu    def ref(self, isa, os):
3725361Srstrong@cs.ucsd.edu        self.simpoint = 718*100E6
3733671Sbinkertn@umich.edu        self.args = [ 'input.graphic', '58' ]
3743671Sbinkertn@umich.edu
3753671Sbinkertn@umich.edu    def lgred(self, isa, os):
3763671Sbinkertn@umich.edu        self.args = [ 'input.graphic', '1' ]
3773671Sbinkertn@umich.edu
3783671Sbinkertn@umich.educlass bzip2_program(bzip2):
3793671Sbinkertn@umich.edu    def ref(self, isa, os):
3805361Srstrong@cs.ucsd.edu        self.simpoint = 458*100E6
3813671Sbinkertn@umich.edu        self.args = [ 'input.program', '58' ]
3823671Sbinkertn@umich.edu
3833671Sbinkertn@umich.edu    def lgred(self, isa, os):
3843671Sbinkertn@umich.edu        self.args = [ 'input.program', '1' ]
3853671Sbinkertn@umich.edu
3863671Sbinkertn@umich.educlass crafty(MinneDefaultBenchmark):
3873671Sbinkertn@umich.edu    name = 'crafty'
3883671Sbinkertn@umich.edu    number = 186
3893671Sbinkertn@umich.edu    lang = 'C'
3905361Srstrong@cs.ucsd.edu    simpoint = 774*100E6
3913671Sbinkertn@umich.edu
3923671Sbinkertn@umich.educlass eon(MinneDefaultBenchmark):
3933671Sbinkertn@umich.edu    name = 'eon'
3943671Sbinkertn@umich.edu    number = 252
3953671Sbinkertn@umich.edu    lang = 'CXX'
3963671Sbinkertn@umich.edu    stdin = None
3973671Sbinkertn@umich.edu
3983671Sbinkertn@umich.educlass eon_kajiya(eon):
3993671Sbinkertn@umich.edu    args = [ 'chair.control.kajiya', 'chair.camera', 'chair.surfaces',
4003671Sbinkertn@umich.edu             'chair.kajiya.ppm', 'ppm', 'pixels_out.kajiya']
4013671Sbinkertn@umich.edu    output = 'kajiya_log.out'
4023671Sbinkertn@umich.edu
4033671Sbinkertn@umich.edu
4043671Sbinkertn@umich.educlass eon_cook(eon):
4053671Sbinkertn@umich.edu    args = [ 'chair.control.cook', 'chair.camera', 'chair.surfaces',
4063671Sbinkertn@umich.edu             'chair.cook.ppm', 'ppm', 'pixels_out.cook' ]
4073671Sbinkertn@umich.edu    output = 'cook_log.out'
4083671Sbinkertn@umich.edu
4093671Sbinkertn@umich.educlass eon_rushmeier(eon):
4103671Sbinkertn@umich.edu    args = [ 'chair.control.rushmeier', 'chair.camera', 'chair.surfaces',
4113671Sbinkertn@umich.edu             'chair.rushmeier.ppm', 'ppm', 'pixels_out.rushmeier' ]
4123671Sbinkertn@umich.edu    output = 'rushmeier_log.out'
4135361Srstrong@cs.ucsd.edu    simpoint = 403*100E6
4143671Sbinkertn@umich.edu
4153671Sbinkertn@umich.educlass gap(DefaultBenchmark):
4163671Sbinkertn@umich.edu    name = 'gap'
4173671Sbinkertn@umich.edu    number = 254
4183671Sbinkertn@umich.edu    lang = 'C'
4193671Sbinkertn@umich.edu
4203671Sbinkertn@umich.edu    def __set_args(self, size):
4213671Sbinkertn@umich.edu        self.args = [ '-l', './', '-q', '-m', size ]
4223671Sbinkertn@umich.edu
4233671Sbinkertn@umich.edu    def test(self, isa, os):
4243671Sbinkertn@umich.edu        self.__set_args('64M')
4253671Sbinkertn@umich.edu
4263671Sbinkertn@umich.edu    def train(self, isa, os):
4273671Sbinkertn@umich.edu        self.__set_args('128M')
4283671Sbinkertn@umich.edu
4293671Sbinkertn@umich.edu    def ref(self, isa, os):
4303671Sbinkertn@umich.edu        self.__set_args('192M')
4315361Srstrong@cs.ucsd.edu        self.simpoint = 674*100E6
4323671Sbinkertn@umich.edu
4333671Sbinkertn@umich.edu    def lgred(self, isa, os):
4343671Sbinkertn@umich.edu        self.__set_args('64M')
4353671Sbinkertn@umich.edu
4363671Sbinkertn@umich.edu    def mdred(self, isa, os):
4373671Sbinkertn@umich.edu        self.__set_args('64M')
4383671Sbinkertn@umich.edu
4393671Sbinkertn@umich.edu    def smred(self, isa, os):
4403671Sbinkertn@umich.edu        self.__set_args('64M')
4413671Sbinkertn@umich.edu
4423671Sbinkertn@umich.educlass gcc(DefaultBenchmark):
4433671Sbinkertn@umich.edu    name = 'gcc'
4443671Sbinkertn@umich.edu    number = 176
4453671Sbinkertn@umich.edu    lang = 'C'
4463671Sbinkertn@umich.edu
4473671Sbinkertn@umich.edu    def test(self, isa, os):
4483671Sbinkertn@umich.edu        self.args = [ 'cccp.i', '-o', 'cccp.s' ]
4493671Sbinkertn@umich.edu
4503671Sbinkertn@umich.edu    def train(self, isa, os):
4513671Sbinkertn@umich.edu        self.args = [ 'cp-decl.i', '-o', 'cp-decl.s' ]
4523671Sbinkertn@umich.edu
4533671Sbinkertn@umich.edu    def smred(self, isa, os):
4543671Sbinkertn@umich.edu        self.args = [ 'c-iterate.i', '-o', 'c-iterate.s' ]
4553671Sbinkertn@umich.edu
4563671Sbinkertn@umich.edu    def mdred(self, isa, os):
4573671Sbinkertn@umich.edu        self.args = [ 'rdlanal.i', '-o', 'rdlanal.s' ]
4583671Sbinkertn@umich.edu
4593671Sbinkertn@umich.edu    def lgred(self, isa, os):
4603671Sbinkertn@umich.edu        self.args = [ 'cp-decl.i', '-o', 'cp-decl.s' ]
4613671Sbinkertn@umich.edu
4623671Sbinkertn@umich.educlass gcc_166(gcc):
4633671Sbinkertn@umich.edu    def ref(self, isa, os):
4645361Srstrong@cs.ucsd.edu        self.simpoint = 389*100E6
4653671Sbinkertn@umich.edu        self.args = [ '166.i', '-o', '166.s' ]
4663671Sbinkertn@umich.edu
4673671Sbinkertn@umich.educlass gcc_200(gcc):
4683671Sbinkertn@umich.edu    def ref(self, isa, os):
4695361Srstrong@cs.ucsd.edu        self.simpoint = 736*100E6
4703671Sbinkertn@umich.edu        self.args = [ '200.i', '-o', '200.s' ]
4713671Sbinkertn@umich.edu
4723671Sbinkertn@umich.educlass gcc_expr(gcc):
4733671Sbinkertn@umich.edu    def ref(self, isa, os):
4745361Srstrong@cs.ucsd.edu        self.simpoint = 36*100E6
4753671Sbinkertn@umich.edu        self.args = [ 'expr.i', '-o', 'expr.s' ]
4763671Sbinkertn@umich.edu
4773671Sbinkertn@umich.educlass gcc_integrate(gcc):
4783671Sbinkertn@umich.edu    def ref(self, isa, os):
4795361Srstrong@cs.ucsd.edu        self.simpoint = 4*100E6
4803671Sbinkertn@umich.edu        self.args = [ 'integrate.i', '-o', 'integrate.s' ]
4813671Sbinkertn@umich.edu
4823671Sbinkertn@umich.educlass gcc_scilab(gcc):
4833671Sbinkertn@umich.edu    def ref(self, isa, os):
4845361Srstrong@cs.ucsd.edu        self.simpoint = 207*100E6
4853671Sbinkertn@umich.edu        self.args = [ 'scilab.i', '-o', 'scilab.s' ]
4863671Sbinkertn@umich.edu
4873671Sbinkertn@umich.educlass gzip(DefaultBenchmark):
4883671Sbinkertn@umich.edu    name = 'gzip'
4893671Sbinkertn@umich.edu    number = 164
4903671Sbinkertn@umich.edu    lang = 'C'
4913671Sbinkertn@umich.edu
4923671Sbinkertn@umich.edu    def test(self, isa, os):
4933671Sbinkertn@umich.edu        self.args = [ 'input.compressed', '2' ]
4943671Sbinkertn@umich.edu
4953671Sbinkertn@umich.edu    def train(self, isa, os):
4963671Sbinkertn@umich.edu        self.args = [ 'input.combined', '32' ]
4973671Sbinkertn@umich.edu
4983671Sbinkertn@umich.educlass gzip_source(gzip):
4993671Sbinkertn@umich.edu    def ref(self, isa, os):
5005361Srstrong@cs.ucsd.edu        self.simpoint = 334*100E6
5013671Sbinkertn@umich.edu        self.args = [ 'input.source', '1' ]
5023671Sbinkertn@umich.edu    def smred(self, isa, os):
5033671Sbinkertn@umich.edu        self.args = [ 'input.source', '1' ]
5043671Sbinkertn@umich.edu    def mdred(self, isa, os):
5053671Sbinkertn@umich.edu        self.args = [ 'input.source', '1' ]
5063671Sbinkertn@umich.edu    def lgred(self, isa, os):
5073671Sbinkertn@umich.edu        self.args = [ 'input.source', '1' ]
5083671Sbinkertn@umich.edu
5093671Sbinkertn@umich.educlass gzip_log(gzip):
5103671Sbinkertn@umich.edu    def ref(self, isa, os):
5115361Srstrong@cs.ucsd.edu        self.simpoint = 265*100E6
5123671Sbinkertn@umich.edu        self.args = [ 'input.log', '60' ]
5133671Sbinkertn@umich.edu    def smred(self, isa, os):
5143671Sbinkertn@umich.edu        self.args = [ 'input.log', '1' ]
5153671Sbinkertn@umich.edu    def mdred(self, isa, os):
5163671Sbinkertn@umich.edu        self.args = [ 'input.log', '1' ]
5173671Sbinkertn@umich.edu    def lgred(self, isa, os):
5183671Sbinkertn@umich.edu        self.args = [ 'input.log', '1' ]
5193671Sbinkertn@umich.edu
5203671Sbinkertn@umich.educlass gzip_graphic(gzip):
5213671Sbinkertn@umich.edu    def ref(self, isa, os):
5225361Srstrong@cs.ucsd.edu        self.simpoint = 653*100E6
5233671Sbinkertn@umich.edu        self.args = [ 'input.graphic', '60' ]
5243671Sbinkertn@umich.edu    def smred(self, isa, os):
5253671Sbinkertn@umich.edu        self.args = [ 'input.graphic', '1' ]
5263671Sbinkertn@umich.edu    def mdred(self, isa, os):
5273671Sbinkertn@umich.edu        self.args = [ 'input.graphic', '1' ]
5283671Sbinkertn@umich.edu    def lgred(self, isa, os):
5293671Sbinkertn@umich.edu        self.args = [ 'input.graphic', '1' ]
5303671Sbinkertn@umich.edu
5313671Sbinkertn@umich.educlass gzip_random(gzip):
5323671Sbinkertn@umich.edu    def ref(self, isa, os):
5335361Srstrong@cs.ucsd.edu        self.simpoint = 623*100E6
5343671Sbinkertn@umich.edu        self.args = [ 'input.random', '60' ]
5353671Sbinkertn@umich.edu    def smred(self, isa, os):
5363671Sbinkertn@umich.edu        self.args = [ 'input.random', '1' ]
5373671Sbinkertn@umich.edu    def mdred(self, isa, os):
5383671Sbinkertn@umich.edu        self.args = [ 'input.random', '1' ]
5393671Sbinkertn@umich.edu    def lgred(self, isa, os):
5403671Sbinkertn@umich.edu        self.args = [ 'input.random', '1' ]
5413671Sbinkertn@umich.edu
5423671Sbinkertn@umich.educlass gzip_program(gzip):
5433671Sbinkertn@umich.edu    def ref(self, isa, os):
5445361Srstrong@cs.ucsd.edu        self.simpoint = 1189*100E6
5453671Sbinkertn@umich.edu        self.args = [ 'input.program', '60' ]
5463671Sbinkertn@umich.edu    def smred(self, isa, os):
5473671Sbinkertn@umich.edu        self.args = [ 'input.program', '1' ]
5483671Sbinkertn@umich.edu    def mdred(self, isa, os):
5493671Sbinkertn@umich.edu        self.args = [ 'input.program', '1' ]
5503671Sbinkertn@umich.edu    def lgred(self, isa, os):
5513671Sbinkertn@umich.edu        self.args = [ 'input.program', '1' ]
5523671Sbinkertn@umich.edu
5533671Sbinkertn@umich.educlass mcf(MinneDefaultBenchmark):
5543671Sbinkertn@umich.edu    name = 'mcf'
5553671Sbinkertn@umich.edu    number = 181
5563671Sbinkertn@umich.edu    lang = 'C'
5574271Sgblack@eecs.umich.edu    args = [ 'mcf.in' ]
5585361Srstrong@cs.ucsd.edu    simpoint = 553*100E6
5593671Sbinkertn@umich.edu
5603671Sbinkertn@umich.educlass parser(MinneDefaultBenchmark):
5613671Sbinkertn@umich.edu    name = 'parser'
5623671Sbinkertn@umich.edu    number = 197
5633671Sbinkertn@umich.edu    lang = 'C'
5643671Sbinkertn@umich.edu    args = [ '2.1.dict', '-batch' ]
5655361Srstrong@cs.ucsd.edu    simpoint = 1146*100E6
5663671Sbinkertn@umich.edu
5673671Sbinkertn@umich.educlass perlbmk(DefaultBenchmark):
5683671Sbinkertn@umich.edu    name = 'perlbmk'
5693671Sbinkertn@umich.edu    number = 253
5703671Sbinkertn@umich.edu    lang = 'C'
5713671Sbinkertn@umich.edu
5723671Sbinkertn@umich.edu    def test(self, isa, os):
5733671Sbinkertn@umich.edu        self.args = [ '-I.', '-I', 'lib', 'test.pl' ]
5743671Sbinkertn@umich.edu        self.stdin = 'test.in'
5753671Sbinkertn@umich.edu
5763671Sbinkertn@umich.educlass perlbmk_diffmail(perlbmk):
5773671Sbinkertn@umich.edu    def ref(self, isa, os):
5785361Srstrong@cs.ucsd.edu        self.simpoint = 141*100E6
5793671Sbinkertn@umich.edu        self.args = [ '-I', 'lib', 'diffmail.pl', '2', '550', '15', '24',
5803671Sbinkertn@umich.edu                      '23', '100' ]
5813671Sbinkertn@umich.edu
5823671Sbinkertn@umich.edu    def train(self, isa, os):
5833671Sbinkertn@umich.edu        self.args = [ '-I', 'lib', 'diffmail.pl', '2', '350', '15', '24',
5843671Sbinkertn@umich.edu                      '23', '150' ]
5853671Sbinkertn@umich.edu
5863671Sbinkertn@umich.educlass perlbmk_scrabbl(perlbmk):
5873671Sbinkertn@umich.edu    def train(self, isa, os):
5883671Sbinkertn@umich.edu        self.args = [ '-I.', '-I', 'lib', 'scrabbl.pl' ]
5893671Sbinkertn@umich.edu        self.stdin = 'scrabbl.in'
5903671Sbinkertn@umich.edu
5913671Sbinkertn@umich.educlass perlbmk_makerand(perlbmk):
5923671Sbinkertn@umich.edu    def ref(self, isa, os):
5935361Srstrong@cs.ucsd.edu        self.simpoint = 11*100E6
5943671Sbinkertn@umich.edu        self.args = [ '-I', 'lib',  'makerand.pl' ]
5953671Sbinkertn@umich.edu
5963671Sbinkertn@umich.edu    def lgred(self, isa, os):
5973671Sbinkertn@umich.edu        self.args = [ '-I.', '-I', 'lib', 'lgred.makerand.pl' ]
5983671Sbinkertn@umich.edu
5993671Sbinkertn@umich.edu    def mdred(self, isa, os):
6003671Sbinkertn@umich.edu        self.args = [ '-I.', '-I', 'lib', 'mdred.makerand.pl' ]
6013671Sbinkertn@umich.edu
6023671Sbinkertn@umich.edu    def smred(self, isa, os):
6033671Sbinkertn@umich.edu        self.args = [ '-I.', '-I', 'lib', 'smred.makerand.pl' ]
6043671Sbinkertn@umich.edu
6053671Sbinkertn@umich.educlass perlbmk_perfect(perlbmk):
6063671Sbinkertn@umich.edu    def ref(self, isa, os):
6075361Srstrong@cs.ucsd.edu        self.simpoint = 5*100E6
6083671Sbinkertn@umich.edu        self.args = [ '-I', 'lib',  'perfect.pl', 'b', '3', 'm', '4' ]
6093671Sbinkertn@umich.edu
6103671Sbinkertn@umich.edu    def train(self, isa, os):
6113671Sbinkertn@umich.edu        self.args = [ '-I', 'lib', 'perfect.pl', 'b',  '3' ]
6123671Sbinkertn@umich.edu
6133671Sbinkertn@umich.educlass perlbmk_splitmail1(perlbmk):
6143671Sbinkertn@umich.edu    def ref(self, isa, os):
6155361Srstrong@cs.ucsd.edu        self.simpoint = 405*100E6
6163671Sbinkertn@umich.edu        self.args = [ '-I', 'lib', 'splitmail.pl', '850', '5', '19',
6173671Sbinkertn@umich.edu                      '18', '1500' ]
6183671Sbinkertn@umich.edu
6193671Sbinkertn@umich.educlass perlbmk_splitmail2(perlbmk):
6203671Sbinkertn@umich.edu    def ref(self, isa, os):
6213671Sbinkertn@umich.edu        self.args = [ '-I', 'lib', 'splitmail.pl', '704', '12', '26',
6223671Sbinkertn@umich.edu                      '16', '836' ]
6233671Sbinkertn@umich.edu
6243671Sbinkertn@umich.educlass perlbmk_splitmail3(perlbmk):
6253671Sbinkertn@umich.edu    def ref(self, isa, os):
6263671Sbinkertn@umich.edu        self.args = [ '-I', 'lib', 'splitmail.pl', '535', '13', '25',
6273671Sbinkertn@umich.edu                      '24', '1091' ]
6283671Sbinkertn@umich.edu
6293671Sbinkertn@umich.educlass perlbmk_splitmail4(perlbmk):
6303671Sbinkertn@umich.edu    def ref(self, isa, os):
6313671Sbinkertn@umich.edu        self.args = [ '-I', 'lib', 'splitmail.pl', '957', '12', '23',
6323671Sbinkertn@umich.edu                      '26', '1014' ]
6333671Sbinkertn@umich.edu
6343671Sbinkertn@umich.educlass twolf(Benchmark):
6353671Sbinkertn@umich.edu    name = 'twolf'
6363671Sbinkertn@umich.edu    number = 300
6373671Sbinkertn@umich.edu    lang = 'C'
6383671Sbinkertn@umich.edu    stdin = None
6393671Sbinkertn@umich.edu
6403671Sbinkertn@umich.edu    def test(self, isa, os):
6413671Sbinkertn@umich.edu        self.args = [ 'test' ]
6423671Sbinkertn@umich.edu
6433671Sbinkertn@umich.edu    def train(self, isa, os):
6443671Sbinkertn@umich.edu        self.args = [ 'train' ]
6453671Sbinkertn@umich.edu
6463671Sbinkertn@umich.edu    def ref(self, isa, os):
6475361Srstrong@cs.ucsd.edu        self.simpoint = 1066*100E6
6483671Sbinkertn@umich.edu        self.args = [ 'ref' ]
6493671Sbinkertn@umich.edu
6503671Sbinkertn@umich.edu    def smred(self, isa, os):
6513671Sbinkertn@umich.edu        self.args = [ 'smred' ]
6523671Sbinkertn@umich.edu
6533671Sbinkertn@umich.edu    def mdred(self, isa, os):
6543671Sbinkertn@umich.edu        self.args = [ 'mdred' ]
6553671Sbinkertn@umich.edu
6563671Sbinkertn@umich.edu    def lgred(self, isa, os):
6573671Sbinkertn@umich.edu        self.args = [ 'lgred' ]
6583671Sbinkertn@umich.edu
6593671Sbinkertn@umich.educlass vortex(Benchmark):
6603671Sbinkertn@umich.edu    name = 'vortex'
6613671Sbinkertn@umich.edu    number = 255
6623671Sbinkertn@umich.edu    lang = 'C'
6633671Sbinkertn@umich.edu    stdin = None
6643671Sbinkertn@umich.edu
6653671Sbinkertn@umich.edu    def __init__(self, isa, os, input_set):
6663671Sbinkertn@umich.edu        if isa == 'alpha':
6673671Sbinkertn@umich.edu            self.endian = 'lendian'
6684116Sgblack@eecs.umich.edu        elif (isa == 'sparc' or isa == 'sparc32'):
6694116Sgblack@eecs.umich.edu            self.endian = 'bendian'
6703671Sbinkertn@umich.edu        else:
6713671Sbinkertn@umich.edu            raise AttributeError, "unknown ISA %s" % isa
6723671Sbinkertn@umich.edu
6733671Sbinkertn@umich.edu        super(vortex, self).__init__(isa, os, input_set)
6743671Sbinkertn@umich.edu
6753671Sbinkertn@umich.edu    def test(self, isa, os):
6763671Sbinkertn@umich.edu        self.args = [ '%s.raw' % self.endian ]
6773671Sbinkertn@umich.edu        self.output = 'vortex.out'
6783671Sbinkertn@umich.edu
6793671Sbinkertn@umich.edu    def train(self, isa, os):
6803671Sbinkertn@umich.edu        self.args = [ '%s.raw' % self.endian ]
6813671Sbinkertn@umich.edu        self.output = 'vortex.out'
6823671Sbinkertn@umich.edu
6833671Sbinkertn@umich.edu    def smred(self, isa, os):
6843671Sbinkertn@umich.edu        self.args = [ '%s.raw' % self.endian ]
6853671Sbinkertn@umich.edu        self.output = 'vortex.out'
6863671Sbinkertn@umich.edu
6873671Sbinkertn@umich.edu    def mdred(self, isa, os):
6883671Sbinkertn@umich.edu        self.args = [ '%s.raw' % self.endian ]
6893671Sbinkertn@umich.edu        self.output = 'vortex.out'
6903671Sbinkertn@umich.edu
6913671Sbinkertn@umich.edu    def lgred(self, isa, os):
6923671Sbinkertn@umich.edu        self.args = [ '%s.raw' % self.endian ]
6933671Sbinkertn@umich.edu        self.output = 'vortex.out'
6943671Sbinkertn@umich.edu
6953671Sbinkertn@umich.educlass vortex1(vortex):
6963671Sbinkertn@umich.edu    def ref(self, isa, os):
6973671Sbinkertn@umich.edu        self.args = [ '%s1.raw' % self.endian ]
6983671Sbinkertn@umich.edu        self.output = 'vortex1.out'
6995361Srstrong@cs.ucsd.edu        self.simpoint = 271*100E6
7003671Sbinkertn@umich.edu
7013671Sbinkertn@umich.edu
7023671Sbinkertn@umich.educlass vortex2(vortex):
7033671Sbinkertn@umich.edu    def ref(self, isa, os):
7045361Srstrong@cs.ucsd.edu        self.simpoint = 1024*100E6
7053671Sbinkertn@umich.edu        self.args = [ '%s2.raw' % self.endian ]
7063671Sbinkertn@umich.edu        self.output = 'vortex2.out'
7073671Sbinkertn@umich.edu
7083671Sbinkertn@umich.educlass vortex3(vortex):
7093671Sbinkertn@umich.edu    def ref(self, isa, os):
7105361Srstrong@cs.ucsd.edu        self.simpoint = 564*100E6
7113671Sbinkertn@umich.edu        self.args = [ '%s3.raw' % self.endian ]
7123671Sbinkertn@umich.edu        self.output = 'vortex3.out'
7133671Sbinkertn@umich.edu
7143671Sbinkertn@umich.educlass vpr(MinneDefaultBenchmark):
7153671Sbinkertn@umich.edu    name = 'vpr'
7163671Sbinkertn@umich.edu    number = 175
7173671Sbinkertn@umich.edu    lang = 'C'
7183671Sbinkertn@umich.edu
7193671Sbinkertn@umich.edu# not sure about vpr minnespec place.in
7203671Sbinkertn@umich.educlass vpr_place(vpr):
7213671Sbinkertn@umich.edu    args = [ 'net.in', 'arch.in', 'place.out', 'dum.out', '-nodisp',
7223671Sbinkertn@umich.edu             '-place_only', '-init_t', '5', '-exit_t', '0.005',
7233671Sbinkertn@umich.edu             '-alpha_t', '0.9412', '-inner_num', '2' ]
7243671Sbinkertn@umich.edu    output = 'place_log.out'
7253671Sbinkertn@umich.edu
7263671Sbinkertn@umich.educlass vpr_route(vpr):
7275361Srstrong@cs.ucsd.edu    simpoint = 476*100E6
7283671Sbinkertn@umich.edu    args = [ 'net.in', 'arch.in', 'place.in', 'route.out', '-nodisp',
7293671Sbinkertn@umich.edu             '-route_only', '-route_chan_width', '15',
7303671Sbinkertn@umich.edu             '-pres_fac_mult', '2', '-acc_fac', '1',
7313671Sbinkertn@umich.edu             '-first_iter_pres_fac', '4', '-initial_pres_fac', '8' ]
7323671Sbinkertn@umich.edu    output = 'route_log.out'
7333671Sbinkertn@umich.edu
7343671Sbinkertn@umich.eduall = [ ammp, applu, apsi, art110, art470, equake, facerec, fma3d, galgel,
7353671Sbinkertn@umich.edu        lucas, mesa, mgrid, sixtrack, swim, wupwise, bzip2_source,
7363671Sbinkertn@umich.edu        bzip2_graphic, bzip2_program, crafty, eon_kajiya, eon_cook,
7373671Sbinkertn@umich.edu        eon_rushmeier, gap, gcc_166, gcc_200, gcc_expr, gcc_integrate,
7383671Sbinkertn@umich.edu        gcc_scilab, gzip_source, gzip_log, gzip_graphic, gzip_random,
7393671Sbinkertn@umich.edu        gzip_program, mcf, parser, perlbmk_diffmail, perlbmk_makerand,
7403671Sbinkertn@umich.edu        perlbmk_perfect, perlbmk_splitmail1, perlbmk_splitmail2,
7413671Sbinkertn@umich.edu        perlbmk_splitmail3, perlbmk_splitmail4, twolf, vortex1, vortex2,
7423671Sbinkertn@umich.edu        vortex3, vpr_place, vpr_route ]
7433671Sbinkertn@umich.edu
7443671Sbinkertn@umich.edu__all__ = [ x.__name__ for x in all ]
7453671Sbinkertn@umich.edu
7463671Sbinkertn@umich.eduif __name__ == '__main__':
7473671Sbinkertn@umich.edu    from pprint import pprint
7483671Sbinkertn@umich.edu    for bench in all:
7493671Sbinkertn@umich.edu        for input_set in 'ref', 'test', 'train':
7503671Sbinkertn@umich.edu            print 'class: %s' % bench.__name__
7513671Sbinkertn@umich.edu            x = bench('alpha', 'tru64', input_set)
7523671Sbinkertn@umich.edu            print '%s: %s' % (x, input_set)
7533671Sbinkertn@umich.edu            pprint(x.makeLiveProcessArgs())
7543671Sbinkertn@umich.edu            print
755