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