cpu2000.py revision 12564
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
2912564Sgabeblack@google.comfrom __future__ import print_function
3012564Sgabeblack@google.com
313671Sbinkertn@umich.eduimport os
323671Sbinkertn@umich.eduimport sys
333671Sbinkertn@umich.edufrom os.path import basename, exists, join as joinpath, normpath
343671Sbinkertn@umich.edufrom os.path import isdir, isfile, islink
353671Sbinkertn@umich.edu
366028Ssteve.reinhardt@amd.comspec_dist = os.environ.get('M5_CPU2000', '/dist/m5/cpu2000')
373671Sbinkertn@umich.edu
383671Sbinkertn@umich.edudef copyfiles(srcdir, dstdir):
393671Sbinkertn@umich.edu    from filecmp import cmp as filecmp
403671Sbinkertn@umich.edu    from shutil import copyfile
413671Sbinkertn@umich.edu
423671Sbinkertn@umich.edu    srcdir = normpath(srcdir)
433671Sbinkertn@umich.edu    dstdir = normpath(dstdir)
443671Sbinkertn@umich.edu
453671Sbinkertn@umich.edu    if not isdir(dstdir):
463671Sbinkertn@umich.edu        os.mkdir(dstdir)
473671Sbinkertn@umich.edu
483671Sbinkertn@umich.edu    for root, dirs, files in os.walk(srcdir):
493671Sbinkertn@umich.edu        root = normpath(root)
503671Sbinkertn@umich.edu        prefix = os.path.commonprefix([root, srcdir])
513671Sbinkertn@umich.edu
523671Sbinkertn@umich.edu        root = root[len(prefix):]
533671Sbinkertn@umich.edu        if root.startswith('/'):
543671Sbinkertn@umich.edu            root = root[1:]
553671Sbinkertn@umich.edu
563671Sbinkertn@umich.edu        for entry in dirs:
573671Sbinkertn@umich.edu            newdir = joinpath(dstdir, root, entry)
583671Sbinkertn@umich.edu            if not isdir(newdir):
593671Sbinkertn@umich.edu                os.mkdir(newdir)
603671Sbinkertn@umich.edu
613671Sbinkertn@umich.edu        for entry in files:
623671Sbinkertn@umich.edu            dest = normpath(joinpath(dstdir, root, entry))
633671Sbinkertn@umich.edu            src = normpath(joinpath(srcdir, root, entry))
643671Sbinkertn@umich.edu            if not isfile(dest) or not filecmp(src, dest):
653671Sbinkertn@umich.edu                copyfile(src, dest)
663671Sbinkertn@umich.edu
673671Sbinkertn@umich.edu    # some of the spec benchmarks expect to be run from one directory up.
683671Sbinkertn@umich.edu    # just create some symlinks that solve the problem
693671Sbinkertn@umich.edu    inlink = joinpath(dstdir, 'input')
703671Sbinkertn@umich.edu    outlink = joinpath(dstdir, 'output')
713671Sbinkertn@umich.edu    if not exists(inlink):
723671Sbinkertn@umich.edu        os.symlink('.', inlink)
733671Sbinkertn@umich.edu    if not exists(outlink):
743671Sbinkertn@umich.edu        os.symlink('.', outlink)
753671Sbinkertn@umich.edu
763671Sbinkertn@umich.educlass Benchmark(object):
773671Sbinkertn@umich.edu    def __init__(self, isa, os, input_set):
783671Sbinkertn@umich.edu        if not hasattr(self.__class__, 'name'):
793671Sbinkertn@umich.edu            self.name = self.__class__.__name__
803671Sbinkertn@umich.edu
813671Sbinkertn@umich.edu        if not hasattr(self.__class__, 'binary'):
823671Sbinkertn@umich.edu            self.binary = self.name
833671Sbinkertn@umich.edu
843671Sbinkertn@umich.edu        if not hasattr(self.__class__, 'args'):
853671Sbinkertn@umich.edu            self.args = []
863671Sbinkertn@umich.edu
873671Sbinkertn@umich.edu        if not hasattr(self.__class__, 'output'):
883671Sbinkertn@umich.edu            self.output = '%s.out' % self.name
893671Sbinkertn@umich.edu
905361Srstrong@cs.ucsd.edu        if not hasattr(self.__class__, 'simpoint'):
915361Srstrong@cs.ucsd.edu            self.simpoint = None
925361Srstrong@cs.ucsd.edu
933671Sbinkertn@umich.edu        try:
943671Sbinkertn@umich.edu            func = getattr(self.__class__, input_set)
953671Sbinkertn@umich.edu        except AttributeError:
963671Sbinkertn@umich.edu            raise AttributeError, \
973671Sbinkertn@umich.edu                  'The benchmark %s does not have the %s input set' % \
983671Sbinkertn@umich.edu                  (self.name, input_set)
993671Sbinkertn@umich.edu
1003671Sbinkertn@umich.edu        executable = joinpath(spec_dist, 'binaries', isa, os, self.binary)
1013671Sbinkertn@umich.edu        if not isfile(executable):
1023671Sbinkertn@umich.edu            raise AttributeError, '%s not found' % executable
1033671Sbinkertn@umich.edu        self.executable = executable
1043671Sbinkertn@umich.edu
1053671Sbinkertn@umich.edu        # root of tree for input & output data files
1063671Sbinkertn@umich.edu        data_dir = joinpath(spec_dist, 'data', self.name)
1073671Sbinkertn@umich.edu        # optional subtree with files shared across input sets
1083671Sbinkertn@umich.edu        all_dir = joinpath(data_dir, 'all')
1093671Sbinkertn@umich.edu        # dirs for input & output files for this input set
1103671Sbinkertn@umich.edu        inputs_dir = joinpath(data_dir, input_set, 'input')
1113671Sbinkertn@umich.edu        outputs_dir = joinpath(data_dir, input_set, 'output')
1124116Sgblack@eecs.umich.edu        # keep around which input set was specified
1134116Sgblack@eecs.umich.edu        self.input_set = input_set
1143671Sbinkertn@umich.edu
1153671Sbinkertn@umich.edu        if not isdir(inputs_dir):
1163671Sbinkertn@umich.edu            raise AttributeError, '%s not found' % inputs_dir
1173671Sbinkertn@umich.edu
1183671Sbinkertn@umich.edu        self.inputs_dir = [ inputs_dir ]
1193671Sbinkertn@umich.edu        if isdir(all_dir):
1203671Sbinkertn@umich.edu            self.inputs_dir += [ joinpath(all_dir, 'input') ]
1213671Sbinkertn@umich.edu        if isdir(outputs_dir):
1223671Sbinkertn@umich.edu            self.outputs_dir = outputs_dir
1233671Sbinkertn@umich.edu
1243671Sbinkertn@umich.edu        if not hasattr(self.__class__, 'stdin'):
1253671Sbinkertn@umich.edu            self.stdin = joinpath(inputs_dir, '%s.in' % self.name)
1263671Sbinkertn@umich.edu            if not isfile(self.stdin):
1273671Sbinkertn@umich.edu                self.stdin = None
1283671Sbinkertn@umich.edu
1293671Sbinkertn@umich.edu        if not hasattr(self.__class__, 'stdout'):
1303671Sbinkertn@umich.edu            self.stdout = joinpath(outputs_dir, '%s.out' % self.name)
1313671Sbinkertn@umich.edu            if not isfile(self.stdout):
1323671Sbinkertn@umich.edu                self.stdout = None
1333671Sbinkertn@umich.edu
1343671Sbinkertn@umich.edu        func(self, isa, os)
1353671Sbinkertn@umich.edu
13611851Sbrandon.potter@amd.com    def makeProcessArgs(self, **kwargs):
13711851Sbrandon.potter@amd.com        # set up default args for Process object
1383671Sbinkertn@umich.edu        process_args = {}
1394555Sbinkertn@umich.edu        process_args['cmd'] = [ self.name ] + self.args
1403671Sbinkertn@umich.edu        process_args['executable'] = self.executable
1413671Sbinkertn@umich.edu        if self.stdin:
1423671Sbinkertn@umich.edu            process_args['input'] = self.stdin
1433671Sbinkertn@umich.edu        if self.stdout:
1443671Sbinkertn@umich.edu            process_args['output'] = self.stdout
1455378Ssaidi@eecs.umich.edu        if self.simpoint:
1465378Ssaidi@eecs.umich.edu            process_args['simpoint'] = self.simpoint
1473671Sbinkertn@umich.edu        # explicit keywords override defaults
1483671Sbinkertn@umich.edu        process_args.update(kwargs)
1493671Sbinkertn@umich.edu
1503671Sbinkertn@umich.edu        return process_args
1513671Sbinkertn@umich.edu
15211851Sbrandon.potter@amd.com    def makeProcess(self, **kwargs):
15311851Sbrandon.potter@amd.com        process_args = self.makeProcessArgs(**kwargs)
1543671Sbinkertn@umich.edu
1553671Sbinkertn@umich.edu        # figure out working directory: use m5's outdir unless
15611851Sbrandon.potter@amd.com        # overridden by Process's cwd param
1573671Sbinkertn@umich.edu        cwd = process_args.get('cwd')
1585361Srstrong@cs.ucsd.edu
1593671Sbinkertn@umich.edu        if not cwd:
1608246Snate@binkert.org            from m5 import options
1613671Sbinkertn@umich.edu            cwd = options.outdir
1623671Sbinkertn@umich.edu            process_args['cwd'] = cwd
1633671Sbinkertn@umich.edu        if not isdir(cwd):
1643671Sbinkertn@umich.edu            os.makedirs(cwd)
1653671Sbinkertn@umich.edu        # copy input files to working directory
1663671Sbinkertn@umich.edu        for d in self.inputs_dir:
1673671Sbinkertn@umich.edu            copyfiles(d, cwd)
16811851Sbrandon.potter@amd.com        # generate Process object
16911851Sbrandon.potter@amd.com        from m5.objects import Process
17011851Sbrandon.potter@amd.com        return Process(**process_args)
1713671Sbinkertn@umich.edu
1723671Sbinkertn@umich.edu    def __str__(self):
1733671Sbinkertn@umich.edu        return self.name
1743671Sbinkertn@umich.edu
1753671Sbinkertn@umich.educlass DefaultBenchmark(Benchmark):
1763671Sbinkertn@umich.edu    def ref(self, isa, os): pass
1773671Sbinkertn@umich.edu    def test(self, isa, os): pass
1783671Sbinkertn@umich.edu    def train(self, isa, os): pass
1793671Sbinkertn@umich.edu
1803671Sbinkertn@umich.educlass MinneDefaultBenchmark(DefaultBenchmark):
1813671Sbinkertn@umich.edu    def smred(self, isa, os): pass
1823671Sbinkertn@umich.edu    def mdred(self, isa, os): pass
1833671Sbinkertn@umich.edu    def lgred(self, isa, os): pass
1843671Sbinkertn@umich.edu
1853671Sbinkertn@umich.educlass ammp(MinneDefaultBenchmark):
1863671Sbinkertn@umich.edu    name = 'ammp'
1873671Sbinkertn@umich.edu    number = 188
1883671Sbinkertn@umich.edu    lang = 'C'
1895361Srstrong@cs.ucsd.edu    simpoint = 108*100E6
1903671Sbinkertn@umich.edu
1913671Sbinkertn@umich.educlass applu(MinneDefaultBenchmark):
1923671Sbinkertn@umich.edu    name = 'applu'
1933671Sbinkertn@umich.edu    number = 173
1943671Sbinkertn@umich.edu    lang = 'F77'
1955361Srstrong@cs.ucsd.edu    simpoint = 2179*100E6
1963671Sbinkertn@umich.edu
1973671Sbinkertn@umich.educlass apsi(MinneDefaultBenchmark):
1983671Sbinkertn@umich.edu    name = 'apsi'
1993671Sbinkertn@umich.edu    number = 301
2003671Sbinkertn@umich.edu    lang = 'F77'
2015361Srstrong@cs.ucsd.edu    simpoint = 3408*100E6
2023671Sbinkertn@umich.edu
2033671Sbinkertn@umich.educlass art(DefaultBenchmark):
2043671Sbinkertn@umich.edu    name = 'art'
2053671Sbinkertn@umich.edu    number = 179
2063671Sbinkertn@umich.edu    lang = 'C'
2073671Sbinkertn@umich.edu
2083671Sbinkertn@umich.edu    def test(self, isa, os):
2093671Sbinkertn@umich.edu        self.args = [ '-scanfile', 'c756hel.in',
2103671Sbinkertn@umich.edu                      '-trainfile1', 'a10.img',
2113671Sbinkertn@umich.edu                      '-stride', '2',
2123671Sbinkertn@umich.edu                      '-startx', '134',
2133671Sbinkertn@umich.edu                      '-starty', '220',
2143671Sbinkertn@umich.edu                      '-endx', '139',
2153671Sbinkertn@umich.edu                      '-endy', '225',
2163671Sbinkertn@umich.edu                      '-objects', '1' ]
2173671Sbinkertn@umich.edu        self.output = 'test.out'
2183671Sbinkertn@umich.edu
2193671Sbinkertn@umich.edu    def train(self, isa, os):
2203671Sbinkertn@umich.edu        self.args = [ '-scanfile', 'c756hel.in',
2213671Sbinkertn@umich.edu                      '-trainfile1', 'a10.img',
2223671Sbinkertn@umich.edu                      '-stride', '2',
2233671Sbinkertn@umich.edu                      '-startx', '134',
2243671Sbinkertn@umich.edu                      '-starty', '220',
2253671Sbinkertn@umich.edu                      '-endx', '184',
2263671Sbinkertn@umich.edu                      '-endy', '240',
2273671Sbinkertn@umich.edu                      '-objects', '3' ]
2283671Sbinkertn@umich.edu        self.output = 'train.out'
2293671Sbinkertn@umich.edu
2303671Sbinkertn@umich.edu    def lgred(self, isa, os):
2313671Sbinkertn@umich.edu        self.args = ['-scanfile', 'c756hel.in',
2323671Sbinkertn@umich.edu                     '-trainfile1', 'a10.img',
2333671Sbinkertn@umich.edu                     '-stride', '5',
2343671Sbinkertn@umich.edu                     '-startx', '134',
2353671Sbinkertn@umich.edu                     '-starty', '220',
2363671Sbinkertn@umich.edu                     '-endx', '184',
2373671Sbinkertn@umich.edu                     '-endy', '240',
2383671Sbinkertn@umich.edu                     '-objects', '1' ]
2393671Sbinkertn@umich.edu        self.output = 'lgred.out'
2403671Sbinkertn@umich.edu
2413671Sbinkertn@umich.edu
2423671Sbinkertn@umich.educlass art110(art):
2433671Sbinkertn@umich.edu    def ref(self, isa, os):
2443671Sbinkertn@umich.edu        self.args = [ '-scanfile', 'c756hel.in',
2453671Sbinkertn@umich.edu                      '-trainfile1', 'a10.img',
2463671Sbinkertn@umich.edu                      '-trainfile2', 'hc.img',
2473671Sbinkertn@umich.edu                      '-stride', '2',
2483671Sbinkertn@umich.edu                      '-startx', '110',
2493671Sbinkertn@umich.edu                      '-starty', '200',
2503671Sbinkertn@umich.edu                      '-endx', '160',
2513671Sbinkertn@umich.edu                      '-endy', '240',
2523671Sbinkertn@umich.edu                      '-objects', '10' ]
2533671Sbinkertn@umich.edu        self.output = 'ref.1.out'
2545361Srstrong@cs.ucsd.edu        self.simpoint = 340*100E6
2553671Sbinkertn@umich.edu
2563671Sbinkertn@umich.educlass art470(art):
2573671Sbinkertn@umich.edu    def ref(self, isa, os):
2583671Sbinkertn@umich.edu        self.args = [ '-scanfile', 'c756hel.in',
2593671Sbinkertn@umich.edu                      '-trainfile1', 'a10.img',
2603671Sbinkertn@umich.edu                      '-trainfile2', 'hc.img',
2613671Sbinkertn@umich.edu                      '-stride', '2',
2623671Sbinkertn@umich.edu                      '-startx', '470',
2633671Sbinkertn@umich.edu                      '-starty', '140',
2643671Sbinkertn@umich.edu                      '-endx', '520',
2653671Sbinkertn@umich.edu                      '-endy', '180',
2663671Sbinkertn@umich.edu                      '-objects', '10' ]
2673671Sbinkertn@umich.edu        self.output = 'ref.2.out'
2685361Srstrong@cs.ucsd.edu        self.simpoint = 365*100E6
2693671Sbinkertn@umich.edu
2703671Sbinkertn@umich.educlass equake(DefaultBenchmark):
2713671Sbinkertn@umich.edu    name = 'equake'
2723671Sbinkertn@umich.edu    number = 183
2733671Sbinkertn@umich.edu    lang = 'C'
2745361Srstrong@cs.ucsd.edu    simpoint = 812*100E6
2753671Sbinkertn@umich.edu
2763671Sbinkertn@umich.edu    def lgred(self, isa, os): pass
2773671Sbinkertn@umich.edu
2783671Sbinkertn@umich.educlass facerec(MinneDefaultBenchmark):
2793671Sbinkertn@umich.edu    name = 'facerec'
2803671Sbinkertn@umich.edu    number = 187
2813671Sbinkertn@umich.edu    lang = 'F'
2825361Srstrong@cs.ucsd.edu    simpoint = 375*100E6
2833671Sbinkertn@umich.edu
2843671Sbinkertn@umich.educlass fma3d(MinneDefaultBenchmark):
2853671Sbinkertn@umich.edu    name = 'fma3d'
2863671Sbinkertn@umich.edu    number = 191
2873671Sbinkertn@umich.edu    lang = 'F'
2885361Srstrong@cs.ucsd.edu    simpoint = 2541*100E6
2893671Sbinkertn@umich.edu
2903671Sbinkertn@umich.educlass galgel(MinneDefaultBenchmark):
2913671Sbinkertn@umich.edu    name = 'galgel'
2923671Sbinkertn@umich.edu    number = 178
2933671Sbinkertn@umich.edu    lang = 'F'
2945361Srstrong@cs.ucsd.edu    simpoint = 2491*100E6
2953671Sbinkertn@umich.edu
2963671Sbinkertn@umich.educlass lucas(MinneDefaultBenchmark):
2973671Sbinkertn@umich.edu    name = 'lucas'
2983671Sbinkertn@umich.edu    number = 189
2993671Sbinkertn@umich.edu    lang = 'F'
3005361Srstrong@cs.ucsd.edu    simpoint = 545*100E6
3013671Sbinkertn@umich.edu
3023671Sbinkertn@umich.educlass mesa(Benchmark):
3033671Sbinkertn@umich.edu    name = 'mesa'
3043671Sbinkertn@umich.edu    number = 177
3053671Sbinkertn@umich.edu    lang = 'C'
3063671Sbinkertn@umich.edu    stdin = None
3073671Sbinkertn@umich.edu
3083671Sbinkertn@umich.edu    def __set_args(self, frames):
3093671Sbinkertn@umich.edu        self.args = [ '-frames', frames, '-meshfile', '%s.in' % self.name,
3103671Sbinkertn@umich.edu                      '-ppmfile', '%s.ppm' % self.name ]
3113671Sbinkertn@umich.edu
3123671Sbinkertn@umich.edu    def test(self, isa, os):
3133671Sbinkertn@umich.edu        self.__set_args('10')
3143671Sbinkertn@umich.edu
3153671Sbinkertn@umich.edu    def train(self, isa, os):
3163671Sbinkertn@umich.edu        self.__set_args('500')
3173671Sbinkertn@umich.edu
3183671Sbinkertn@umich.edu    def ref(self, isa, os):
3193671Sbinkertn@umich.edu        self.__set_args('1000')
3205361Srstrong@cs.ucsd.edu        self.simpoint = 1135*100E6
3213671Sbinkertn@umich.edu
3223671Sbinkertn@umich.edu    def lgred(self, isa, os):
3233671Sbinkertn@umich.edu        self.__set_args('1')
3243671Sbinkertn@umich.edu
3253671Sbinkertn@umich.educlass mgrid(MinneDefaultBenchmark):
3263671Sbinkertn@umich.edu    name = 'mgrid'
3273671Sbinkertn@umich.edu    number = 172
3283671Sbinkertn@umich.edu    lang = 'F77'
3295361Srstrong@cs.ucsd.edu    simpoint = 3292*100E6
3303671Sbinkertn@umich.edu
3313671Sbinkertn@umich.educlass sixtrack(DefaultBenchmark):
3323671Sbinkertn@umich.edu    name = 'sixtrack'
3333671Sbinkertn@umich.edu    number = 200
3343671Sbinkertn@umich.edu    lang = 'F77'
3355361Srstrong@cs.ucsd.edu    simpoint = 3043*100E6
3363671Sbinkertn@umich.edu
3373671Sbinkertn@umich.edu    def lgred(self, isa, os): pass
3383671Sbinkertn@umich.edu
3393671Sbinkertn@umich.educlass swim(MinneDefaultBenchmark):
3403671Sbinkertn@umich.edu    name = 'swim'
3413671Sbinkertn@umich.edu    number = 171
3423671Sbinkertn@umich.edu    lang = 'F77'
3435361Srstrong@cs.ucsd.edu    simpoint = 2079*100E6
3443671Sbinkertn@umich.edu
3453671Sbinkertn@umich.educlass wupwise(DefaultBenchmark):
3463671Sbinkertn@umich.edu    name = 'wupwise'
3473671Sbinkertn@umich.edu    number = 168
3483671Sbinkertn@umich.edu    lang = 'F77'
3495361Srstrong@cs.ucsd.edu    simpoint = 3237*100E6
3503671Sbinkertn@umich.edu
3513671Sbinkertn@umich.edu    def lgred(self, isa, os): pass
3523671Sbinkertn@umich.edu
3533671Sbinkertn@umich.educlass bzip2(DefaultBenchmark):
3543671Sbinkertn@umich.edu    name = 'bzip2'
3553671Sbinkertn@umich.edu    number = 256
3563671Sbinkertn@umich.edu    lang = 'C'
3573671Sbinkertn@umich.edu
3583671Sbinkertn@umich.edu    def test(self, isa, os):
3593671Sbinkertn@umich.edu        self.args = [ 'input.random' ]
3603671Sbinkertn@umich.edu
3613671Sbinkertn@umich.edu    def train(self, isa, os):
3623671Sbinkertn@umich.edu        self.args = [ 'input.compressed' ]
3633671Sbinkertn@umich.edu
3643671Sbinkertn@umich.educlass bzip2_source(bzip2):
3653671Sbinkertn@umich.edu    def ref(self, isa, os):
3665361Srstrong@cs.ucsd.edu        self.simpoint = 977*100E6
3673671Sbinkertn@umich.edu        self.args = [ 'input.source', '58' ]
3683671Sbinkertn@umich.edu
3693671Sbinkertn@umich.edu    def lgred(self, isa, os):
3703671Sbinkertn@umich.edu        self.args = [ 'input.source', '1' ]
3713671Sbinkertn@umich.edu
3723671Sbinkertn@umich.educlass bzip2_graphic(bzip2):
3733671Sbinkertn@umich.edu    def ref(self, isa, os):
3745361Srstrong@cs.ucsd.edu        self.simpoint = 718*100E6
3753671Sbinkertn@umich.edu        self.args = [ 'input.graphic', '58' ]
3763671Sbinkertn@umich.edu
3773671Sbinkertn@umich.edu    def lgred(self, isa, os):
3783671Sbinkertn@umich.edu        self.args = [ 'input.graphic', '1' ]
3793671Sbinkertn@umich.edu
3803671Sbinkertn@umich.educlass bzip2_program(bzip2):
3813671Sbinkertn@umich.edu    def ref(self, isa, os):
3825361Srstrong@cs.ucsd.edu        self.simpoint = 458*100E6
3833671Sbinkertn@umich.edu        self.args = [ 'input.program', '58' ]
3843671Sbinkertn@umich.edu
3853671Sbinkertn@umich.edu    def lgred(self, isa, os):
3863671Sbinkertn@umich.edu        self.args = [ 'input.program', '1' ]
3873671Sbinkertn@umich.edu
3883671Sbinkertn@umich.educlass crafty(MinneDefaultBenchmark):
3893671Sbinkertn@umich.edu    name = 'crafty'
3903671Sbinkertn@umich.edu    number = 186
3913671Sbinkertn@umich.edu    lang = 'C'
3925361Srstrong@cs.ucsd.edu    simpoint = 774*100E6
3933671Sbinkertn@umich.edu
3943671Sbinkertn@umich.educlass eon(MinneDefaultBenchmark):
3953671Sbinkertn@umich.edu    name = 'eon'
3963671Sbinkertn@umich.edu    number = 252
3973671Sbinkertn@umich.edu    lang = 'CXX'
3983671Sbinkertn@umich.edu    stdin = None
3993671Sbinkertn@umich.edu
4003671Sbinkertn@umich.educlass eon_kajiya(eon):
4013671Sbinkertn@umich.edu    args = [ 'chair.control.kajiya', 'chair.camera', 'chair.surfaces',
4023671Sbinkertn@umich.edu             'chair.kajiya.ppm', 'ppm', 'pixels_out.kajiya']
4033671Sbinkertn@umich.edu    output = 'kajiya_log.out'
4043671Sbinkertn@umich.edu
4053671Sbinkertn@umich.edu
4063671Sbinkertn@umich.educlass eon_cook(eon):
4073671Sbinkertn@umich.edu    args = [ 'chair.control.cook', 'chair.camera', 'chair.surfaces',
4083671Sbinkertn@umich.edu             'chair.cook.ppm', 'ppm', 'pixels_out.cook' ]
4093671Sbinkertn@umich.edu    output = 'cook_log.out'
4103671Sbinkertn@umich.edu
4113671Sbinkertn@umich.educlass eon_rushmeier(eon):
4123671Sbinkertn@umich.edu    args = [ 'chair.control.rushmeier', 'chair.camera', 'chair.surfaces',
4133671Sbinkertn@umich.edu             'chair.rushmeier.ppm', 'ppm', 'pixels_out.rushmeier' ]
4143671Sbinkertn@umich.edu    output = 'rushmeier_log.out'
4155361Srstrong@cs.ucsd.edu    simpoint = 403*100E6
4163671Sbinkertn@umich.edu
4173671Sbinkertn@umich.educlass gap(DefaultBenchmark):
4183671Sbinkertn@umich.edu    name = 'gap'
4193671Sbinkertn@umich.edu    number = 254
4203671Sbinkertn@umich.edu    lang = 'C'
4213671Sbinkertn@umich.edu
4223671Sbinkertn@umich.edu    def __set_args(self, size):
4233671Sbinkertn@umich.edu        self.args = [ '-l', './', '-q', '-m', size ]
4243671Sbinkertn@umich.edu
4253671Sbinkertn@umich.edu    def test(self, isa, os):
4263671Sbinkertn@umich.edu        self.__set_args('64M')
4273671Sbinkertn@umich.edu
4283671Sbinkertn@umich.edu    def train(self, isa, os):
4293671Sbinkertn@umich.edu        self.__set_args('128M')
4303671Sbinkertn@umich.edu
4313671Sbinkertn@umich.edu    def ref(self, isa, os):
4323671Sbinkertn@umich.edu        self.__set_args('192M')
4335361Srstrong@cs.ucsd.edu        self.simpoint = 674*100E6
4343671Sbinkertn@umich.edu
4353671Sbinkertn@umich.edu    def lgred(self, isa, os):
4363671Sbinkertn@umich.edu        self.__set_args('64M')
4373671Sbinkertn@umich.edu
4383671Sbinkertn@umich.edu    def mdred(self, isa, os):
4393671Sbinkertn@umich.edu        self.__set_args('64M')
4403671Sbinkertn@umich.edu
4413671Sbinkertn@umich.edu    def smred(self, isa, os):
4423671Sbinkertn@umich.edu        self.__set_args('64M')
4433671Sbinkertn@umich.edu
4443671Sbinkertn@umich.educlass gcc(DefaultBenchmark):
4453671Sbinkertn@umich.edu    name = 'gcc'
4463671Sbinkertn@umich.edu    number = 176
4473671Sbinkertn@umich.edu    lang = 'C'
4483671Sbinkertn@umich.edu
4493671Sbinkertn@umich.edu    def test(self, isa, os):
4503671Sbinkertn@umich.edu        self.args = [ 'cccp.i', '-o', 'cccp.s' ]
4513671Sbinkertn@umich.edu
4523671Sbinkertn@umich.edu    def train(self, isa, os):
4533671Sbinkertn@umich.edu        self.args = [ 'cp-decl.i', '-o', 'cp-decl.s' ]
4543671Sbinkertn@umich.edu
4553671Sbinkertn@umich.edu    def smred(self, isa, os):
4563671Sbinkertn@umich.edu        self.args = [ 'c-iterate.i', '-o', 'c-iterate.s' ]
4573671Sbinkertn@umich.edu
4583671Sbinkertn@umich.edu    def mdred(self, isa, os):
4593671Sbinkertn@umich.edu        self.args = [ 'rdlanal.i', '-o', 'rdlanal.s' ]
4603671Sbinkertn@umich.edu
4613671Sbinkertn@umich.edu    def lgred(self, isa, os):
4623671Sbinkertn@umich.edu        self.args = [ 'cp-decl.i', '-o', 'cp-decl.s' ]
4633671Sbinkertn@umich.edu
4643671Sbinkertn@umich.educlass gcc_166(gcc):
4653671Sbinkertn@umich.edu    def ref(self, isa, os):
4665361Srstrong@cs.ucsd.edu        self.simpoint = 389*100E6
4673671Sbinkertn@umich.edu        self.args = [ '166.i', '-o', '166.s' ]
4683671Sbinkertn@umich.edu
4693671Sbinkertn@umich.educlass gcc_200(gcc):
4703671Sbinkertn@umich.edu    def ref(self, isa, os):
4715361Srstrong@cs.ucsd.edu        self.simpoint = 736*100E6
4723671Sbinkertn@umich.edu        self.args = [ '200.i', '-o', '200.s' ]
4733671Sbinkertn@umich.edu
4743671Sbinkertn@umich.educlass gcc_expr(gcc):
4753671Sbinkertn@umich.edu    def ref(self, isa, os):
4765361Srstrong@cs.ucsd.edu        self.simpoint = 36*100E6
4773671Sbinkertn@umich.edu        self.args = [ 'expr.i', '-o', 'expr.s' ]
4783671Sbinkertn@umich.edu
4793671Sbinkertn@umich.educlass gcc_integrate(gcc):
4803671Sbinkertn@umich.edu    def ref(self, isa, os):
4815361Srstrong@cs.ucsd.edu        self.simpoint = 4*100E6
4823671Sbinkertn@umich.edu        self.args = [ 'integrate.i', '-o', 'integrate.s' ]
4833671Sbinkertn@umich.edu
4843671Sbinkertn@umich.educlass gcc_scilab(gcc):
4853671Sbinkertn@umich.edu    def ref(self, isa, os):
4865361Srstrong@cs.ucsd.edu        self.simpoint = 207*100E6
4873671Sbinkertn@umich.edu        self.args = [ 'scilab.i', '-o', 'scilab.s' ]
4883671Sbinkertn@umich.edu
4893671Sbinkertn@umich.educlass gzip(DefaultBenchmark):
4903671Sbinkertn@umich.edu    name = 'gzip'
4913671Sbinkertn@umich.edu    number = 164
4923671Sbinkertn@umich.edu    lang = 'C'
4933671Sbinkertn@umich.edu
4943671Sbinkertn@umich.edu    def test(self, isa, os):
4953671Sbinkertn@umich.edu        self.args = [ 'input.compressed', '2' ]
4963671Sbinkertn@umich.edu
4973671Sbinkertn@umich.edu    def train(self, isa, os):
4983671Sbinkertn@umich.edu        self.args = [ 'input.combined', '32' ]
4993671Sbinkertn@umich.edu
5003671Sbinkertn@umich.educlass gzip_source(gzip):
5013671Sbinkertn@umich.edu    def ref(self, isa, os):
5025361Srstrong@cs.ucsd.edu        self.simpoint = 334*100E6
5033671Sbinkertn@umich.edu        self.args = [ 'input.source', '1' ]
5043671Sbinkertn@umich.edu    def smred(self, isa, os):
5053671Sbinkertn@umich.edu        self.args = [ 'input.source', '1' ]
5063671Sbinkertn@umich.edu    def mdred(self, isa, os):
5073671Sbinkertn@umich.edu        self.args = [ 'input.source', '1' ]
5083671Sbinkertn@umich.edu    def lgred(self, isa, os):
5093671Sbinkertn@umich.edu        self.args = [ 'input.source', '1' ]
5103671Sbinkertn@umich.edu
5113671Sbinkertn@umich.educlass gzip_log(gzip):
5123671Sbinkertn@umich.edu    def ref(self, isa, os):
5135361Srstrong@cs.ucsd.edu        self.simpoint = 265*100E6
5143671Sbinkertn@umich.edu        self.args = [ 'input.log', '60' ]
5153671Sbinkertn@umich.edu    def smred(self, isa, os):
5163671Sbinkertn@umich.edu        self.args = [ 'input.log', '1' ]
5173671Sbinkertn@umich.edu    def mdred(self, isa, os):
5183671Sbinkertn@umich.edu        self.args = [ 'input.log', '1' ]
5193671Sbinkertn@umich.edu    def lgred(self, isa, os):
5203671Sbinkertn@umich.edu        self.args = [ 'input.log', '1' ]
5213671Sbinkertn@umich.edu
5223671Sbinkertn@umich.educlass gzip_graphic(gzip):
5233671Sbinkertn@umich.edu    def ref(self, isa, os):
5245361Srstrong@cs.ucsd.edu        self.simpoint = 653*100E6
5253671Sbinkertn@umich.edu        self.args = [ 'input.graphic', '60' ]
5263671Sbinkertn@umich.edu    def smred(self, isa, os):
5273671Sbinkertn@umich.edu        self.args = [ 'input.graphic', '1' ]
5283671Sbinkertn@umich.edu    def mdred(self, isa, os):
5293671Sbinkertn@umich.edu        self.args = [ 'input.graphic', '1' ]
5303671Sbinkertn@umich.edu    def lgred(self, isa, os):
5313671Sbinkertn@umich.edu        self.args = [ 'input.graphic', '1' ]
5323671Sbinkertn@umich.edu
5333671Sbinkertn@umich.educlass gzip_random(gzip):
5343671Sbinkertn@umich.edu    def ref(self, isa, os):
5355361Srstrong@cs.ucsd.edu        self.simpoint = 623*100E6
5363671Sbinkertn@umich.edu        self.args = [ 'input.random', '60' ]
5373671Sbinkertn@umich.edu    def smred(self, isa, os):
5383671Sbinkertn@umich.edu        self.args = [ 'input.random', '1' ]
5393671Sbinkertn@umich.edu    def mdred(self, isa, os):
5403671Sbinkertn@umich.edu        self.args = [ 'input.random', '1' ]
5413671Sbinkertn@umich.edu    def lgred(self, isa, os):
5423671Sbinkertn@umich.edu        self.args = [ 'input.random', '1' ]
5433671Sbinkertn@umich.edu
5443671Sbinkertn@umich.educlass gzip_program(gzip):
5453671Sbinkertn@umich.edu    def ref(self, isa, os):
5465361Srstrong@cs.ucsd.edu        self.simpoint = 1189*100E6
5473671Sbinkertn@umich.edu        self.args = [ 'input.program', '60' ]
5483671Sbinkertn@umich.edu    def smred(self, isa, os):
5493671Sbinkertn@umich.edu        self.args = [ 'input.program', '1' ]
5503671Sbinkertn@umich.edu    def mdred(self, isa, os):
5513671Sbinkertn@umich.edu        self.args = [ 'input.program', '1' ]
5523671Sbinkertn@umich.edu    def lgred(self, isa, os):
5533671Sbinkertn@umich.edu        self.args = [ 'input.program', '1' ]
5543671Sbinkertn@umich.edu
5553671Sbinkertn@umich.educlass mcf(MinneDefaultBenchmark):
5563671Sbinkertn@umich.edu    name = 'mcf'
5573671Sbinkertn@umich.edu    number = 181
5583671Sbinkertn@umich.edu    lang = 'C'
5594271Sgblack@eecs.umich.edu    args = [ 'mcf.in' ]
5605361Srstrong@cs.ucsd.edu    simpoint = 553*100E6
5613671Sbinkertn@umich.edu
5623671Sbinkertn@umich.educlass parser(MinneDefaultBenchmark):
5633671Sbinkertn@umich.edu    name = 'parser'
5643671Sbinkertn@umich.edu    number = 197
5653671Sbinkertn@umich.edu    lang = 'C'
5663671Sbinkertn@umich.edu    args = [ '2.1.dict', '-batch' ]
5675361Srstrong@cs.ucsd.edu    simpoint = 1146*100E6
5683671Sbinkertn@umich.edu
5693671Sbinkertn@umich.educlass perlbmk(DefaultBenchmark):
5703671Sbinkertn@umich.edu    name = 'perlbmk'
5713671Sbinkertn@umich.edu    number = 253
5723671Sbinkertn@umich.edu    lang = 'C'
5733671Sbinkertn@umich.edu
5743671Sbinkertn@umich.edu    def test(self, isa, os):
5753671Sbinkertn@umich.edu        self.args = [ '-I.', '-I', 'lib', 'test.pl' ]
5763671Sbinkertn@umich.edu        self.stdin = 'test.in'
5773671Sbinkertn@umich.edu
5783671Sbinkertn@umich.educlass perlbmk_diffmail(perlbmk):
5793671Sbinkertn@umich.edu    def ref(self, isa, os):
5805361Srstrong@cs.ucsd.edu        self.simpoint = 141*100E6
5813671Sbinkertn@umich.edu        self.args = [ '-I', 'lib', 'diffmail.pl', '2', '550', '15', '24',
5823671Sbinkertn@umich.edu                      '23', '100' ]
5833671Sbinkertn@umich.edu
5843671Sbinkertn@umich.edu    def train(self, isa, os):
5853671Sbinkertn@umich.edu        self.args = [ '-I', 'lib', 'diffmail.pl', '2', '350', '15', '24',
5863671Sbinkertn@umich.edu                      '23', '150' ]
5873671Sbinkertn@umich.edu
5883671Sbinkertn@umich.educlass perlbmk_scrabbl(perlbmk):
5893671Sbinkertn@umich.edu    def train(self, isa, os):
5903671Sbinkertn@umich.edu        self.args = [ '-I.', '-I', 'lib', 'scrabbl.pl' ]
5913671Sbinkertn@umich.edu        self.stdin = 'scrabbl.in'
5923671Sbinkertn@umich.edu
5933671Sbinkertn@umich.educlass perlbmk_makerand(perlbmk):
5943671Sbinkertn@umich.edu    def ref(self, isa, os):
5955361Srstrong@cs.ucsd.edu        self.simpoint = 11*100E6
5963671Sbinkertn@umich.edu        self.args = [ '-I', 'lib',  'makerand.pl' ]
5973671Sbinkertn@umich.edu
5983671Sbinkertn@umich.edu    def lgred(self, isa, os):
5993671Sbinkertn@umich.edu        self.args = [ '-I.', '-I', 'lib', 'lgred.makerand.pl' ]
6003671Sbinkertn@umich.edu
6013671Sbinkertn@umich.edu    def mdred(self, isa, os):
6023671Sbinkertn@umich.edu        self.args = [ '-I.', '-I', 'lib', 'mdred.makerand.pl' ]
6033671Sbinkertn@umich.edu
6043671Sbinkertn@umich.edu    def smred(self, isa, os):
6053671Sbinkertn@umich.edu        self.args = [ '-I.', '-I', 'lib', 'smred.makerand.pl' ]
6063671Sbinkertn@umich.edu
6073671Sbinkertn@umich.educlass perlbmk_perfect(perlbmk):
6083671Sbinkertn@umich.edu    def ref(self, isa, os):
6095361Srstrong@cs.ucsd.edu        self.simpoint = 5*100E6
6103671Sbinkertn@umich.edu        self.args = [ '-I', 'lib',  'perfect.pl', 'b', '3', 'm', '4' ]
6113671Sbinkertn@umich.edu
6123671Sbinkertn@umich.edu    def train(self, isa, os):
6133671Sbinkertn@umich.edu        self.args = [ '-I', 'lib', 'perfect.pl', 'b',  '3' ]
6143671Sbinkertn@umich.edu
6153671Sbinkertn@umich.educlass perlbmk_splitmail1(perlbmk):
6163671Sbinkertn@umich.edu    def ref(self, isa, os):
6175361Srstrong@cs.ucsd.edu        self.simpoint = 405*100E6
6183671Sbinkertn@umich.edu        self.args = [ '-I', 'lib', 'splitmail.pl', '850', '5', '19',
6193671Sbinkertn@umich.edu                      '18', '1500' ]
6203671Sbinkertn@umich.edu
6213671Sbinkertn@umich.educlass perlbmk_splitmail2(perlbmk):
6223671Sbinkertn@umich.edu    def ref(self, isa, os):
6233671Sbinkertn@umich.edu        self.args = [ '-I', 'lib', 'splitmail.pl', '704', '12', '26',
6243671Sbinkertn@umich.edu                      '16', '836' ]
6253671Sbinkertn@umich.edu
6263671Sbinkertn@umich.educlass perlbmk_splitmail3(perlbmk):
6273671Sbinkertn@umich.edu    def ref(self, isa, os):
6283671Sbinkertn@umich.edu        self.args = [ '-I', 'lib', 'splitmail.pl', '535', '13', '25',
6293671Sbinkertn@umich.edu                      '24', '1091' ]
6303671Sbinkertn@umich.edu
6313671Sbinkertn@umich.educlass perlbmk_splitmail4(perlbmk):
6323671Sbinkertn@umich.edu    def ref(self, isa, os):
6333671Sbinkertn@umich.edu        self.args = [ '-I', 'lib', 'splitmail.pl', '957', '12', '23',
6343671Sbinkertn@umich.edu                      '26', '1014' ]
6353671Sbinkertn@umich.edu
6363671Sbinkertn@umich.educlass twolf(Benchmark):
6373671Sbinkertn@umich.edu    name = 'twolf'
6383671Sbinkertn@umich.edu    number = 300
6393671Sbinkertn@umich.edu    lang = 'C'
6403671Sbinkertn@umich.edu    stdin = None
6413671Sbinkertn@umich.edu
6423671Sbinkertn@umich.edu    def test(self, isa, os):
6433671Sbinkertn@umich.edu        self.args = [ 'test' ]
6443671Sbinkertn@umich.edu
6453671Sbinkertn@umich.edu    def train(self, isa, os):
6463671Sbinkertn@umich.edu        self.args = [ 'train' ]
6473671Sbinkertn@umich.edu
6483671Sbinkertn@umich.edu    def ref(self, isa, os):
6495361Srstrong@cs.ucsd.edu        self.simpoint = 1066*100E6
6503671Sbinkertn@umich.edu        self.args = [ 'ref' ]
6513671Sbinkertn@umich.edu
6523671Sbinkertn@umich.edu    def smred(self, isa, os):
6533671Sbinkertn@umich.edu        self.args = [ 'smred' ]
6543671Sbinkertn@umich.edu
6553671Sbinkertn@umich.edu    def mdred(self, isa, os):
6563671Sbinkertn@umich.edu        self.args = [ 'mdred' ]
6573671Sbinkertn@umich.edu
6583671Sbinkertn@umich.edu    def lgred(self, isa, os):
6593671Sbinkertn@umich.edu        self.args = [ 'lgred' ]
6603671Sbinkertn@umich.edu
6613671Sbinkertn@umich.educlass vortex(Benchmark):
6623671Sbinkertn@umich.edu    name = 'vortex'
6633671Sbinkertn@umich.edu    number = 255
6643671Sbinkertn@umich.edu    lang = 'C'
6653671Sbinkertn@umich.edu    stdin = None
6663671Sbinkertn@umich.edu
6673671Sbinkertn@umich.edu    def __init__(self, isa, os, input_set):
66810037SARM gem5 Developers        if (isa in ('alpha', 'arm', 'thumb', 'aarch64')):
6693671Sbinkertn@umich.edu            self.endian = 'lendian'
6704116Sgblack@eecs.umich.edu        elif (isa == 'sparc' or isa == 'sparc32'):
6714116Sgblack@eecs.umich.edu            self.endian = 'bendian'
6723671Sbinkertn@umich.edu        else:
6733671Sbinkertn@umich.edu            raise AttributeError, "unknown ISA %s" % isa
6743671Sbinkertn@umich.edu
6753671Sbinkertn@umich.edu        super(vortex, self).__init__(isa, os, input_set)
6763671Sbinkertn@umich.edu
6773671Sbinkertn@umich.edu    def test(self, isa, os):
6783671Sbinkertn@umich.edu        self.args = [ '%s.raw' % self.endian ]
6793671Sbinkertn@umich.edu        self.output = 'vortex.out'
6803671Sbinkertn@umich.edu
6813671Sbinkertn@umich.edu    def train(self, isa, os):
6823671Sbinkertn@umich.edu        self.args = [ '%s.raw' % self.endian ]
6833671Sbinkertn@umich.edu        self.output = 'vortex.out'
6843671Sbinkertn@umich.edu
6853671Sbinkertn@umich.edu    def smred(self, isa, os):
6863671Sbinkertn@umich.edu        self.args = [ '%s.raw' % self.endian ]
6873671Sbinkertn@umich.edu        self.output = 'vortex.out'
6883671Sbinkertn@umich.edu
6893671Sbinkertn@umich.edu    def mdred(self, isa, os):
6903671Sbinkertn@umich.edu        self.args = [ '%s.raw' % self.endian ]
6913671Sbinkertn@umich.edu        self.output = 'vortex.out'
6923671Sbinkertn@umich.edu
6933671Sbinkertn@umich.edu    def lgred(self, isa, os):
6943671Sbinkertn@umich.edu        self.args = [ '%s.raw' % self.endian ]
6953671Sbinkertn@umich.edu        self.output = 'vortex.out'
6963671Sbinkertn@umich.edu
6973671Sbinkertn@umich.educlass vortex1(vortex):
6983671Sbinkertn@umich.edu    def ref(self, isa, os):
6993671Sbinkertn@umich.edu        self.args = [ '%s1.raw' % self.endian ]
7003671Sbinkertn@umich.edu        self.output = 'vortex1.out'
7015361Srstrong@cs.ucsd.edu        self.simpoint = 271*100E6
7023671Sbinkertn@umich.edu
7033671Sbinkertn@umich.edu
7043671Sbinkertn@umich.educlass vortex2(vortex):
7053671Sbinkertn@umich.edu    def ref(self, isa, os):
7065361Srstrong@cs.ucsd.edu        self.simpoint = 1024*100E6
7073671Sbinkertn@umich.edu        self.args = [ '%s2.raw' % self.endian ]
7083671Sbinkertn@umich.edu        self.output = 'vortex2.out'
7093671Sbinkertn@umich.edu
7103671Sbinkertn@umich.educlass vortex3(vortex):
7113671Sbinkertn@umich.edu    def ref(self, isa, os):
7125361Srstrong@cs.ucsd.edu        self.simpoint = 564*100E6
7133671Sbinkertn@umich.edu        self.args = [ '%s3.raw' % self.endian ]
7143671Sbinkertn@umich.edu        self.output = 'vortex3.out'
7153671Sbinkertn@umich.edu
7163671Sbinkertn@umich.educlass vpr(MinneDefaultBenchmark):
7173671Sbinkertn@umich.edu    name = 'vpr'
7183671Sbinkertn@umich.edu    number = 175
7193671Sbinkertn@umich.edu    lang = 'C'
7203671Sbinkertn@umich.edu
7213671Sbinkertn@umich.edu# not sure about vpr minnespec place.in
7223671Sbinkertn@umich.educlass vpr_place(vpr):
7233671Sbinkertn@umich.edu    args = [ 'net.in', 'arch.in', 'place.out', 'dum.out', '-nodisp',
7243671Sbinkertn@umich.edu             '-place_only', '-init_t', '5', '-exit_t', '0.005',
7253671Sbinkertn@umich.edu             '-alpha_t', '0.9412', '-inner_num', '2' ]
7263671Sbinkertn@umich.edu    output = 'place_log.out'
7273671Sbinkertn@umich.edu
7283671Sbinkertn@umich.educlass vpr_route(vpr):
7295361Srstrong@cs.ucsd.edu    simpoint = 476*100E6
7303671Sbinkertn@umich.edu    args = [ 'net.in', 'arch.in', 'place.in', 'route.out', '-nodisp',
7313671Sbinkertn@umich.edu             '-route_only', '-route_chan_width', '15',
7323671Sbinkertn@umich.edu             '-pres_fac_mult', '2', '-acc_fac', '1',
7333671Sbinkertn@umich.edu             '-first_iter_pres_fac', '4', '-initial_pres_fac', '8' ]
7343671Sbinkertn@umich.edu    output = 'route_log.out'
7353671Sbinkertn@umich.edu
7368657SAli.Saidi@ARM.comall = [ ammp, applu, apsi, art, art110, art470, equake, facerec, fma3d, galgel,
7373671Sbinkertn@umich.edu        lucas, mesa, mgrid, sixtrack, swim, wupwise, bzip2_source,
7383671Sbinkertn@umich.edu        bzip2_graphic, bzip2_program, crafty, eon_kajiya, eon_cook,
7393671Sbinkertn@umich.edu        eon_rushmeier, gap, gcc_166, gcc_200, gcc_expr, gcc_integrate,
7403671Sbinkertn@umich.edu        gcc_scilab, gzip_source, gzip_log, gzip_graphic, gzip_random,
7413671Sbinkertn@umich.edu        gzip_program, mcf, parser, perlbmk_diffmail, perlbmk_makerand,
7423671Sbinkertn@umich.edu        perlbmk_perfect, perlbmk_splitmail1, perlbmk_splitmail2,
7433671Sbinkertn@umich.edu        perlbmk_splitmail3, perlbmk_splitmail4, twolf, vortex1, vortex2,
7443671Sbinkertn@umich.edu        vortex3, vpr_place, vpr_route ]
7453671Sbinkertn@umich.edu
7463671Sbinkertn@umich.edu__all__ = [ x.__name__ for x in all ]
7473671Sbinkertn@umich.edu
7483671Sbinkertn@umich.eduif __name__ == '__main__':
7493671Sbinkertn@umich.edu    from pprint import pprint
7503671Sbinkertn@umich.edu    for bench in all:
7513671Sbinkertn@umich.edu        for input_set in 'ref', 'test', 'train':
75212564Sgabeblack@google.com            print('class: %s' % bench.__name__)
7533671Sbinkertn@umich.edu            x = bench('alpha', 'tru64', input_set)
75412564Sgabeblack@google.com            print('%s: %s' % (x, input_set))
75511851Sbrandon.potter@amd.com            pprint(x.makeProcessArgs())
75612564Sgabeblack@google.com            print()
757