[134] | 1 | #include "benchmark.h" |
---|
| 2 | #include "system.h" |
---|
| 3 | #include "stdio.h" |
---|
| 4 | #include "../common/common.h" |
---|
| 5 | |
---|
| 6 | void benchmark (void) |
---|
| 7 | { |
---|
[140] | 8 | int result = 0; |
---|
| 9 | int num_cpu = procnum(); |
---|
[134] | 10 | int cycle_begin = cycle_begin = cpu_cycles(); |
---|
[140] | 11 | |
---|
| 12 | if (num_cpu < BENCHMARK_NB_THREAD) |
---|
| 13 | switch (num_cpu) |
---|
| 14 | { |
---|
| 15 | default : |
---|
| 16 | { |
---|
[134] | 17 | #if BENCHMARK_MATRIX_MULTIPLICATION_MT |
---|
[140] | 18 | int result_mm_mt = benchmark_matrix_multiplication_mt(); |
---|
| 19 | result += result_mm_mt; |
---|
[134] | 20 | #endif |
---|
| 21 | #if BENCHMARK_DHRYSTONE |
---|
[140] | 22 | int result_dhrystone = benchmark_dhrystone(); |
---|
| 23 | result += result_dhrystone; |
---|
[134] | 24 | #endif |
---|
[140] | 25 | #if BENCHMARK_SORT_ALL |
---|
| 26 | int result_sort_all = benchmark_sort_all(); |
---|
| 27 | result += result_sort_all; |
---|
[134] | 28 | #endif |
---|
[140] | 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 |
---|
[134] | 45 | #if BENCHMARK_MATRIX_MULTIPLICATION_ST |
---|
[140] | 46 | int result_mm_st = benchmark_matrix_multiplication_st(); |
---|
| 47 | result += result_mm_st; |
---|
[134] | 48 | #endif |
---|
[140] | 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"); |
---|
[134] | 57 | #if BENCHMARK_MATRIX_MULTIPLICATION_MT |
---|
[140] | 58 | printf(" * MM MT : %d\n",result_mm_mt); |
---|
[134] | 59 | #endif |
---|
| 60 | #if BENCHMARK_DHRYSTONE |
---|
[140] | 61 | printf(" * DHRYSTONE : %d\n",result_dhrystone); |
---|
[134] | 62 | #endif |
---|
[140] | 63 | #if BENCHMARK_SORT_ALL |
---|
| 64 | printf(" * SORT_ALL : %d\n",result_sort_all); |
---|
[134] | 65 | #endif |
---|
[140] | 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 |
---|
[134] | 78 | #if BENCHMARK_MATRIX_MULTIPLICATION_ST |
---|
[140] | 79 | printf(" * MM ST : %d\n",result_mm_st); |
---|
[134] | 80 | #endif |
---|
[140] | 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 | } |
---|
[134] | 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 | } |
---|