[706] | 1 | |
---|
| 2 | individual_metrics = [ 'req_trig_update', 'local_update', 'remote_update', 'update_cost', 'req_trig_m_inv', 'local_m_inv', 'remote_m_inv', 'm_inv_cost', 'broadcast', 'total_update', 'total_m_inv' ] |
---|
[749] | 3 | |
---|
[706] | 4 | grouped_metrics = [ 'update_cost', 'm_inv_cost' ] |
---|
[749] | 5 | |
---|
[706] | 6 | stacked_metrics = [ 'nonwrite_broadcast', 'write_broadcast', 'local_m_inv', 'remote_m_inv', 'local_update', 'remote_update' ] |
---|
| 7 | |
---|
[779] | 8 | m_prot_name = {} |
---|
| 9 | m_prot_name['dhccp'] = "DHCCP" |
---|
| 10 | m_prot_name['rwt'] = "RWT" |
---|
| 11 | m_prot_name['mesi'] = "HMESI" |
---|
| 12 | |
---|
[706] | 13 | m_app_name = {} |
---|
| 14 | m_app_name['mandel'] = "Mandelbrot" |
---|
| 15 | m_app_name['filter'] = "Filter" |
---|
| 16 | m_app_name['filt_ga'] = "Filter (opt.)" |
---|
| 17 | m_app_name['histogram'] = "Histogram" |
---|
| 18 | m_app_name['kmeans'] = "Kmeans" |
---|
[749] | 19 | m_app_name['pca'] = "PCA" |
---|
| 20 | m_app_name['mat_mult'] = "Matrix Mult." |
---|
[706] | 21 | m_app_name['barnes'] = "Barnes" |
---|
| 22 | m_app_name['fmm'] = "FMM" |
---|
| 23 | m_app_name['ocean'] = "Ocean" |
---|
| 24 | m_app_name['raytrace'] = "Raytrace" |
---|
| 25 | m_app_name['radiosity'] = "Radiosity" |
---|
| 26 | m_app_name['waters'] = "Water Sp." |
---|
| 27 | m_app_name['watern'] = "Water Nsq." |
---|
| 28 | m_app_name['cholesky'] = "Cholesky" |
---|
| 29 | m_app_name['lu'] = "LU" |
---|
| 30 | m_app_name['fft'] = "FFT" |
---|
| 31 | m_app_name['radix'] = "Radix" |
---|
| 32 | m_app_name['fft_ga'] = "FFT" |
---|
| 33 | m_app_name['radix_ga'] = "Radix" |
---|
| 34 | |
---|
| 35 | m_metric_id = {} |
---|
| 36 | m_metric_tag = {} |
---|
| 37 | m_metric_tag['counter_reset'] = "[000]" |
---|
| 38 | m_metric_tag['ncycles'] = "[001]" |
---|
| 39 | |
---|
[779] | 40 | m_metric_tag['local_read'] = "[010]" |
---|
| 41 | m_metric_tag['remote_read'] = "[011]" |
---|
| 42 | m_metric_tag['read_cost'] = "[012]" |
---|
[706] | 43 | |
---|
[779] | 44 | m_metric_tag['local_write'] = "[020]" |
---|
| 45 | m_metric_tag['remote_write'] = "[021]" |
---|
| 46 | m_metric_tag['write_flits_local'] = "[022]" |
---|
| 47 | m_metric_tag['write_flits_remote'] = "[023]" |
---|
| 48 | m_metric_tag['write_cost'] = "[024]" |
---|
| 49 | m_metric_tag['write_l1_miss_ncc'] = "[025]" |
---|
[706] | 50 | |
---|
[779] | 51 | m_metric_tag['local_ll'] = "[030]" |
---|
| 52 | m_metric_tag['remote_ll'] = "[031]" |
---|
| 53 | m_metric_tag['ll_cost'] = "[032]" |
---|
| 54 | |
---|
| 55 | m_metric_tag['local_sc'] = "[040]" |
---|
| 56 | m_metric_tag['remote_sc'] = "[041]" |
---|
| 57 | m_metric_tag['sc_cost'] = "[042]" |
---|
| 58 | |
---|
| 59 | m_metric_tag['local_cas'] = "[050]" |
---|
| 60 | m_metric_tag['remote_cas'] = "[051]" |
---|
| 61 | m_metric_tag['cas_cost'] = "[052]" |
---|
| 62 | |
---|
| 63 | m_metric_tag['req_trig_update'] = "[060]" |
---|
| 64 | m_metric_tag['local_update'] = "[061]" |
---|
| 65 | m_metric_tag['remote_update'] = "[062]" |
---|
| 66 | m_metric_tag['update_cost'] = "[063]" |
---|
| 67 | |
---|
| 68 | m_metric_tag['req_trig_m_inv'] = "[070]" |
---|
| 69 | m_metric_tag['local_m_inv'] = "[071]" |
---|
| 70 | m_metric_tag['remote_m_inv'] = "[072]" |
---|
| 71 | m_metric_tag['m_inv_cost'] = "[073]" |
---|
| 72 | |
---|
| 73 | m_metric_tag['broadcast'] = "[080]" |
---|
| 74 | m_metric_tag['write_broadcast'] = "[081]" |
---|
| 75 | |
---|
| 76 | m_metric_tag['local_cleanup'] = "[090]" |
---|
| 77 | m_metric_tag['remote_cleanup'] = "[091]" |
---|
| 78 | m_metric_tag['cleanup_cost'] = "[092]" |
---|
| 79 | m_metric_tag['cleanup_data_flits'] = "[093]" |
---|
| 80 | |
---|
| 81 | m_metric_tag['read_miss'] = "[100]" |
---|
| 82 | m_metric_tag['write_miss'] = "[101]" |
---|
| 83 | m_metric_tag['write_dirty'] = "[102]" |
---|
| 84 | m_metric_tag['read_hit_trt'] = "[110]" # Reads blocked by a hit in the TRT |
---|
| 85 | m_metric_tag['trans_full_trt'] = "[111]" # Transactions blocked because the TRT is full |
---|
| 86 | m_metric_tag['put'] = "[120]" |
---|
| 87 | m_metric_tag['get'] = "[121]" |
---|
| 88 | m_metric_tag['min_heap_slots_av'] = "[130]" |
---|
| 89 | |
---|
| 90 | m_metric_tag['ncc_to_cc_read'] = "[140]" |
---|
| 91 | m_metric_tag['ncc_to_cc_write'] = "[141]" |
---|
| 92 | |
---|
| 93 | m_metric_tag['total_read'] = "[500]" |
---|
| 94 | m_metric_tag['total_write'] = "[501]" |
---|
| 95 | m_metric_tag['total_ll'] = "[502]" |
---|
| 96 | m_metric_tag['total_sc'] = "[503]" |
---|
| 97 | m_metric_tag['total_cas'] = "[504]" |
---|
| 98 | m_metric_tag['total_update'] = "[505]" |
---|
| 99 | m_metric_tag['total_m_inv'] = "[506]" |
---|
| 100 | m_metric_tag['total_cleanup'] = "[507]" |
---|
| 101 | m_metric_tag['total_direct'] = "[508]" |
---|
| 102 | m_metric_tag['total_ncc_to_cc'] = "[509]" |
---|
| 103 | |
---|
| 104 | m_metric_tag['nonwrite_broadcast'] = "[600]" |
---|
| 105 | m_metric_tag['broadcast_cost'] = "[601]" |
---|
| 106 | m_metric_tag['direct_cost'] = "[602]" |
---|
| 107 | |
---|
[706] | 108 | all_metrics = m_metric_tag.keys() |
---|
| 109 | all_tags = m_metric_tag.values() |
---|
| 110 | |
---|
| 111 | m_metric_name = {} |
---|
| 112 | m_metric_name['counter_reset'] = "Counters reset at cycle" |
---|
| 113 | m_metric_name['ncycles'] = "Number of Cycles" |
---|
[779] | 114 | |
---|
[706] | 115 | m_metric_name['local_read'] = "Number of Local Reads (Miss in L1)" |
---|
| 116 | m_metric_name['remote_read'] = "Number of Remote Reads (Miss in L1)" |
---|
| 117 | m_metric_name['read_cost'] = "Read Cost" |
---|
[779] | 118 | |
---|
[706] | 119 | m_metric_name['local_write'] = "Number of Local Writes" |
---|
| 120 | m_metric_name['remote_write'] = "Number of Remote Writes" |
---|
| 121 | m_metric_name['write_flits_local'] = "Number of Local Write Flits" |
---|
| 122 | m_metric_name['write_flits_remote'] = "Number of Remote Write Flits" |
---|
| 123 | m_metric_name['write_cost'] = "Write Cost" |
---|
[779] | 124 | |
---|
[706] | 125 | m_metric_name['local_ll'] = "Number of Local LL" |
---|
| 126 | m_metric_name['remote_ll'] = "Number of Remote LL" |
---|
| 127 | m_metric_name['ll_cost'] = "LL Cost" |
---|
[779] | 128 | |
---|
[706] | 129 | m_metric_name['local_sc'] = "Number of Local SC" |
---|
| 130 | m_metric_name['remote_sc'] = "Number of Remote SC" |
---|
| 131 | m_metric_name['sc_cost'] = "SC Cost" |
---|
[779] | 132 | |
---|
[706] | 133 | m_metric_name['local_cas'] = "Number of Local CAS" |
---|
| 134 | m_metric_name['remote_cas'] = "Number of Remote CAS" |
---|
| 135 | m_metric_name['cas_cost'] = "CAS Cost" |
---|
[779] | 136 | |
---|
[706] | 137 | m_metric_name['req_trig_update'] = "Number of Requests Triggering an Update" |
---|
| 138 | m_metric_name['local_update'] = "Number of Local Updates" |
---|
| 139 | m_metric_name['remote_update'] = "Number of Remote Updates" |
---|
| 140 | m_metric_name['update_cost'] = "Update Cost" |
---|
[779] | 141 | |
---|
[706] | 142 | m_metric_name['req_trig_m_inv'] = "Number of Requests Triggering a M.inv" |
---|
| 143 | m_metric_name['local_m_inv'] = "Number of Local Multi Inval" |
---|
| 144 | m_metric_name['remote_m_inv'] = "Number of Remote Multi Inval" |
---|
| 145 | m_metric_name['m_inv_cost'] = "Multi Inval Cost" |
---|
[779] | 146 | |
---|
[706] | 147 | m_metric_name['broadcast'] = "Total Number of Broadcasts" |
---|
[779] | 148 | m_metric_name['write_broadcast'] = "Number of Broadcasts Trig. by Writes" |
---|
| 149 | m_metric_name['nonwrite_broadcast'] = "Number of Broadcasts not Trig. by Writes" |
---|
| 150 | |
---|
[706] | 151 | m_metric_name['local_cleanup'] = "Number of Local Cleanups" |
---|
| 152 | m_metric_name['remote_cleanup'] = "Number of Remote Cleanups" |
---|
| 153 | m_metric_name['cleanup_cost'] = "Cleanup Cost" |
---|
[779] | 154 | |
---|
| 155 | m_metric_name['read_miss'] = "Number of Read Miss (in L2)" |
---|
[706] | 156 | m_metric_name['write_miss'] = "Number of Write Miss (in L2)" |
---|
| 157 | m_metric_name['write_dirty'] = "Number of Write Dirty (from L2 to Memory)" |
---|
| 158 | m_metric_name['read_hit_trt'] = "Number of Reads Blocked by a Hit in TRT" # Reads blocked by a hit in the TRT |
---|
| 159 | m_metric_name['trans_full_trt'] = "Number of Transactions Blocked because the TRT is Full" # Transactions blocked because the TRT is full |
---|
| 160 | m_metric_name['put'] = "Number of PUT to Memory" |
---|
| 161 | m_metric_name['get'] = "Number of GET from Memory" |
---|
[779] | 162 | m_metric_name['min_heap_slots_av'] = "Minimum Number of Heap Slots available" |
---|
[706] | 163 | |
---|
[779] | 164 | m_metric_name['ncc_to_cc_read'] = "Number or Reads trig. NCC to CC" |
---|
| 165 | m_metric_name['ncc_to_cc_write'] = "Number of Writes trig. NCC to CC" |
---|
| 166 | |
---|
[706] | 167 | m_metric_name['total_read'] = "Total Number of Reads" |
---|
| 168 | m_metric_name['total_write'] = "Total Number of Writes" |
---|
| 169 | m_metric_name['total_ll'] = "Total Number of LL" |
---|
| 170 | m_metric_name['total_sc'] = "Total Number of SC" |
---|
| 171 | m_metric_name['total_cas'] = "Total Number of CAS" |
---|
| 172 | m_metric_name['total_update'] = "Total Number of Updates" |
---|
| 173 | m_metric_name['total_m_inv'] = "Total Number of Multi Inval" |
---|
| 174 | m_metric_name['total_cleanup'] = "Total Number of Cleanups" |
---|
| 175 | m_metric_name['total_direct'] = "Total Number of Direct Requests" |
---|
[779] | 176 | m_metric_name['total_ncc_to_cc'] = "Total Number of NCC to CC Changes" |
---|
[706] | 177 | m_metric_name['broadcast_cost'] = "Broadcast Cost" |
---|
| 178 | m_metric_name['direct_cost'] = "Direct Requests Cost" |
---|
[779] | 179 | m_metric_name['total_stacked'] = "??" # Normalization factor, does not have a name (unused) |
---|
[706] | 180 | |
---|
| 181 | |
---|
| 182 | |
---|
| 183 | m_metric_norm = {} # "N" (None), P (#procs), C (#cycles), W (#writes), R (#reads), D (#direct req -- R ou W), n (value with n proc(s)) |
---|
| 184 | m_metric_norm['req_trig_update'] = "C" |
---|
| 185 | m_metric_norm['local_update'] = "C" |
---|
| 186 | m_metric_norm['remote_update'] = "C" |
---|
| 187 | m_metric_norm['update_cost'] = "C" |
---|
| 188 | m_metric_norm['req_trig_m_inv'] = "C" |
---|
| 189 | m_metric_norm['local_m_inv'] = "C" |
---|
| 190 | m_metric_norm['remote_m_inv'] = "C" |
---|
| 191 | m_metric_norm['m_inv_cost'] = "C" |
---|
| 192 | m_metric_norm['broadcast'] = "C" |
---|
| 193 | m_metric_norm['total_update'] = "C" |
---|
| 194 | m_metric_norm['total_m_inv'] = "C" |
---|
| 195 | |
---|
| 196 | m_norm_factor_name = {} |
---|
| 197 | m_norm_factor_name['N'] = "" |
---|
| 198 | m_norm_factor_name['P'] = "Normalized w.r.t.\\nthe Number of Processors" |
---|
| 199 | m_norm_factor_name['C'] = "Normalized w.r.t.\\nthe Number of Cycles (x 1000)" |
---|
| 200 | m_norm_factor_name['W'] = "Normalized w.r.t.\\nthe Number of Writes" |
---|
| 201 | m_norm_factor_name['R'] = "Normalized w.r.t.\\nthe Number of Reads" |
---|
| 202 | m_norm_factor_name['D'] = "Normalized w.r.t.\\nthe Number of Direct Requests" |
---|
| 203 | m_norm_factor_name['1'] = "Normalized w.r.t.\\nthe Value on 1 Processor" |
---|
| 204 | m_norm_factor_name['4'] = "Normalized w.r.t.\\nthe Value on 4 Processors" |
---|
| 205 | m_norm_factor_name['8'] = "Normalized w.r.t.\\nthe Value on 8 Processors" |
---|
| 206 | m_norm_factor_name['16'] = "Normalized w.r.t.\\nthe Value on 16 Processors" |
---|
| 207 | m_norm_factor_name['32'] = "Normalized w.r.t.\\nthe Value on 32 Processors" |
---|
| 208 | m_norm_factor_name['64'] = "Normalized w.r.t.\\nthe Value on 64 Processors" |
---|
| 209 | m_norm_factor_name['128'] = "Normalized w.r.t.\\nthe Value on 128 Processors" |
---|
| 210 | m_norm_factor_name['256'] = "Normalized w.r.t.\\nthe Value on 256 Processors" |
---|
| 211 | |
---|
| 212 | |
---|
| 213 | |
---|
| 214 | colors = [ "\"#008000\"", "\"#000080\"", "\"#BADC98\"", "\"#BA98DC\"", "\"#98DCBA\"", "\"#98BADC\"", "\"#BA9876\"", "\"#BA7698\"", "\"#98BA76\"", "\"#9876BA\"", "\"#76BA98\"", "\"#7698BA\"" ] |
---|
| 215 | |
---|
| 216 | |
---|