cpu2000.py revision 12564
1# Copyright (c) 2006-2008 The Regents of The University of Michigan 2# All rights reserved. 3# 4# Redistribution and use in source and binary forms, with or without 5# modification, are permitted provided that the following conditions are 6# met: redistributions of source code must retain the above copyright 7# notice, this list of conditions and the following disclaimer; 8# redistributions in binary form must reproduce the above copyright 9# notice, this list of conditions and the following disclaimer in the 10# documentation and/or other materials provided with the distribution; 11# neither the name of the copyright holders nor the names of its 12# contributors may be used to endorse or promote products derived from 13# this software without specific prior written permission. 14# 15# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 16# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 17# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 18# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 19# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 20# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 21# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 22# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 23# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 25# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26# 27# Authors: Nathan Binkert 28 29from __future__ import print_function 30 31import os 32import sys 33from os.path import basename, exists, join as joinpath, normpath 34from os.path import isdir, isfile, islink 35 36spec_dist = os.environ.get('M5_CPU2000', '/dist/m5/cpu2000') 37 38def copyfiles(srcdir, dstdir): 39 from filecmp import cmp as filecmp 40 from shutil import copyfile 41 42 srcdir = normpath(srcdir) 43 dstdir = normpath(dstdir) 44 45 if not isdir(dstdir): 46 os.mkdir(dstdir) 47 48 for root, dirs, files in os.walk(srcdir): 49 root = normpath(root) 50 prefix = os.path.commonprefix([root, srcdir]) 51 52 root = root[len(prefix):] 53 if root.startswith('/'): 54 root = root[1:] 55 56 for entry in dirs: 57 newdir = joinpath(dstdir, root, entry) 58 if not isdir(newdir): 59 os.mkdir(newdir) 60 61 for entry in files: 62 dest = normpath(joinpath(dstdir, root, entry)) 63 src = normpath(joinpath(srcdir, root, entry)) 64 if not isfile(dest) or not filecmp(src, dest): 65 copyfile(src, dest) 66 67 # some of the spec benchmarks expect to be run from one directory up. 68 # just create some symlinks that solve the problem 69 inlink = joinpath(dstdir, 'input') 70 outlink = joinpath(dstdir, 'output') 71 if not exists(inlink): 72 os.symlink('.', inlink) 73 if not exists(outlink): 74 os.symlink('.', outlink) 75 76class Benchmark(object): 77 def __init__(self, isa, os, input_set): 78 if not hasattr(self.__class__, 'name'): 79 self.name = self.__class__.__name__ 80 81 if not hasattr(self.__class__, 'binary'): 82 self.binary = self.name 83 84 if not hasattr(self.__class__, 'args'): 85 self.args = [] 86 87 if not hasattr(self.__class__, 'output'): 88 self.output = '%s.out' % self.name 89 90 if not hasattr(self.__class__, 'simpoint'): 91 self.simpoint = None 92 93 try: 94 func = getattr(self.__class__, input_set) 95 except AttributeError: 96 raise AttributeError, \ 97 'The benchmark %s does not have the %s input set' % \ 98 (self.name, input_set) 99 100 executable = joinpath(spec_dist, 'binaries', isa, os, self.binary) 101 if not isfile(executable): 102 raise AttributeError, '%s not found' % executable 103 self.executable = executable 104 105 # root of tree for input & output data files 106 data_dir = joinpath(spec_dist, 'data', self.name) 107 # optional subtree with files shared across input sets 108 all_dir = joinpath(data_dir, 'all') 109 # dirs for input & output files for this input set 110 inputs_dir = joinpath(data_dir, input_set, 'input') 111 outputs_dir = joinpath(data_dir, input_set, 'output') 112 # keep around which input set was specified 113 self.input_set = input_set 114 115 if not isdir(inputs_dir): 116 raise AttributeError, '%s not found' % inputs_dir 117 118 self.inputs_dir = [ inputs_dir ] 119 if isdir(all_dir): 120 self.inputs_dir += [ joinpath(all_dir, 'input') ] 121 if isdir(outputs_dir): 122 self.outputs_dir = outputs_dir 123 124 if not hasattr(self.__class__, 'stdin'): 125 self.stdin = joinpath(inputs_dir, '%s.in' % self.name) 126 if not isfile(self.stdin): 127 self.stdin = None 128 129 if not hasattr(self.__class__, 'stdout'): 130 self.stdout = joinpath(outputs_dir, '%s.out' % self.name) 131 if not isfile(self.stdout): 132 self.stdout = None 133 134 func(self, isa, os) 135 136 def makeProcessArgs(self, **kwargs): 137 # set up default args for Process object 138 process_args = {} 139 process_args['cmd'] = [ self.name ] + self.args 140 process_args['executable'] = self.executable 141 if self.stdin: 142 process_args['input'] = self.stdin 143 if self.stdout: 144 process_args['output'] = self.stdout 145 if self.simpoint: 146 process_args['simpoint'] = self.simpoint 147 # explicit keywords override defaults 148 process_args.update(kwargs) 149 150 return process_args 151 152 def makeProcess(self, **kwargs): 153 process_args = self.makeProcessArgs(**kwargs) 154 155 # figure out working directory: use m5's outdir unless 156 # overridden by Process's cwd param 157 cwd = process_args.get('cwd') 158 159 if not cwd: 160 from m5 import options 161 cwd = options.outdir 162 process_args['cwd'] = cwd 163 if not isdir(cwd): 164 os.makedirs(cwd) 165 # copy input files to working directory 166 for d in self.inputs_dir: 167 copyfiles(d, cwd) 168 # generate Process object 169 from m5.objects import Process 170 return Process(**process_args) 171 172 def __str__(self): 173 return self.name 174 175class DefaultBenchmark(Benchmark): 176 def ref(self, isa, os): pass 177 def test(self, isa, os): pass 178 def train(self, isa, os): pass 179 180class MinneDefaultBenchmark(DefaultBenchmark): 181 def smred(self, isa, os): pass 182 def mdred(self, isa, os): pass 183 def lgred(self, isa, os): pass 184 185class ammp(MinneDefaultBenchmark): 186 name = 'ammp' 187 number = 188 188 lang = 'C' 189 simpoint = 108*100E6 190 191class applu(MinneDefaultBenchmark): 192 name = 'applu' 193 number = 173 194 lang = 'F77' 195 simpoint = 2179*100E6 196 197class apsi(MinneDefaultBenchmark): 198 name = 'apsi' 199 number = 301 200 lang = 'F77' 201 simpoint = 3408*100E6 202 203class art(DefaultBenchmark): 204 name = 'art' 205 number = 179 206 lang = 'C' 207 208 def test(self, isa, os): 209 self.args = [ '-scanfile', 'c756hel.in', 210 '-trainfile1', 'a10.img', 211 '-stride', '2', 212 '-startx', '134', 213 '-starty', '220', 214 '-endx', '139', 215 '-endy', '225', 216 '-objects', '1' ] 217 self.output = 'test.out' 218 219 def train(self, isa, os): 220 self.args = [ '-scanfile', 'c756hel.in', 221 '-trainfile1', 'a10.img', 222 '-stride', '2', 223 '-startx', '134', 224 '-starty', '220', 225 '-endx', '184', 226 '-endy', '240', 227 '-objects', '3' ] 228 self.output = 'train.out' 229 230 def lgred(self, isa, os): 231 self.args = ['-scanfile', 'c756hel.in', 232 '-trainfile1', 'a10.img', 233 '-stride', '5', 234 '-startx', '134', 235 '-starty', '220', 236 '-endx', '184', 237 '-endy', '240', 238 '-objects', '1' ] 239 self.output = 'lgred.out' 240 241 242class art110(art): 243 def ref(self, isa, os): 244 self.args = [ '-scanfile', 'c756hel.in', 245 '-trainfile1', 'a10.img', 246 '-trainfile2', 'hc.img', 247 '-stride', '2', 248 '-startx', '110', 249 '-starty', '200', 250 '-endx', '160', 251 '-endy', '240', 252 '-objects', '10' ] 253 self.output = 'ref.1.out' 254 self.simpoint = 340*100E6 255 256class art470(art): 257 def ref(self, isa, os): 258 self.args = [ '-scanfile', 'c756hel.in', 259 '-trainfile1', 'a10.img', 260 '-trainfile2', 'hc.img', 261 '-stride', '2', 262 '-startx', '470', 263 '-starty', '140', 264 '-endx', '520', 265 '-endy', '180', 266 '-objects', '10' ] 267 self.output = 'ref.2.out' 268 self.simpoint = 365*100E6 269 270class equake(DefaultBenchmark): 271 name = 'equake' 272 number = 183 273 lang = 'C' 274 simpoint = 812*100E6 275 276 def lgred(self, isa, os): pass 277 278class facerec(MinneDefaultBenchmark): 279 name = 'facerec' 280 number = 187 281 lang = 'F' 282 simpoint = 375*100E6 283 284class fma3d(MinneDefaultBenchmark): 285 name = 'fma3d' 286 number = 191 287 lang = 'F' 288 simpoint = 2541*100E6 289 290class galgel(MinneDefaultBenchmark): 291 name = 'galgel' 292 number = 178 293 lang = 'F' 294 simpoint = 2491*100E6 295 296class lucas(MinneDefaultBenchmark): 297 name = 'lucas' 298 number = 189 299 lang = 'F' 300 simpoint = 545*100E6 301 302class mesa(Benchmark): 303 name = 'mesa' 304 number = 177 305 lang = 'C' 306 stdin = None 307 308 def __set_args(self, frames): 309 self.args = [ '-frames', frames, '-meshfile', '%s.in' % self.name, 310 '-ppmfile', '%s.ppm' % self.name ] 311 312 def test(self, isa, os): 313 self.__set_args('10') 314 315 def train(self, isa, os): 316 self.__set_args('500') 317 318 def ref(self, isa, os): 319 self.__set_args('1000') 320 self.simpoint = 1135*100E6 321 322 def lgred(self, isa, os): 323 self.__set_args('1') 324 325class mgrid(MinneDefaultBenchmark): 326 name = 'mgrid' 327 number = 172 328 lang = 'F77' 329 simpoint = 3292*100E6 330 331class sixtrack(DefaultBenchmark): 332 name = 'sixtrack' 333 number = 200 334 lang = 'F77' 335 simpoint = 3043*100E6 336 337 def lgred(self, isa, os): pass 338 339class swim(MinneDefaultBenchmark): 340 name = 'swim' 341 number = 171 342 lang = 'F77' 343 simpoint = 2079*100E6 344 345class wupwise(DefaultBenchmark): 346 name = 'wupwise' 347 number = 168 348 lang = 'F77' 349 simpoint = 3237*100E6 350 351 def lgred(self, isa, os): pass 352 353class bzip2(DefaultBenchmark): 354 name = 'bzip2' 355 number = 256 356 lang = 'C' 357 358 def test(self, isa, os): 359 self.args = [ 'input.random' ] 360 361 def train(self, isa, os): 362 self.args = [ 'input.compressed' ] 363 364class bzip2_source(bzip2): 365 def ref(self, isa, os): 366 self.simpoint = 977*100E6 367 self.args = [ 'input.source', '58' ] 368 369 def lgred(self, isa, os): 370 self.args = [ 'input.source', '1' ] 371 372class bzip2_graphic(bzip2): 373 def ref(self, isa, os): 374 self.simpoint = 718*100E6 375 self.args = [ 'input.graphic', '58' ] 376 377 def lgred(self, isa, os): 378 self.args = [ 'input.graphic', '1' ] 379 380class bzip2_program(bzip2): 381 def ref(self, isa, os): 382 self.simpoint = 458*100E6 383 self.args = [ 'input.program', '58' ] 384 385 def lgred(self, isa, os): 386 self.args = [ 'input.program', '1' ] 387 388class crafty(MinneDefaultBenchmark): 389 name = 'crafty' 390 number = 186 391 lang = 'C' 392 simpoint = 774*100E6 393 394class eon(MinneDefaultBenchmark): 395 name = 'eon' 396 number = 252 397 lang = 'CXX' 398 stdin = None 399 400class eon_kajiya(eon): 401 args = [ 'chair.control.kajiya', 'chair.camera', 'chair.surfaces', 402 'chair.kajiya.ppm', 'ppm', 'pixels_out.kajiya'] 403 output = 'kajiya_log.out' 404 405 406class eon_cook(eon): 407 args = [ 'chair.control.cook', 'chair.camera', 'chair.surfaces', 408 'chair.cook.ppm', 'ppm', 'pixels_out.cook' ] 409 output = 'cook_log.out' 410 411class eon_rushmeier(eon): 412 args = [ 'chair.control.rushmeier', 'chair.camera', 'chair.surfaces', 413 'chair.rushmeier.ppm', 'ppm', 'pixels_out.rushmeier' ] 414 output = 'rushmeier_log.out' 415 simpoint = 403*100E6 416 417class gap(DefaultBenchmark): 418 name = 'gap' 419 number = 254 420 lang = 'C' 421 422 def __set_args(self, size): 423 self.args = [ '-l', './', '-q', '-m', size ] 424 425 def test(self, isa, os): 426 self.__set_args('64M') 427 428 def train(self, isa, os): 429 self.__set_args('128M') 430 431 def ref(self, isa, os): 432 self.__set_args('192M') 433 self.simpoint = 674*100E6 434 435 def lgred(self, isa, os): 436 self.__set_args('64M') 437 438 def mdred(self, isa, os): 439 self.__set_args('64M') 440 441 def smred(self, isa, os): 442 self.__set_args('64M') 443 444class gcc(DefaultBenchmark): 445 name = 'gcc' 446 number = 176 447 lang = 'C' 448 449 def test(self, isa, os): 450 self.args = [ 'cccp.i', '-o', 'cccp.s' ] 451 452 def train(self, isa, os): 453 self.args = [ 'cp-decl.i', '-o', 'cp-decl.s' ] 454 455 def smred(self, isa, os): 456 self.args = [ 'c-iterate.i', '-o', 'c-iterate.s' ] 457 458 def mdred(self, isa, os): 459 self.args = [ 'rdlanal.i', '-o', 'rdlanal.s' ] 460 461 def lgred(self, isa, os): 462 self.args = [ 'cp-decl.i', '-o', 'cp-decl.s' ] 463 464class gcc_166(gcc): 465 def ref(self, isa, os): 466 self.simpoint = 389*100E6 467 self.args = [ '166.i', '-o', '166.s' ] 468 469class gcc_200(gcc): 470 def ref(self, isa, os): 471 self.simpoint = 736*100E6 472 self.args = [ '200.i', '-o', '200.s' ] 473 474class gcc_expr(gcc): 475 def ref(self, isa, os): 476 self.simpoint = 36*100E6 477 self.args = [ 'expr.i', '-o', 'expr.s' ] 478 479class gcc_integrate(gcc): 480 def ref(self, isa, os): 481 self.simpoint = 4*100E6 482 self.args = [ 'integrate.i', '-o', 'integrate.s' ] 483 484class gcc_scilab(gcc): 485 def ref(self, isa, os): 486 self.simpoint = 207*100E6 487 self.args = [ 'scilab.i', '-o', 'scilab.s' ] 488 489class gzip(DefaultBenchmark): 490 name = 'gzip' 491 number = 164 492 lang = 'C' 493 494 def test(self, isa, os): 495 self.args = [ 'input.compressed', '2' ] 496 497 def train(self, isa, os): 498 self.args = [ 'input.combined', '32' ] 499 500class gzip_source(gzip): 501 def ref(self, isa, os): 502 self.simpoint = 334*100E6 503 self.args = [ 'input.source', '1' ] 504 def smred(self, isa, os): 505 self.args = [ 'input.source', '1' ] 506 def mdred(self, isa, os): 507 self.args = [ 'input.source', '1' ] 508 def lgred(self, isa, os): 509 self.args = [ 'input.source', '1' ] 510 511class gzip_log(gzip): 512 def ref(self, isa, os): 513 self.simpoint = 265*100E6 514 self.args = [ 'input.log', '60' ] 515 def smred(self, isa, os): 516 self.args = [ 'input.log', '1' ] 517 def mdred(self, isa, os): 518 self.args = [ 'input.log', '1' ] 519 def lgred(self, isa, os): 520 self.args = [ 'input.log', '1' ] 521 522class gzip_graphic(gzip): 523 def ref(self, isa, os): 524 self.simpoint = 653*100E6 525 self.args = [ 'input.graphic', '60' ] 526 def smred(self, isa, os): 527 self.args = [ 'input.graphic', '1' ] 528 def mdred(self, isa, os): 529 self.args = [ 'input.graphic', '1' ] 530 def lgred(self, isa, os): 531 self.args = [ 'input.graphic', '1' ] 532 533class gzip_random(gzip): 534 def ref(self, isa, os): 535 self.simpoint = 623*100E6 536 self.args = [ 'input.random', '60' ] 537 def smred(self, isa, os): 538 self.args = [ 'input.random', '1' ] 539 def mdred(self, isa, os): 540 self.args = [ 'input.random', '1' ] 541 def lgred(self, isa, os): 542 self.args = [ 'input.random', '1' ] 543 544class gzip_program(gzip): 545 def ref(self, isa, os): 546 self.simpoint = 1189*100E6 547 self.args = [ 'input.program', '60' ] 548 def smred(self, isa, os): 549 self.args = [ 'input.program', '1' ] 550 def mdred(self, isa, os): 551 self.args = [ 'input.program', '1' ] 552 def lgred(self, isa, os): 553 self.args = [ 'input.program', '1' ] 554 555class mcf(MinneDefaultBenchmark): 556 name = 'mcf' 557 number = 181 558 lang = 'C' 559 args = [ 'mcf.in' ] 560 simpoint = 553*100E6 561 562class parser(MinneDefaultBenchmark): 563 name = 'parser' 564 number = 197 565 lang = 'C' 566 args = [ '2.1.dict', '-batch' ] 567 simpoint = 1146*100E6 568 569class perlbmk(DefaultBenchmark): 570 name = 'perlbmk' 571 number = 253 572 lang = 'C' 573 574 def test(self, isa, os): 575 self.args = [ '-I.', '-I', 'lib', 'test.pl' ] 576 self.stdin = 'test.in' 577 578class perlbmk_diffmail(perlbmk): 579 def ref(self, isa, os): 580 self.simpoint = 141*100E6 581 self.args = [ '-I', 'lib', 'diffmail.pl', '2', '550', '15', '24', 582 '23', '100' ] 583 584 def train(self, isa, os): 585 self.args = [ '-I', 'lib', 'diffmail.pl', '2', '350', '15', '24', 586 '23', '150' ] 587 588class perlbmk_scrabbl(perlbmk): 589 def train(self, isa, os): 590 self.args = [ '-I.', '-I', 'lib', 'scrabbl.pl' ] 591 self.stdin = 'scrabbl.in' 592 593class perlbmk_makerand(perlbmk): 594 def ref(self, isa, os): 595 self.simpoint = 11*100E6 596 self.args = [ '-I', 'lib', 'makerand.pl' ] 597 598 def lgred(self, isa, os): 599 self.args = [ '-I.', '-I', 'lib', 'lgred.makerand.pl' ] 600 601 def mdred(self, isa, os): 602 self.args = [ '-I.', '-I', 'lib', 'mdred.makerand.pl' ] 603 604 def smred(self, isa, os): 605 self.args = [ '-I.', '-I', 'lib', 'smred.makerand.pl' ] 606 607class perlbmk_perfect(perlbmk): 608 def ref(self, isa, os): 609 self.simpoint = 5*100E6 610 self.args = [ '-I', 'lib', 'perfect.pl', 'b', '3', 'm', '4' ] 611 612 def train(self, isa, os): 613 self.args = [ '-I', 'lib', 'perfect.pl', 'b', '3' ] 614 615class perlbmk_splitmail1(perlbmk): 616 def ref(self, isa, os): 617 self.simpoint = 405*100E6 618 self.args = [ '-I', 'lib', 'splitmail.pl', '850', '5', '19', 619 '18', '1500' ] 620 621class perlbmk_splitmail2(perlbmk): 622 def ref(self, isa, os): 623 self.args = [ '-I', 'lib', 'splitmail.pl', '704', '12', '26', 624 '16', '836' ] 625 626class perlbmk_splitmail3(perlbmk): 627 def ref(self, isa, os): 628 self.args = [ '-I', 'lib', 'splitmail.pl', '535', '13', '25', 629 '24', '1091' ] 630 631class perlbmk_splitmail4(perlbmk): 632 def ref(self, isa, os): 633 self.args = [ '-I', 'lib', 'splitmail.pl', '957', '12', '23', 634 '26', '1014' ] 635 636class twolf(Benchmark): 637 name = 'twolf' 638 number = 300 639 lang = 'C' 640 stdin = None 641 642 def test(self, isa, os): 643 self.args = [ 'test' ] 644 645 def train(self, isa, os): 646 self.args = [ 'train' ] 647 648 def ref(self, isa, os): 649 self.simpoint = 1066*100E6 650 self.args = [ 'ref' ] 651 652 def smred(self, isa, os): 653 self.args = [ 'smred' ] 654 655 def mdred(self, isa, os): 656 self.args = [ 'mdred' ] 657 658 def lgred(self, isa, os): 659 self.args = [ 'lgred' ] 660 661class vortex(Benchmark): 662 name = 'vortex' 663 number = 255 664 lang = 'C' 665 stdin = None 666 667 def __init__(self, isa, os, input_set): 668 if (isa in ('alpha', 'arm', 'thumb', 'aarch64')): 669 self.endian = 'lendian' 670 elif (isa == 'sparc' or isa == 'sparc32'): 671 self.endian = 'bendian' 672 else: 673 raise AttributeError, "unknown ISA %s" % isa 674 675 super(vortex, self).__init__(isa, os, input_set) 676 677 def test(self, isa, os): 678 self.args = [ '%s.raw' % self.endian ] 679 self.output = 'vortex.out' 680 681 def train(self, isa, os): 682 self.args = [ '%s.raw' % self.endian ] 683 self.output = 'vortex.out' 684 685 def smred(self, isa, os): 686 self.args = [ '%s.raw' % self.endian ] 687 self.output = 'vortex.out' 688 689 def mdred(self, isa, os): 690 self.args = [ '%s.raw' % self.endian ] 691 self.output = 'vortex.out' 692 693 def lgred(self, isa, os): 694 self.args = [ '%s.raw' % self.endian ] 695 self.output = 'vortex.out' 696 697class vortex1(vortex): 698 def ref(self, isa, os): 699 self.args = [ '%s1.raw' % self.endian ] 700 self.output = 'vortex1.out' 701 self.simpoint = 271*100E6 702 703 704class vortex2(vortex): 705 def ref(self, isa, os): 706 self.simpoint = 1024*100E6 707 self.args = [ '%s2.raw' % self.endian ] 708 self.output = 'vortex2.out' 709 710class vortex3(vortex): 711 def ref(self, isa, os): 712 self.simpoint = 564*100E6 713 self.args = [ '%s3.raw' % self.endian ] 714 self.output = 'vortex3.out' 715 716class vpr(MinneDefaultBenchmark): 717 name = 'vpr' 718 number = 175 719 lang = 'C' 720 721# not sure about vpr minnespec place.in 722class vpr_place(vpr): 723 args = [ 'net.in', 'arch.in', 'place.out', 'dum.out', '-nodisp', 724 '-place_only', '-init_t', '5', '-exit_t', '0.005', 725 '-alpha_t', '0.9412', '-inner_num', '2' ] 726 output = 'place_log.out' 727 728class vpr_route(vpr): 729 simpoint = 476*100E6 730 args = [ 'net.in', 'arch.in', 'place.in', 'route.out', '-nodisp', 731 '-route_only', '-route_chan_width', '15', 732 '-pres_fac_mult', '2', '-acc_fac', '1', 733 '-first_iter_pres_fac', '4', '-initial_pres_fac', '8' ] 734 output = 'route_log.out' 735 736all = [ ammp, applu, apsi, art, art110, art470, equake, facerec, fma3d, galgel, 737 lucas, mesa, mgrid, sixtrack, swim, wupwise, bzip2_source, 738 bzip2_graphic, bzip2_program, crafty, eon_kajiya, eon_cook, 739 eon_rushmeier, gap, gcc_166, gcc_200, gcc_expr, gcc_integrate, 740 gcc_scilab, gzip_source, gzip_log, gzip_graphic, gzip_random, 741 gzip_program, mcf, parser, perlbmk_diffmail, perlbmk_makerand, 742 perlbmk_perfect, perlbmk_splitmail1, perlbmk_splitmail2, 743 perlbmk_splitmail3, perlbmk_splitmail4, twolf, vortex1, vortex2, 744 vortex3, vpr_place, vpr_route ] 745 746__all__ = [ x.__name__ for x in all ] 747 748if __name__ == '__main__': 749 from pprint import pprint 750 for bench in all: 751 for input_set in 'ref', 'test', 'train': 752 print('class: %s' % bench.__name__) 753 x = bench('alpha', 'tru64', input_set) 754 print('%s: %s' % (x, input_set)) 755 pprint(x.makeProcessArgs()) 756 print() 757