| # Copyright (c) 2006-2008 The Regents of The University of Michigan |
| # All rights reserved. |
| # |
| # Redistribution and use in source and binary forms, with or without |
| # modification, are permitted provided that the following conditions are |
| # met: redistributions of source code must retain the above copyright |
| # notice, this list of conditions and the following disclaimer; |
| # redistributions in binary form must reproduce the above copyright |
| # notice, this list of conditions and the following disclaimer in the |
| # documentation and/or other materials provided with the distribution; |
| # neither the name of the copyright holders nor the names of its |
| # contributors may be used to endorse or promote products derived from |
| # this software without specific prior written permission. |
| # |
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
| # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
| # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
| # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
| # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
| # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
| # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
| # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
| # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| |
| from __future__ import print_function |
| from __future__ import absolute_import |
| |
| import os |
| import sys |
| from os.path import basename, exists, join as joinpath, normpath |
| from os.path import isdir, isfile, islink |
| |
| spec_dist = os.environ.get('M5_CPU2000', '/dist/m5/cpu2000') |
| |
| def copyfiles(srcdir, dstdir): |
| from filecmp import cmp as filecmp |
| from shutil import copyfile |
| |
| srcdir = normpath(srcdir) |
| dstdir = normpath(dstdir) |
| |
| if not isdir(dstdir): |
| os.mkdir(dstdir) |
| |
| for root, dirs, files in os.walk(srcdir): |
| root = normpath(root) |
| prefix = os.path.commonprefix([root, srcdir]) |
| |
| root = root[len(prefix):] |
| if root.startswith('/'): |
| root = root[1:] |
| |
| for entry in dirs: |
| newdir = joinpath(dstdir, root, entry) |
| if not isdir(newdir): |
| os.mkdir(newdir) |
| |
| for entry in files: |
| dest = normpath(joinpath(dstdir, root, entry)) |
| src = normpath(joinpath(srcdir, root, entry)) |
| if not isfile(dest) or not filecmp(src, dest): |
| copyfile(src, dest) |
| |
| # some of the spec benchmarks expect to be run from one directory up. |
| # just create some symlinks that solve the problem |
| inlink = joinpath(dstdir, 'input') |
| outlink = joinpath(dstdir, 'output') |
| if not exists(inlink): |
| os.symlink('.', inlink) |
| if not exists(outlink): |
| os.symlink('.', outlink) |
| |
| class Benchmark(object): |
| def __init__(self, isa, os, input_set): |
| if not hasattr(self.__class__, 'name'): |
| self.name = self.__class__.__name__ |
| |
| if not hasattr(self.__class__, 'binary'): |
| self.binary = self.name |
| |
| if not hasattr(self.__class__, 'args'): |
| self.args = [] |
| |
| if not hasattr(self.__class__, 'output'): |
| self.output = '%s.out' % self.name |
| |
| if not hasattr(self.__class__, 'simpoint'): |
| self.simpoint = None |
| |
| try: |
| func = getattr(self.__class__, input_set) |
| except AttributeError: |
| raise AttributeError( |
| 'The benchmark %s does not have the %s input set' % \ |
| (self.name, input_set)) |
| |
| executable = joinpath(spec_dist, 'binaries', isa, os, self.binary) |
| if not isfile(executable): |
| raise AttributeError('%s not found' % executable) |
| self.executable = executable |
| |
| # root of tree for input & output data files |
| data_dir = joinpath(spec_dist, 'data', self.name) |
| # optional subtree with files shared across input sets |
| all_dir = joinpath(data_dir, 'all') |
| # dirs for input & output files for this input set |
| inputs_dir = joinpath(data_dir, input_set, 'input') |
| outputs_dir = joinpath(data_dir, input_set, 'output') |
| # keep around which input set was specified |
| self.input_set = input_set |
| |
| if not isdir(inputs_dir): |
| raise AttributeError('%s not found' % inputs_dir) |
| |
| self.inputs_dir = [ inputs_dir ] |
| if isdir(all_dir): |
| self.inputs_dir += [ joinpath(all_dir, 'input') ] |
| if isdir(outputs_dir): |
| self.outputs_dir = outputs_dir |
| |
| if not hasattr(self.__class__, 'stdin'): |
| self.stdin = joinpath(inputs_dir, '%s.in' % self.name) |
| if not isfile(self.stdin): |
| self.stdin = None |
| |
| if not hasattr(self.__class__, 'stdout'): |
| self.stdout = joinpath(outputs_dir, '%s.out' % self.name) |
| if not isfile(self.stdout): |
| self.stdout = None |
| |
| func(self, isa, os) |
| |
| def makeProcessArgs(self, **kwargs): |
| # set up default args for Process object |
| process_args = {} |
| process_args['cmd'] = [ self.name ] + self.args |
| process_args['executable'] = self.executable |
| if self.stdin: |
| process_args['input'] = self.stdin |
| if self.stdout: |
| process_args['output'] = self.stdout |
| if self.simpoint: |
| process_args['simpoint'] = self.simpoint |
| # explicit keywords override defaults |
| process_args.update(kwargs) |
| |
| return process_args |
| |
| def makeProcess(self, **kwargs): |
| process_args = self.makeProcessArgs(**kwargs) |
| |
| # figure out working directory: use m5's outdir unless |
| # overridden by Process's cwd param |
| cwd = process_args.get('cwd') |
| |
| if not cwd: |
| from m5 import options |
| cwd = options.outdir |
| process_args['cwd'] = cwd |
| if not isdir(cwd): |
| os.makedirs(cwd) |
| # copy input files to working directory |
| for d in self.inputs_dir: |
| copyfiles(d, cwd) |
| # generate Process object |
| from m5.objects import Process |
| return Process(**process_args) |
| |
| def __str__(self): |
| return self.name |
| |
| class DefaultBenchmark(Benchmark): |
| def ref(self, isa, os): pass |
| def test(self, isa, os): pass |
| def train(self, isa, os): pass |
| |
| class MinneDefaultBenchmark(DefaultBenchmark): |
| def smred(self, isa, os): pass |
| def mdred(self, isa, os): pass |
| def lgred(self, isa, os): pass |
| |
| class ammp(MinneDefaultBenchmark): |
| name = 'ammp' |
| number = 188 |
| lang = 'C' |
| simpoint = 108*100E6 |
| |
| class applu(MinneDefaultBenchmark): |
| name = 'applu' |
| number = 173 |
| lang = 'F77' |
| simpoint = 2179*100E6 |
| |
| class apsi(MinneDefaultBenchmark): |
| name = 'apsi' |
| number = 301 |
| lang = 'F77' |
| simpoint = 3408*100E6 |
| |
| class art(DefaultBenchmark): |
| name = 'art' |
| number = 179 |
| lang = 'C' |
| |
| def test(self, isa, os): |
| self.args = [ '-scanfile', 'c756hel.in', |
| '-trainfile1', 'a10.img', |
| '-stride', '2', |
| '-startx', '134', |
| '-starty', '220', |
| '-endx', '139', |
| '-endy', '225', |
| '-objects', '1' ] |
| self.output = 'test.out' |
| |
| def train(self, isa, os): |
| self.args = [ '-scanfile', 'c756hel.in', |
| '-trainfile1', 'a10.img', |
| '-stride', '2', |
| '-startx', '134', |
| '-starty', '220', |
| '-endx', '184', |
| '-endy', '240', |
| '-objects', '3' ] |
| self.output = 'train.out' |
| |
| def lgred(self, isa, os): |
| self.args = ['-scanfile', 'c756hel.in', |
| '-trainfile1', 'a10.img', |
| '-stride', '5', |
| '-startx', '134', |
| '-starty', '220', |
| '-endx', '184', |
| '-endy', '240', |
| '-objects', '1' ] |
| self.output = 'lgred.out' |
| |
| |
| class art110(art): |
| def ref(self, isa, os): |
| self.args = [ '-scanfile', 'c756hel.in', |
| '-trainfile1', 'a10.img', |
| '-trainfile2', 'hc.img', |
| '-stride', '2', |
| '-startx', '110', |
| '-starty', '200', |
| '-endx', '160', |
| '-endy', '240', |
| '-objects', '10' ] |
| self.output = 'ref.1.out' |
| self.simpoint = 340*100E6 |
| |
| class art470(art): |
| def ref(self, isa, os): |
| self.args = [ '-scanfile', 'c756hel.in', |
| '-trainfile1', 'a10.img', |
| '-trainfile2', 'hc.img', |
| '-stride', '2', |
| '-startx', '470', |
| '-starty', '140', |
| '-endx', '520', |
| '-endy', '180', |
| '-objects', '10' ] |
| self.output = 'ref.2.out' |
| self.simpoint = 365*100E6 |
| |
| class equake(DefaultBenchmark): |
| name = 'equake' |
| number = 183 |
| lang = 'C' |
| simpoint = 812*100E6 |
| |
| def lgred(self, isa, os): pass |
| |
| class facerec(MinneDefaultBenchmark): |
| name = 'facerec' |
| number = 187 |
| lang = 'F' |
| simpoint = 375*100E6 |
| |
| class fma3d(MinneDefaultBenchmark): |
| name = 'fma3d' |
| number = 191 |
| lang = 'F' |
| simpoint = 2541*100E6 |
| |
| class galgel(MinneDefaultBenchmark): |
| name = 'galgel' |
| number = 178 |
| lang = 'F' |
| simpoint = 2491*100E6 |
| |
| class lucas(MinneDefaultBenchmark): |
| name = 'lucas' |
| number = 189 |
| lang = 'F' |
| simpoint = 545*100E6 |
| |
| class mesa(Benchmark): |
| name = 'mesa' |
| number = 177 |
| lang = 'C' |
| stdin = None |
| |
| def __set_args(self, frames): |
| self.args = [ '-frames', frames, '-meshfile', '%s.in' % self.name, |
| '-ppmfile', '%s.ppm' % self.name ] |
| |
| def test(self, isa, os): |
| self.__set_args('10') |
| |
| def train(self, isa, os): |
| self.__set_args('500') |
| |
| def ref(self, isa, os): |
| self.__set_args('1000') |
| self.simpoint = 1135*100E6 |
| |
| def lgred(self, isa, os): |
| self.__set_args('1') |
| |
| class mgrid(MinneDefaultBenchmark): |
| name = 'mgrid' |
| number = 172 |
| lang = 'F77' |
| simpoint = 3292*100E6 |
| |
| class sixtrack(DefaultBenchmark): |
| name = 'sixtrack' |
| number = 200 |
| lang = 'F77' |
| simpoint = 3043*100E6 |
| |
| def lgred(self, isa, os): pass |
| |
| class swim(MinneDefaultBenchmark): |
| name = 'swim' |
| number = 171 |
| lang = 'F77' |
| simpoint = 2079*100E6 |
| |
| class wupwise(DefaultBenchmark): |
| name = 'wupwise' |
| number = 168 |
| lang = 'F77' |
| simpoint = 3237*100E6 |
| |
| def lgred(self, isa, os): pass |
| |
| class bzip2(DefaultBenchmark): |
| name = 'bzip2' |
| number = 256 |
| lang = 'C' |
| |
| def test(self, isa, os): |
| self.args = [ 'input.random' ] |
| |
| def train(self, isa, os): |
| self.args = [ 'input.compressed' ] |
| |
| class bzip2_source(bzip2): |
| def ref(self, isa, os): |
| self.simpoint = 977*100E6 |
| self.args = [ 'input.source', '58' ] |
| |
| def lgred(self, isa, os): |
| self.args = [ 'input.source', '1' ] |
| |
| class bzip2_graphic(bzip2): |
| def ref(self, isa, os): |
| self.simpoint = 718*100E6 |
| self.args = [ 'input.graphic', '58' ] |
| |
| def lgred(self, isa, os): |
| self.args = [ 'input.graphic', '1' ] |
| |
| class bzip2_program(bzip2): |
| def ref(self, isa, os): |
| self.simpoint = 458*100E6 |
| self.args = [ 'input.program', '58' ] |
| |
| def lgred(self, isa, os): |
| self.args = [ 'input.program', '1' ] |
| |
| class crafty(MinneDefaultBenchmark): |
| name = 'crafty' |
| number = 186 |
| lang = 'C' |
| simpoint = 774*100E6 |
| |
| class eon(MinneDefaultBenchmark): |
| name = 'eon' |
| number = 252 |
| lang = 'CXX' |
| stdin = None |
| |
| class eon_kajiya(eon): |
| args = [ 'chair.control.kajiya', 'chair.camera', 'chair.surfaces', |
| 'chair.kajiya.ppm', 'ppm', 'pixels_out.kajiya'] |
| output = 'kajiya_log.out' |
| |
| |
| class eon_cook(eon): |
| args = [ 'chair.control.cook', 'chair.camera', 'chair.surfaces', |
| 'chair.cook.ppm', 'ppm', 'pixels_out.cook' ] |
| output = 'cook_log.out' |
| |
| class eon_rushmeier(eon): |
| args = [ 'chair.control.rushmeier', 'chair.camera', 'chair.surfaces', |
| 'chair.rushmeier.ppm', 'ppm', 'pixels_out.rushmeier' ] |
| output = 'rushmeier_log.out' |
| simpoint = 403*100E6 |
| |
| class gap(DefaultBenchmark): |
| name = 'gap' |
| number = 254 |
| lang = 'C' |
| |
| def __set_args(self, size): |
| self.args = [ '-l', './', '-q', '-m', size ] |
| |
| def test(self, isa, os): |
| self.__set_args('64M') |
| |
| def train(self, isa, os): |
| self.__set_args('128M') |
| |
| def ref(self, isa, os): |
| self.__set_args('192M') |
| self.simpoint = 674*100E6 |
| |
| def lgred(self, isa, os): |
| self.__set_args('64M') |
| |
| def mdred(self, isa, os): |
| self.__set_args('64M') |
| |
| def smred(self, isa, os): |
| self.__set_args('64M') |
| |
| class gcc(DefaultBenchmark): |
| name = 'gcc' |
| number = 176 |
| lang = 'C' |
| |
| def test(self, isa, os): |
| self.args = [ 'cccp.i', '-o', 'cccp.s' ] |
| |
| def train(self, isa, os): |
| self.args = [ 'cp-decl.i', '-o', 'cp-decl.s' ] |
| |
| def smred(self, isa, os): |
| self.args = [ 'c-iterate.i', '-o', 'c-iterate.s' ] |
| |
| def mdred(self, isa, os): |
| self.args = [ 'rdlanal.i', '-o', 'rdlanal.s' ] |
| |
| def lgred(self, isa, os): |
| self.args = [ 'cp-decl.i', '-o', 'cp-decl.s' ] |
| |
| class gcc_166(gcc): |
| def ref(self, isa, os): |
| self.simpoint = 389*100E6 |
| self.args = [ '166.i', '-o', '166.s' ] |
| |
| class gcc_200(gcc): |
| def ref(self, isa, os): |
| self.simpoint = 736*100E6 |
| self.args = [ '200.i', '-o', '200.s' ] |
| |
| class gcc_expr(gcc): |
| def ref(self, isa, os): |
| self.simpoint = 36*100E6 |
| self.args = [ 'expr.i', '-o', 'expr.s' ] |
| |
| class gcc_integrate(gcc): |
| def ref(self, isa, os): |
| self.simpoint = 4*100E6 |
| self.args = [ 'integrate.i', '-o', 'integrate.s' ] |
| |
| class gcc_scilab(gcc): |
| def ref(self, isa, os): |
| self.simpoint = 207*100E6 |
| self.args = [ 'scilab.i', '-o', 'scilab.s' ] |
| |
| class gzip(DefaultBenchmark): |
| name = 'gzip' |
| number = 164 |
| lang = 'C' |
| |
| def test(self, isa, os): |
| self.args = [ 'input.compressed', '2' ] |
| |
| def train(self, isa, os): |
| self.args = [ 'input.combined', '32' ] |
| |
| class gzip_source(gzip): |
| def ref(self, isa, os): |
| self.simpoint = 334*100E6 |
| self.args = [ 'input.source', '1' ] |
| def smred(self, isa, os): |
| self.args = [ 'input.source', '1' ] |
| def mdred(self, isa, os): |
| self.args = [ 'input.source', '1' ] |
| def lgred(self, isa, os): |
| self.args = [ 'input.source', '1' ] |
| |
| class gzip_log(gzip): |
| def ref(self, isa, os): |
| self.simpoint = 265*100E6 |
| self.args = [ 'input.log', '60' ] |
| def smred(self, isa, os): |
| self.args = [ 'input.log', '1' ] |
| def mdred(self, isa, os): |
| self.args = [ 'input.log', '1' ] |
| def lgred(self, isa, os): |
| self.args = [ 'input.log', '1' ] |
| |
| class gzip_graphic(gzip): |
| def ref(self, isa, os): |
| self.simpoint = 653*100E6 |
| self.args = [ 'input.graphic', '60' ] |
| def smred(self, isa, os): |
| self.args = [ 'input.graphic', '1' ] |
| def mdred(self, isa, os): |
| self.args = [ 'input.graphic', '1' ] |
| def lgred(self, isa, os): |
| self.args = [ 'input.graphic', '1' ] |
| |
| class gzip_random(gzip): |
| def ref(self, isa, os): |
| self.simpoint = 623*100E6 |
| self.args = [ 'input.random', '60' ] |
| def smred(self, isa, os): |
| self.args = [ 'input.random', '1' ] |
| def mdred(self, isa, os): |
| self.args = [ 'input.random', '1' ] |
| def lgred(self, isa, os): |
| self.args = [ 'input.random', '1' ] |
| |
| class gzip_program(gzip): |
| def ref(self, isa, os): |
| self.simpoint = 1189*100E6 |
| self.args = [ 'input.program', '60' ] |
| def smred(self, isa, os): |
| self.args = [ 'input.program', '1' ] |
| def mdred(self, isa, os): |
| self.args = [ 'input.program', '1' ] |
| def lgred(self, isa, os): |
| self.args = [ 'input.program', '1' ] |
| |
| class mcf(MinneDefaultBenchmark): |
| name = 'mcf' |
| number = 181 |
| lang = 'C' |
| args = [ 'mcf.in' ] |
| simpoint = 553*100E6 |
| |
| class parser(MinneDefaultBenchmark): |
| name = 'parser' |
| number = 197 |
| lang = 'C' |
| args = [ '2.1.dict', '-batch' ] |
| simpoint = 1146*100E6 |
| |
| class perlbmk(DefaultBenchmark): |
| name = 'perlbmk' |
| number = 253 |
| lang = 'C' |
| |
| def test(self, isa, os): |
| self.args = [ '-I.', '-I', 'lib', 'test.pl' ] |
| self.stdin = 'test.in' |
| |
| class perlbmk_diffmail(perlbmk): |
| def ref(self, isa, os): |
| self.simpoint = 141*100E6 |
| self.args = [ '-I', 'lib', 'diffmail.pl', '2', '550', '15', '24', |
| '23', '100' ] |
| |
| def train(self, isa, os): |
| self.args = [ '-I', 'lib', 'diffmail.pl', '2', '350', '15', '24', |
| '23', '150' ] |
| |
| class perlbmk_scrabbl(perlbmk): |
| def train(self, isa, os): |
| self.args = [ '-I.', '-I', 'lib', 'scrabbl.pl' ] |
| self.stdin = 'scrabbl.in' |
| |
| class perlbmk_makerand(perlbmk): |
| def ref(self, isa, os): |
| self.simpoint = 11*100E6 |
| self.args = [ '-I', 'lib', 'makerand.pl' ] |
| |
| def lgred(self, isa, os): |
| self.args = [ '-I.', '-I', 'lib', 'lgred.makerand.pl' ] |
| |
| def mdred(self, isa, os): |
| self.args = [ '-I.', '-I', 'lib', 'mdred.makerand.pl' ] |
| |
| def smred(self, isa, os): |
| self.args = [ '-I.', '-I', 'lib', 'smred.makerand.pl' ] |
| |
| class perlbmk_perfect(perlbmk): |
| def ref(self, isa, os): |
| self.simpoint = 5*100E6 |
| self.args = [ '-I', 'lib', 'perfect.pl', 'b', '3', 'm', '4' ] |
| |
| def train(self, isa, os): |
| self.args = [ '-I', 'lib', 'perfect.pl', 'b', '3' ] |
| |
| class perlbmk_splitmail1(perlbmk): |
| def ref(self, isa, os): |
| self.simpoint = 405*100E6 |
| self.args = [ '-I', 'lib', 'splitmail.pl', '850', '5', '19', |
| '18', '1500' ] |
| |
| class perlbmk_splitmail2(perlbmk): |
| def ref(self, isa, os): |
| self.args = [ '-I', 'lib', 'splitmail.pl', '704', '12', '26', |
| '16', '836' ] |
| |
| class perlbmk_splitmail3(perlbmk): |
| def ref(self, isa, os): |
| self.args = [ '-I', 'lib', 'splitmail.pl', '535', '13', '25', |
| '24', '1091' ] |
| |
| class perlbmk_splitmail4(perlbmk): |
| def ref(self, isa, os): |
| self.args = [ '-I', 'lib', 'splitmail.pl', '957', '12', '23', |
| '26', '1014' ] |
| |
| class twolf(Benchmark): |
| name = 'twolf' |
| number = 300 |
| lang = 'C' |
| stdin = None |
| |
| def test(self, isa, os): |
| self.args = [ 'test' ] |
| |
| def train(self, isa, os): |
| self.args = [ 'train' ] |
| |
| def ref(self, isa, os): |
| self.simpoint = 1066*100E6 |
| self.args = [ 'ref' ] |
| |
| def smred(self, isa, os): |
| self.args = [ 'smred' ] |
| |
| def mdred(self, isa, os): |
| self.args = [ 'mdred' ] |
| |
| def lgred(self, isa, os): |
| self.args = [ 'lgred' ] |
| |
| class vortex(Benchmark): |
| name = 'vortex' |
| number = 255 |
| lang = 'C' |
| stdin = None |
| |
| def __init__(self, isa, os, input_set): |
| if (isa in ('arm', 'thumb', 'aarch64')): |
| self.endian = 'lendian' |
| elif (isa == 'sparc' or isa == 'sparc32'): |
| self.endian = 'bendian' |
| else: |
| raise AttributeError("unknown ISA %s" % isa) |
| |
| super(vortex, self).__init__(isa, os, input_set) |
| |
| def test(self, isa, os): |
| self.args = [ '%s.raw' % self.endian ] |
| self.output = 'vortex.out' |
| |
| def train(self, isa, os): |
| self.args = [ '%s.raw' % self.endian ] |
| self.output = 'vortex.out' |
| |
| def smred(self, isa, os): |
| self.args = [ '%s.raw' % self.endian ] |
| self.output = 'vortex.out' |
| |
| def mdred(self, isa, os): |
| self.args = [ '%s.raw' % self.endian ] |
| self.output = 'vortex.out' |
| |
| def lgred(self, isa, os): |
| self.args = [ '%s.raw' % self.endian ] |
| self.output = 'vortex.out' |
| |
| class vortex1(vortex): |
| def ref(self, isa, os): |
| self.args = [ '%s1.raw' % self.endian ] |
| self.output = 'vortex1.out' |
| self.simpoint = 271*100E6 |
| |
| |
| class vortex2(vortex): |
| def ref(self, isa, os): |
| self.simpoint = 1024*100E6 |
| self.args = [ '%s2.raw' % self.endian ] |
| self.output = 'vortex2.out' |
| |
| class vortex3(vortex): |
| def ref(self, isa, os): |
| self.simpoint = 564*100E6 |
| self.args = [ '%s3.raw' % self.endian ] |
| self.output = 'vortex3.out' |
| |
| class vpr(MinneDefaultBenchmark): |
| name = 'vpr' |
| number = 175 |
| lang = 'C' |
| |
| # not sure about vpr minnespec place.in |
| class vpr_place(vpr): |
| args = [ 'net.in', 'arch.in', 'place.out', 'dum.out', '-nodisp', |
| '-place_only', '-init_t', '5', '-exit_t', '0.005', |
| '-alpha_t', '0.9412', '-inner_num', '2' ] |
| output = 'place_log.out' |
| |
| class vpr_route(vpr): |
| simpoint = 476*100E6 |
| args = [ 'net.in', 'arch.in', 'place.in', 'route.out', '-nodisp', |
| '-route_only', '-route_chan_width', '15', |
| '-pres_fac_mult', '2', '-acc_fac', '1', |
| '-first_iter_pres_fac', '4', '-initial_pres_fac', '8' ] |
| output = 'route_log.out' |
| |
| all = [ ammp, applu, apsi, art, art110, art470, equake, facerec, fma3d, galgel, |
| lucas, mesa, mgrid, sixtrack, swim, wupwise, bzip2_source, |
| bzip2_graphic, bzip2_program, crafty, eon_kajiya, eon_cook, |
| eon_rushmeier, gap, gcc_166, gcc_200, gcc_expr, gcc_integrate, |
| gcc_scilab, gzip_source, gzip_log, gzip_graphic, gzip_random, |
| gzip_program, mcf, parser, perlbmk_diffmail, perlbmk_makerand, |
| perlbmk_perfect, perlbmk_splitmail1, perlbmk_splitmail2, |
| perlbmk_splitmail3, perlbmk_splitmail4, twolf, vortex1, vortex2, |
| vortex3, vpr_place, vpr_route ] |
| |
| __all__ = [ x.__name__ for x in all ] |
| |
| if __name__ == '__main__': |
| from pprint import pprint |
| for bench in all: |
| for input_set in 'ref', 'test', 'train': |
| print('class: %s' % bench.__name__) |
| x = bench('x86', 'linux', input_set) |
| print('%s: %s' % (x, input_set)) |
| pprint(x.makeProcessArgs()) |
| print() |