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