1 | #include "benchmark.h" |
---|
2 | #include "system.h" |
---|
3 | #include "stdio.h" |
---|
4 | #include "../common/common.h" |
---|
5 | |
---|
6 | void benchmark (void) |
---|
7 | { |
---|
8 | int result = 0; |
---|
9 | int num_cpu = procnum(); |
---|
10 | int cycle_begin = cycle_begin = cpu_cycles(); |
---|
11 | |
---|
12 | if (num_cpu < BENCHMARK_NB_THREAD) |
---|
13 | switch (num_cpu) |
---|
14 | { |
---|
15 | default : |
---|
16 | { |
---|
17 | #if BENCHMARK_MATRIX_MULTIPLICATION_MT |
---|
18 | int result_mm_mt = benchmark_matrix_multiplication_mt(); |
---|
19 | result += result_mm_mt; |
---|
20 | #endif |
---|
21 | #if BENCHMARK_DHRYSTONE |
---|
22 | int result_dhrystone = benchmark_dhrystone(); |
---|
23 | result += result_dhrystone; |
---|
24 | #endif |
---|
25 | #if BENCHMARK_SORT_ALL |
---|
26 | int result_sort_all = benchmark_sort_all(); |
---|
27 | result += result_sort_all; |
---|
28 | #endif |
---|
29 | #if BENCHMARK_SORT_BUBBLE |
---|
30 | int result_sort_bubble = benchmark_sort_bubble(); |
---|
31 | result += result_sort_bubble; |
---|
32 | #endif |
---|
33 | #if BENCHMARK_SORT_INSERTION |
---|
34 | int result_sort_insertion = benchmark_sort_insertion(); |
---|
35 | result += result_sort_insertion; |
---|
36 | #endif |
---|
37 | #if BENCHMARK_SORT_SELECTION |
---|
38 | int result_sort_selection = benchmark_sort_selection(); |
---|
39 | result += result_sort_selection; |
---|
40 | #endif |
---|
41 | #if BENCHMARK_SORT_SHELL |
---|
42 | int result_sort_shell = benchmark_sort_shell(); |
---|
43 | result += result_sort_shell; |
---|
44 | #endif |
---|
45 | #if BENCHMARK_MATRIX_MULTIPLICATION_ST |
---|
46 | int result_mm_st = benchmark_matrix_multiplication_st(); |
---|
47 | result += result_mm_st; |
---|
48 | #endif |
---|
49 | #if BENCHMARK_SELF_CODE_MODIFYING |
---|
50 | int result_self_code_modifying = benchmark_self_code_modifying(); |
---|
51 | result += result_self_code_modifying; |
---|
52 | #endif |
---|
53 | |
---|
54 | printf("\n"); |
---|
55 | printf("--------------------------------\n"); |
---|
56 | printf( "Partial results :\n"); |
---|
57 | #if BENCHMARK_MATRIX_MULTIPLICATION_MT |
---|
58 | printf(" * MM MT : %d\n",result_mm_mt); |
---|
59 | #endif |
---|
60 | #if BENCHMARK_DHRYSTONE |
---|
61 | printf(" * DHRYSTONE : %d\n",result_dhrystone); |
---|
62 | #endif |
---|
63 | #if BENCHMARK_SORT_ALL |
---|
64 | printf(" * SORT_ALL : %d\n",result_sort_all); |
---|
65 | #endif |
---|
66 | #if BENCHMARK_SORT_BUBBLE |
---|
67 | printf(" * SORT_BUBBLE : %d\n",result_sort_bubble); |
---|
68 | #endif |
---|
69 | #if BENCHMARK_SORT_INSERTION |
---|
70 | printf(" * SORT_INSERTION : %d\n",result_sort_insertion); |
---|
71 | #endif |
---|
72 | #if BENCHMARK_SORT_SELECTION |
---|
73 | printf(" * SORT_SELECTION : %d\n",result_sort_selection); |
---|
74 | #endif |
---|
75 | #if BENCHMARK_SORT_SHELL |
---|
76 | printf(" * SORT_SHELL : %d\n",result_sort_shell); |
---|
77 | #endif |
---|
78 | #if BENCHMARK_MATRIX_MULTIPLICATION_ST |
---|
79 | printf(" * MM ST : %d\n",result_mm_st); |
---|
80 | #endif |
---|
81 | #if BENCHMARK_SELF_CODE_MODIFYING |
---|
82 | printf(" * SELF_CODE_MODIFYING : %d\n",result_self_code_modifying); |
---|
83 | #endif |
---|
84 | printf("--------------------------------\n"); |
---|
85 | break; |
---|
86 | } |
---|
87 | } |
---|
88 | |
---|
89 | printf("\n"); |
---|
90 | printf("================================\n"); |
---|
91 | printf( "Results :\n"); |
---|
92 | printf( " * Score : %d\n", result); |
---|
93 | printf( " * Total CPU Cycle : %d\n", cpu_cycles()-cycle_begin); |
---|
94 | printf("================================\n"); |
---|
95 | } |
---|