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' ] |
---|
3 | grouped_metrics = [ 'update_cost', 'm_inv_cost' ] |
---|
4 | stacked_metrics = [ 'nonwrite_broadcast', 'write_broadcast', 'local_m_inv', 'remote_m_inv', 'local_update', 'remote_update' ] |
---|
5 | |
---|
6 | m_app_name = {} |
---|
7 | m_app_name['mandel'] = "Mandelbrot" |
---|
8 | m_app_name['filter'] = "Filter" |
---|
9 | m_app_name['filt_ga'] = "Filter (opt.)" |
---|
10 | m_app_name['histogram'] = "Histogram" |
---|
11 | m_app_name['kmeans'] = "Kmeans" |
---|
12 | m_app_name['barnes'] = "Barnes" |
---|
13 | m_app_name['fmm'] = "FMM" |
---|
14 | m_app_name['ocean'] = "Ocean" |
---|
15 | m_app_name['raytrace'] = "Raytrace" |
---|
16 | m_app_name['radiosity'] = "Radiosity" |
---|
17 | m_app_name['waters'] = "Water Sp." |
---|
18 | m_app_name['watern'] = "Water Nsq." |
---|
19 | m_app_name['cholesky'] = "Cholesky" |
---|
20 | m_app_name['lu'] = "LU" |
---|
21 | m_app_name['fft'] = "FFT" |
---|
22 | m_app_name['radix'] = "Radix" |
---|
23 | m_app_name['fft_ga'] = "FFT" |
---|
24 | m_app_name['radix_ga'] = "Radix" |
---|
25 | |
---|
26 | m_metric_id = {} |
---|
27 | m_metric_tag = {} |
---|
28 | m_metric_tag['counter_reset'] = "[000]" |
---|
29 | m_metric_tag['ncycles'] = "[001]" |
---|
30 | m_metric_tag['local_read'] = "[002]" |
---|
31 | m_metric_tag['remote_read'] = "[003]" |
---|
32 | m_metric_tag['read_cost'] = "[004]" |
---|
33 | m_metric_tag['local_write'] = "[005]" |
---|
34 | m_metric_tag['remote_write'] = "[006]" |
---|
35 | m_metric_tag['write_flits_local'] = "[007]" |
---|
36 | m_metric_tag['write_flits_remote'] = "[008]" |
---|
37 | m_metric_tag['write_cost'] = "[009]" |
---|
38 | m_metric_tag['local_ll'] = "[010]" |
---|
39 | m_metric_tag['remote_ll'] = "[011]" |
---|
40 | m_metric_tag['ll_cost'] = "[012]" |
---|
41 | m_metric_tag['local_sc'] = "[013]" |
---|
42 | m_metric_tag['remote_sc'] = "[014]" |
---|
43 | m_metric_tag['sc_cost'] = "[015]" |
---|
44 | m_metric_tag['local_cas'] = "[016]" |
---|
45 | m_metric_tag['remote_cas'] = "[017]" |
---|
46 | m_metric_tag['cas_cost'] = "[018]" |
---|
47 | m_metric_tag['req_trig_update'] = "[019]" |
---|
48 | m_metric_tag['local_update'] = "[020]" |
---|
49 | m_metric_tag['remote_update'] = "[021]" |
---|
50 | m_metric_tag['update_cost'] = "[022]" |
---|
51 | m_metric_tag['req_trig_m_inv'] = "[023]" |
---|
52 | m_metric_tag['local_m_inv'] = "[024]" |
---|
53 | m_metric_tag['remote_m_inv'] = "[025]" |
---|
54 | m_metric_tag['m_inv_cost'] = "[026]" |
---|
55 | m_metric_tag['broadcast'] = "[027]" |
---|
56 | m_metric_tag['local_cleanup'] = "[028]" |
---|
57 | m_metric_tag['remote_cleanup'] = "[029]" |
---|
58 | m_metric_tag['cleanup_cost'] = "[030]" |
---|
59 | m_metric_tag['nb_read_miss'] = "[031]" |
---|
60 | m_metric_tag['write_miss'] = "[032]" |
---|
61 | m_metric_tag['write_dirty'] = "[033]" |
---|
62 | m_metric_tag['read_hit_trt'] = "[034]" # Reads blocked by a hit in the TRT |
---|
63 | m_metric_tag['trans_full_trt'] = "[035]" # Transactions blocked because the TRT is full |
---|
64 | m_metric_tag['put'] = "[036]" |
---|
65 | m_metric_tag['get'] = "[037]" |
---|
66 | m_metric_tag['write_broadcast'] = "[038]" |
---|
67 | |
---|
68 | m_metric_tag['total_read'] = "[040]" |
---|
69 | m_metric_tag['total_write'] = "[041]" |
---|
70 | m_metric_tag['total_ll'] = "[042]" |
---|
71 | m_metric_tag['total_sc'] = "[043]" |
---|
72 | m_metric_tag['total_cas'] = "[044]" |
---|
73 | m_metric_tag['total_update'] = "[045]" |
---|
74 | m_metric_tag['total_m_inv'] = "[046]" |
---|
75 | m_metric_tag['total_cleanup'] = "[047]" |
---|
76 | m_metric_tag['total_direct'] = "[048]" |
---|
77 | |
---|
78 | m_metric_tag['nonwrite_broadcast'] = "[050]" |
---|
79 | m_metric_tag['broadcast_cost'] = "[051]" |
---|
80 | m_metric_tag['direct_cost'] = "[052]" |
---|
81 | m_metric_tag['total_stacked'] = "|060]" |
---|
82 | |
---|
83 | all_metrics = m_metric_tag.keys() |
---|
84 | all_tags = m_metric_tag.values() |
---|
85 | |
---|
86 | m_metric_name = {} |
---|
87 | m_metric_name['counter_reset'] = "Counters reset at cycle" |
---|
88 | m_metric_name['ncycles'] = "Number of Cycles" |
---|
89 | m_metric_name['local_read'] = "Number of Local Reads (Miss in L1)" |
---|
90 | m_metric_name['remote_read'] = "Number of Remote Reads (Miss in L1)" |
---|
91 | m_metric_name['read_cost'] = "Read Cost" |
---|
92 | m_metric_name['local_write'] = "Number of Local Writes" |
---|
93 | m_metric_name['remote_write'] = "Number of Remote Writes" |
---|
94 | m_metric_name['write_flits_local'] = "Number of Local Write Flits" |
---|
95 | m_metric_name['write_flits_remote'] = "Number of Remote Write Flits" |
---|
96 | m_metric_name['write_cost'] = "Write Cost" |
---|
97 | m_metric_name['local_ll'] = "Number of Local LL" |
---|
98 | m_metric_name['remote_ll'] = "Number of Remote LL" |
---|
99 | m_metric_name['ll_cost'] = "LL Cost" |
---|
100 | m_metric_name['local_sc'] = "Number of Local SC" |
---|
101 | m_metric_name['remote_sc'] = "Number of Remote SC" |
---|
102 | m_metric_name['sc_cost'] = "SC Cost" |
---|
103 | m_metric_name['local_cas'] = "Number of Local CAS" |
---|
104 | m_metric_name['remote_cas'] = "Number of Remote CAS" |
---|
105 | m_metric_name['cas_cost'] = "CAS Cost" |
---|
106 | m_metric_name['req_trig_update'] = "Number of Requests Triggering an Update" |
---|
107 | m_metric_name['local_update'] = "Number of Local Updates" |
---|
108 | m_metric_name['remote_update'] = "Number of Remote Updates" |
---|
109 | m_metric_name['update_cost'] = "Update Cost" |
---|
110 | m_metric_name['req_trig_m_inv'] = "Number of Requests Triggering a M.inv" |
---|
111 | m_metric_name['local_m_inv'] = "Number of Local Multi Inval" |
---|
112 | m_metric_name['remote_m_inv'] = "Number of Remote Multi Inval" |
---|
113 | m_metric_name['m_inv_cost'] = "Multi Inval Cost" |
---|
114 | m_metric_name['broadcast'] = "Number of Broadcasts" |
---|
115 | m_metric_name['broadcast'] = "Total Number of Broadcasts" |
---|
116 | m_metric_name['local_cleanup'] = "Number of Local Cleanups" |
---|
117 | m_metric_name['remote_cleanup'] = "Number of Remote Cleanups" |
---|
118 | m_metric_name['cleanup_cost'] = "Cleanup Cost" |
---|
119 | m_metric_name['nb_read_miss'] = "Number of Read Miss (in L2)" |
---|
120 | m_metric_name['write_miss'] = "Number of Write Miss (in L2)" |
---|
121 | m_metric_name['write_dirty'] = "Number of Write Dirty (from L2 to Memory)" |
---|
122 | m_metric_name['read_hit_trt'] = "Number of Reads Blocked by a Hit in TRT" # Reads blocked by a hit in the TRT |
---|
123 | m_metric_name['trans_full_trt'] = "Number of Transactions Blocked because the TRT is Full" # Transactions blocked because the TRT is full |
---|
124 | m_metric_name['put'] = "Number of PUT to Memory" |
---|
125 | m_metric_name['get'] = "Number of GET from Memory" |
---|
126 | m_metric_name['write_broadcast'] = "Number of Broadcasts Trig. by Writes" |
---|
127 | |
---|
128 | m_metric_name['total_read'] = "Total Number of Reads" |
---|
129 | m_metric_name['total_write'] = "Total Number of Writes" |
---|
130 | m_metric_name['total_ll'] = "Total Number of LL" |
---|
131 | m_metric_name['total_sc'] = "Total Number of SC" |
---|
132 | m_metric_name['total_cas'] = "Total Number of CAS" |
---|
133 | m_metric_name['total_update'] = "Total Number of Updates" |
---|
134 | m_metric_name['total_m_inv'] = "Total Number of Multi Inval" |
---|
135 | m_metric_name['total_cleanup'] = "Total Number of Cleanups" |
---|
136 | m_metric_name['total_direct'] = "Total Number of Direct Requests" |
---|
137 | m_metric_name['nonwrite_broadcast'] = "Number of Broadcasts not Trig. by Writes" |
---|
138 | m_metric_name['broadcast_cost'] = "Broadcast Cost" |
---|
139 | m_metric_name['direct_cost'] = "Direct Requests Cost" |
---|
140 | m_metric_name['total_stacked'] = "??" # Normalization factor |
---|
141 | |
---|
142 | |
---|
143 | |
---|
144 | 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)) |
---|
145 | m_metric_norm['req_trig_update'] = "C" |
---|
146 | m_metric_norm['local_update'] = "C" |
---|
147 | m_metric_norm['remote_update'] = "C" |
---|
148 | m_metric_norm['update_cost'] = "C" |
---|
149 | m_metric_norm['req_trig_m_inv'] = "C" |
---|
150 | m_metric_norm['local_m_inv'] = "C" |
---|
151 | m_metric_norm['remote_m_inv'] = "C" |
---|
152 | m_metric_norm['m_inv_cost'] = "C" |
---|
153 | m_metric_norm['broadcast'] = "C" |
---|
154 | m_metric_norm['total_update'] = "C" |
---|
155 | m_metric_norm['total_m_inv'] = "C" |
---|
156 | |
---|
157 | m_norm_factor_name = {} |
---|
158 | m_norm_factor_name['N'] = "" |
---|
159 | m_norm_factor_name['P'] = "Normalized w.r.t.\\nthe Number of Processors" |
---|
160 | m_norm_factor_name['C'] = "Normalized w.r.t.\\nthe Number of Cycles (x 1000)" |
---|
161 | m_norm_factor_name['W'] = "Normalized w.r.t.\\nthe Number of Writes" |
---|
162 | m_norm_factor_name['R'] = "Normalized w.r.t.\\nthe Number of Reads" |
---|
163 | m_norm_factor_name['D'] = "Normalized w.r.t.\\nthe Number of Direct Requests" |
---|
164 | m_norm_factor_name['1'] = "Normalized w.r.t.\\nthe Value on 1 Processor" |
---|
165 | m_norm_factor_name['4'] = "Normalized w.r.t.\\nthe Value on 4 Processors" |
---|
166 | m_norm_factor_name['8'] = "Normalized w.r.t.\\nthe Value on 8 Processors" |
---|
167 | m_norm_factor_name['16'] = "Normalized w.r.t.\\nthe Value on 16 Processors" |
---|
168 | m_norm_factor_name['32'] = "Normalized w.r.t.\\nthe Value on 32 Processors" |
---|
169 | m_norm_factor_name['64'] = "Normalized w.r.t.\\nthe Value on 64 Processors" |
---|
170 | m_norm_factor_name['128'] = "Normalized w.r.t.\\nthe Value on 128 Processors" |
---|
171 | m_norm_factor_name['256'] = "Normalized w.r.t.\\nthe Value on 256 Processors" |
---|
172 | |
---|
173 | |
---|
174 | |
---|
175 | colors = [ "\"#008000\"", "\"#000080\"", "\"#BADC98\"", "\"#BA98DC\"", "\"#98DCBA\"", "\"#98BADC\"", "\"#BA9876\"", "\"#BA7698\"", "\"#98BA76\"", "\"#9876BA\"", "\"#76BA98\"", "\"#7698BA\"" ] |
---|
176 | |
---|
177 | |
---|