source: trunk/Softwares/SPECINT2000/src/c/benchmark.c @ 118

Last change on this file since 118 was 117, checked in by rosiere, 15 years ago

1) Platforms : add new organization for test
2) Load_Store_Unit : add array to count nb_check in store_queue
3) Issue_queue and Core_Glue : rewrite the issue network
4) Special_Register_Unit : add reset value to register CID
5) Softwares : add multicontext test
6) Softwares : add SPECINT
7) Softwares : add MiBench?
7) Read_queue : inhib access for r0
8) Change Core_Glue (network) - dont yet support priority and load balancing scheme

  • Property svn:keywords set to Id
File size: 14.8 KB
Line 
1// $Id: benchmark.c 117 2009-05-16 14:42:39Z rosiere $
2
3#include <stdlib.h>
4#include <string.h>
5#include <stdio.h>
6
7#ifndef SPECINT2000_PATH
8# error "SPECINT2000_PATH must be defined"
9#endif
10
11//#define SPEC_DATA "ref"
12  #define SPEC_DATA "test"
13//#define SPEC_DATA "train"
14
15//=======================================================================================
16//                                                                      [ run_none ]     
17//=======================================================================================
18void run_none ()
19{
20  printf("***** none *****\n");
21  return;
22}
23
24//=======================================================================================
25//                                                                  [ run_164_gzip ]
26//=======================================================================================
27void run_164_gzip ()
28{                                                                                                         
29  printf("***** 164.gzip - Begin *****\n");
30
31  int     argc = 4;
32  char ** argv;
33
34  char  * execname        = "./gzip";
35  char  *_filename        = "/164.gzip/data/test/input/input.compressed";
36  char  * filename        = (char *) malloc(strlen(SPECINT2000_PATH)+strlen(_filename));
37  strcpy(filename,SPECINT2000_PATH); strcat(filename,_filename);
38  char  * input_size      = "1";
39  char  * compressed_size = "1";
40
41 // Create the arguments
42  if ((argc < 1) || (argc > 4) )
43    {
44      printf("Usage : gzip [filename] [intput_size] [compressed_size]\n");
45      return;
46    }
47   
48  argv    = (char **)malloc (argc * sizeof(char *));
49 
50  argv[0] = (char *) malloc (strlen(execname       ));
51  argv[0] = memcpy(argv[0],execname        ,strlen(execname       ));
52
53  if (argc > 1)
54    {
55  argv[1] = (char *) malloc (strlen(filename       ));
56  argv[1] = memcpy(argv[1],filename        ,strlen(filename       ));
57    }
58 
59  if (argc > 2)
60    {
61  argv[2] = (char *) malloc (strlen(input_size     ));
62  argv[2] = memcpy(argv[2],input_size      ,strlen(input_size     ));
63    }
64
65  if (argc > 3)
66    { 
67  argv[3] = (char *) malloc (strlen(compressed_size));
68  argv[3] = memcpy(argv[3],compressed_size ,strlen(compressed_size));
69    }
70
71  // +-------------------+
72  // | Run the benchmark |
73  // +-------------------+
74  main_164_gzip (argc,argv);
75
76  free(filename);
77 
78  printf("***** 164.gzip - End   *****\n");
79}                                                                                                         
80
81//=======================================================================================
82//                                                                   [ run_175_vpr ]
83//=======================================================================================
84void run_175_vpr ()
85{
86  printf("***** 175.vpr - Begin *****\n");
87
88#define   nb_option_175_vpr 12
89  int     argc      = 5 + nb_option_175_vpr;
90  char ** argv;
91
92  char  * execname        = "./vpr";
93       
94  char  *_circuit_net     = "/175.vpr/data/test/input/net.in";
95  char  *_fpga_arch       = "/175.vpr/data/test/input/arch.in";
96  char  *_placed_out      = "/175.vpr/data/test/input/place.in";
97  char  *_routed_out      = "/175.vpr/data/test/input/route.out";
98       
99  char  * circuit_net     = (char *) malloc(strlen(SPECINT2000_PATH)+strlen(_circuit_net));
100  char  * fpga_arch       = (char *) malloc(strlen(SPECINT2000_PATH)+strlen(_fpga_arch  ));
101  char  * placed_out      = (char *) malloc(strlen(SPECINT2000_PATH)+strlen(_placed_out ));
102  char  * routed_out      = (char *) malloc(strlen(SPECINT2000_PATH)+strlen(_routed_out ));
103
104  strcpy(circuit_net,SPECINT2000_PATH); strcat(circuit_net,_circuit_net);
105  strcpy(fpga_arch  ,SPECINT2000_PATH); strcat(fpga_arch  ,_fpga_arch  );
106  strcpy(placed_out ,SPECINT2000_PATH); strcat(placed_out ,_placed_out );
107  strcpy(routed_out ,SPECINT2000_PATH); strcat(routed_out ,_routed_out );
108
109  /*
110  General Options: 
111  [-nodisp]
112  [-auto <int>]
113  [-route_only]
114  [-place_only]
115  [-aspect_ratio <float>]
116  [-nx <int>]
117  [-ny <int>]
118  [-full_stats]
119  [-fast]
120  [-timing_analysis on | off]
121
122  Placer Options:
123  [-init_t <float>]
124  [-exit_t <float>]
125  [-alpha_t <float>]
126  [-inner_num <float>]
127  [-seed <int>]
128  [-place_cost_exp <float>]
129  [-place_cost_type linear | nonlinear]
130  [-place_chan_width <int>]
131  [-num_regions <int>]
132  [-fix_pins random | <file.pads>]
133 
134  Router Options: 
135  [-max_router_iterations <int>]
136  [-bb_factor <int>]
137  [-initial_pres_fac <float>]
138  [-pres_fac_mult <float>]
139  [-acc_fac <float>]
140  [-first_iter_pres_fac <float>]
141  [-bend_cost <float>]
142  [-route_type global | detailed]
143  [-verify_binary_search]
144  [-route_chan_width <int>]
145  */
146
147  char * option [nb_option_175_vpr] = 
148    {
149      "-nodisp"              ,
150      "-route_only"          , 
151      "-route_chan_width"    , "15",
152      "-pres_fac_mult"       , "2" ,
153      "-acc_fac"             , "1" ,
154      "-first_iter_pres_fac" , "4" ,
155      "-initial_pres_fac"    , "8" 
156    };
157 
158  // Create the arguments
159  if (argc < 5)
160    {
161      printf("Usage : vpr circuit.net fpga.arch placed.out routed.out [Options ...]\n");
162      return;
163    }
164   
165  argv    = (char **)malloc (argc * sizeof(char *));
166 
167  argv[0] = (char *) malloc (strlen(execname       ));
168  argv[0] = memcpy(argv[0],execname        ,strlen(execname       ));
169
170  argv[1] = (char *) malloc (strlen(circuit_net    ));
171  argv[1] = memcpy(argv[1],circuit_net     ,strlen(circuit_net    ));
172
173  argv[2] = (char *) malloc (strlen(fpga_arch      ));
174  argv[2] = memcpy(argv[2],fpga_arch       ,strlen(fpga_arch      ));
175
176  argv[3] = (char *) malloc (strlen(placed_out     ));
177  argv[3] = memcpy(argv[3],placed_out      ,strlen(placed_out     ));
178
179  argv[4] = (char *) malloc (strlen(routed_out     ));
180  argv[4] = memcpy(argv[4],routed_out      ,strlen(routed_out     ));
181 
182  {
183    unsigned int i;
184   
185    for (i = 0; i < nb_option_175_vpr; i ++)
186      {
187        argv[5+i] = (char *) malloc (strlen(option[i]      ));
188        argv[5+i] = memcpy(argv[5+i],option[i]       ,strlen(option[i]      ));
189      }// end i
190  }
191 
192  // +-------------------+
193  // | Run the benchmark |
194  // +-------------------+
195  main_175_vpr (argc,argv);
196
197  free(circuit_net);
198  free(fpga_arch  );
199  free(placed_out );
200  free(routed_out );
201
202  printf("***** 175.vpr - End   *****\n");
203}                                                                                                         
204
205//=======================================================================================
206//                                                                   [ run_176_gcc ]
207//=======================================================================================
208void run_176_gcc ()
209{
210  printf("***** 176.gcc - Begin *****\n");
211
212#define   nb_option_176_gcc 2
213  int     argc      = 2 + nb_option_176_gcc;
214  char ** argv;
215
216  char  * execname        = "./gcc";
217  char  *_filename        = "/176.gcc/data/test/input/cccp.i";
218  char  * filename        = (char *) malloc(strlen(SPECINT2000_PATH)+strlen(_filename));
219  strcpy(filename,SPECINT2000_PATH); strcat(filename,_filename);
220
221  /*
222    -O
223    -fdefer-pop
224    -fomit-frame-pointer
225    -fcse-follow-jumps
226    -fcse-skip-blocks
227    -fexpensive-optimizations
228    -fthread-jumps
229    -fstrength-reduce
230    -funroll-loops
231    -fwritable-strings
232    -fpeephole
233    -fforce-mem
234    -ffunction-cse
235    -finline-functions
236    -finline
237    -freg-struct-return
238    -fdelayed-branch
239    -frerun-cse-after-loop
240    -fschedule-insns
241    -fschedule-insns2
242    -fcommon
243    -fgnu-linker
244    -m88110
245    -m88100
246    -m88000
247    -mno-ocs-debug-info
248    -mno-ocs-frame-position
249    -mcheck-zero-division
250  */
251
252  char * option [nb_option_176_gcc] = 
253    {
254      "-o"                   , "cccp.s"
255    };
256 
257  // Create the arguments
258  if (argc < 2)
259    {
260      printf("Usage : gcc filename [Options ...]\n");
261      return;
262    }
263   
264  argv    = (char **)malloc (argc * sizeof(char *));
265 
266  argv[0] = (char *) malloc (strlen(execname       ));
267  argv[0] = memcpy(argv[0],execname        ,strlen(execname       ));
268  argv[1] = (char *) malloc (strlen(filename       ));
269  argv[1] = memcpy(argv[1],filename        ,strlen(filename       ));
270 
271  {
272    unsigned int i;
273   
274    for (i = 0; i < nb_option_176_gcc; i ++)
275      {
276        argv[2+i] = (char *) malloc (strlen(option[i]      ));
277        argv[2+i] = memcpy(argv[2+i],option[i]       ,strlen(option[i]      ));
278      }// end i
279  }
280 
281  // +-------------------+
282  // | Run the benchmark |
283  // +-------------------+
284  main_176_gcc (argc,argv);
285
286  free(filename);
287 
288  printf("***** 176.gcc - End   *****\n");
289}                                                                                                         
290
291//=======================================================================================
292//                                                                   [ run_181_mcf ]
293//=======================================================================================
294void run_181_mcf ()
295{                                                                                                         
296  printf("***** 181.mcf - Begin *****\n");
297 
298  int     argc = 2;
299  char ** argv;
300
301  char  * execname        = "./mcf";
302  char  *_filename        = "/181.mcf/data/test/input/inp.in";
303  char  * filename        = (char *) malloc(strlen(SPECINT2000_PATH)+strlen(_filename));
304  strcpy(filename,SPECINT2000_PATH); strcat(filename,_filename);
305
306  // Create the arguments
307  if (argc != 2)
308    {
309      printf("Usage : mcf filename\n");
310      return;
311    }
312   
313  argv    = (char **)malloc (argc * sizeof(char *));
314 
315  argv[0] = (char *) malloc (strlen(execname       ));
316  argv[0] = memcpy(argv[0],execname        ,strlen(execname       ));
317
318  argv[1] = (char *) malloc (strlen(filename       ));
319  argv[1] = memcpy(argv[1],filename        ,strlen(filename       ));
320 
321  // +-------------------+
322  // | Run the benchmark |
323  // +-------------------+
324  main_181_mcf (argc,argv);
325
326  free(filename);
327 
328  printf("***** 181.mcf - End   *****\n");
329}                                                                                                         
330
331//=======================================================================================
332//                                                                [ run_255_vortex ]
333//=======================================================================================
334void run_255_vortex ()
335{                                                                                                         
336  printf("***** 255.vortex - Begin *****\n");
337 
338  int     argc = 2;
339  char ** argv;
340
341  char  * execname        = "./vortex";
342  char  *_filename        = "/255.vortex/data/test/input/bendian.raw";
343  char  * filename        = (char *) malloc(strlen(SPECINT2000_PATH)+strlen(_filename));
344  strcpy(filename,SPECINT2000_PATH); strcat(filename,_filename);
345 
346  // Create the arguments
347  if (argc != 2)
348    {
349      printf("Usage : vortex filename\n");
350      return;
351    }
352   
353  argv    = (char **)malloc (argc * sizeof(char *));
354
355  argv[0] = (char *) malloc (strlen(execname       ));
356  argv[0] = memcpy(argv[0],execname        ,strlen(execname       ));
357  argv[1] = (char *) malloc (strlen(filename       ));
358  argv[1] = memcpy(argv[1],filename        ,strlen(filename       ));
359
360  // +-------------------+
361  // | Run the benchmark |
362  // +-------------------+
363  main_255_vortex (argc,argv);
364
365  free(filename);
366 
367  printf("***** 255.vortex - End   *****\n");
368}                                                                                                         
369 
370//=======================================================================================
371//                                                                 [ run_256_bzip2 ]
372//=======================================================================================
373void run_256_bzip2 ()
374{                                                                                                         
375  printf("***** 256.bzip2 - Begin *****\n");
376
377  int     argc = 4;
378  char ** argv;
379
380  char  * execname        = "./bzip2";
381  char  *_filename        = "/256.bzip2/data/test/input/input.random";
382  char  * filename        = (char *) malloc(strlen(SPECINT2000_PATH)+strlen(_filename));
383  strcpy(filename,SPECINT2000_PATH); strcat(filename,_filename);
384  char  * input_size      = "1";
385  char  * compressed_size = "1";
386
387  // Create the arguments
388  if ((argc < 1) || (argc > 4) )
389    {
390      printf("Usage : bzip2 [filename] [intput_size] [compressed_size]\n");
391      return;
392    }
393 
394  argv    = (char **)malloc (argc * sizeof(char *));
395  argv[0] = (char *) malloc (strlen(execname       ));
396  argv[0] = memcpy(argv[0],execname        ,strlen(execname       ));
397
398  if (argc > 1)
399    {
400  argv[1] = (char *) malloc (strlen(filename       ));
401  argv[1] = memcpy(argv[1],filename        ,strlen(filename       ));
402    }
403 
404  if (argc > 2)
405    {
406  argv[2] = (char *) malloc (strlen(input_size     ));
407  argv[2] = memcpy(argv[2],input_size      ,strlen(input_size     ));
408    }
409
410  if (argc > 3)
411    { 
412  argv[3] = (char *) malloc (strlen(compressed_size));
413  argv[3] = memcpy(argv[3],compressed_size ,strlen(compressed_size));
414    }
415 
416  // +-------------------+
417  // | Run the benchmark |
418  // +-------------------+
419  main_256_bzip2 (argc,argv);
420
421  free(filename);
422 
423  printf("***** 256.bzip2 - End   *****\n");
424}
425
426//=======================================================================================
427//                                                                 [ run_300_twolf ]
428//=======================================================================================
429void run_300_twolf ()
430{                                                                                                         
431  printf("***** 300.twolf - Begin *****\n");
432
433  int     argc = 2;
434  char ** argv;
435
436  char  * execname        = "./twolf";
437  char  *_circuitName        = "/300.twolf/data/test/input/test";
438  char  * circuitName        = (char *) malloc(strlen(SPECINT2000_PATH)+strlen(_circuitName));
439  strcpy(circuitName,SPECINT2000_PATH); strcat(circuitName,_circuitName);
440
441  // Create the arguments
442  if ((argc < 1) || (argc > 2) )
443    {
444      printf("Usage : twolf circuitName\n");
445      return;
446    }
447 
448  argv    = (char **)malloc (argc * sizeof(char *));
449  argv[0] = (char *) malloc (strlen(execname       ));
450  argv[0] = memcpy(argv[0],execname        ,strlen(execname       ));
451
452  argv[1] = (char *) malloc (strlen(circuitName       ));
453  argv[1] = memcpy(argv[1],circuitName     ,strlen(circuitName    ));
454 
455  // +-------------------+
456  // | Run the benchmark |
457  // +-------------------+
458  main_300_twolf (2,argv);
459
460  free(circuitName);
461 
462  printf("***** 300.twolf - End   *****\n");
463}
464
465/*
466//=======================================================================================
467//                                                                    [ run_dhry21 ]
468//=======================================================================================
469void run_dhry21 ()
470{                                                                                                         
471  printf("***** dhry2.1 - Begin *****\n");
472
473  int     argc = 2;
474  char ** argv;
475
476  char * execname        = "./dhry21";
477  char * numberOfRuns    = "2000";
478
479  // Create the arguments
480  if (argc != 2)
481    {
482      printf("Usage : dhry21 numberOfRuns\n");
483      return;
484    }
485   
486  argv    = (char **)malloc (argc * sizeof(char *));
487 
488  argv[0] = (char *) malloc (strlen(execname       ));
489  argv[0] = memcpy(argv[0],execname        ,strlen(execname       ));
490  argv[1] = (char *) malloc (strlen(numberOfRuns   ));
491  argv[1] = memcpy(argv[1],numberOfRuns    ,strlen(numberOfRuns   ));
492 
493  // Run the benchmark
494  main_dhry21 (argc,argv);
495
496  printf("***** dhry2.1 - End   *****\n");
497}
498*/
Note: See TracBrowser for help on using the repository browser.