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