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