8143e45dec9e8dd00c5d5cf6a66a82f73c9ec7fa
[gem5.git] / configs / common / cpu2000.py
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
29 from __future__ import print_function
30
31 import os
32 import sys
33 from os.path import basename, exists, join as joinpath, normpath
34 from os.path import isdir, isfile, islink
35
36 spec_dist = os.environ.get('M5_CPU2000', '/dist/m5/cpu2000')
37
38 def 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
76 class 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
175 class DefaultBenchmark(Benchmark):
176 def ref(self, isa, os): pass
177 def test(self, isa, os): pass
178 def train(self, isa, os): pass
179
180 class MinneDefaultBenchmark(DefaultBenchmark):
181 def smred(self, isa, os): pass
182 def mdred(self, isa, os): pass
183 def lgred(self, isa, os): pass
184
185 class ammp(MinneDefaultBenchmark):
186 name = 'ammp'
187 number = 188
188 lang = 'C'
189 simpoint = 108*100E6
190
191 class applu(MinneDefaultBenchmark):
192 name = 'applu'
193 number = 173
194 lang = 'F77'
195 simpoint = 2179*100E6
196
197 class apsi(MinneDefaultBenchmark):
198 name = 'apsi'
199 number = 301
200 lang = 'F77'
201 simpoint = 3408*100E6
202
203 class 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
242 class 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
256 class 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
270 class equake(DefaultBenchmark):
271 name = 'equake'
272 number = 183
273 lang = 'C'
274 simpoint = 812*100E6
275
276 def lgred(self, isa, os): pass
277
278 class facerec(MinneDefaultBenchmark):
279 name = 'facerec'
280 number = 187
281 lang = 'F'
282 simpoint = 375*100E6
283
284 class fma3d(MinneDefaultBenchmark):
285 name = 'fma3d'
286 number = 191
287 lang = 'F'
288 simpoint = 2541*100E6
289
290 class galgel(MinneDefaultBenchmark):
291 name = 'galgel'
292 number = 178
293 lang = 'F'
294 simpoint = 2491*100E6
295
296 class lucas(MinneDefaultBenchmark):
297 name = 'lucas'
298 number = 189
299 lang = 'F'
300 simpoint = 545*100E6
301
302 class 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
325 class mgrid(MinneDefaultBenchmark):
326 name = 'mgrid'
327 number = 172
328 lang = 'F77'
329 simpoint = 3292*100E6
330
331 class sixtrack(DefaultBenchmark):
332 name = 'sixtrack'
333 number = 200
334 lang = 'F77'
335 simpoint = 3043*100E6
336
337 def lgred(self, isa, os): pass
338
339 class swim(MinneDefaultBenchmark):
340 name = 'swim'
341 number = 171
342 lang = 'F77'
343 simpoint = 2079*100E6
344
345 class wupwise(DefaultBenchmark):
346 name = 'wupwise'
347 number = 168
348 lang = 'F77'
349 simpoint = 3237*100E6
350
351 def lgred(self, isa, os): pass
352
353 class 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
364 class 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
372 class 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
380 class 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
388 class crafty(MinneDefaultBenchmark):
389 name = 'crafty'
390 number = 186
391 lang = 'C'
392 simpoint = 774*100E6
393
394 class eon(MinneDefaultBenchmark):
395 name = 'eon'
396 number = 252
397 lang = 'CXX'
398 stdin = None
399
400 class 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
406 class 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
411 class 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
417 class 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
444 class 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
464 class gcc_166(gcc):
465 def ref(self, isa, os):
466 self.simpoint = 389*100E6
467 self.args = [ '166.i', '-o', '166.s' ]
468
469 class gcc_200(gcc):
470 def ref(self, isa, os):
471 self.simpoint = 736*100E6
472 self.args = [ '200.i', '-o', '200.s' ]
473
474 class gcc_expr(gcc):
475 def ref(self, isa, os):
476 self.simpoint = 36*100E6
477 self.args = [ 'expr.i', '-o', 'expr.s' ]
478
479 class gcc_integrate(gcc):
480 def ref(self, isa, os):
481 self.simpoint = 4*100E6
482 self.args = [ 'integrate.i', '-o', 'integrate.s' ]
483
484 class gcc_scilab(gcc):
485 def ref(self, isa, os):
486 self.simpoint = 207*100E6
487 self.args = [ 'scilab.i', '-o', 'scilab.s' ]
488
489 class 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
500 class 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
511 class 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
522 class 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
533 class 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
544 class 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
555 class mcf(MinneDefaultBenchmark):
556 name = 'mcf'
557 number = 181
558 lang = 'C'
559 args = [ 'mcf.in' ]
560 simpoint = 553*100E6
561
562 class parser(MinneDefaultBenchmark):
563 name = 'parser'
564 number = 197
565 lang = 'C'
566 args = [ '2.1.dict', '-batch' ]
567 simpoint = 1146*100E6
568
569 class 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
578 class 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
588 class perlbmk_scrabbl(perlbmk):
589 def train(self, isa, os):
590 self.args = [ '-I.', '-I', 'lib', 'scrabbl.pl' ]
591 self.stdin = 'scrabbl.in'
592
593 class 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
607 class 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
615 class 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
621 class perlbmk_splitmail2(perlbmk):
622 def ref(self, isa, os):
623 self.args = [ '-I', 'lib', 'splitmail.pl', '704', '12', '26',
624 '16', '836' ]
625
626 class perlbmk_splitmail3(perlbmk):
627 def ref(self, isa, os):
628 self.args = [ '-I', 'lib', 'splitmail.pl', '535', '13', '25',
629 '24', '1091' ]
630
631 class perlbmk_splitmail4(perlbmk):
632 def ref(self, isa, os):
633 self.args = [ '-I', 'lib', 'splitmail.pl', '957', '12', '23',
634 '26', '1014' ]
635
636 class 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
661 class 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
697 class 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
704 class 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
710 class 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
716 class vpr(MinneDefaultBenchmark):
717 name = 'vpr'
718 number = 175
719 lang = 'C'
720
721 # not sure about vpr minnespec place.in
722 class 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
728 class 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
736 all = [ 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
748 if __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()