Enable Standalone GUI. Note L2 per channel graphics haven't been ported to new format

Signed-off-by: coleramos425 <colramos@amd.com>
Αυτή η υποβολή περιλαμβάνεται σε:
coleramos425
2024-01-17 13:40:31 -06:00
υποβλήθηκε από Cole Ramos
γονέας 92f429f8b2
υποβολή df4f15ff47
5 αρχεία άλλαξαν με 392 προσθήκες και 373 διαγραφές
@@ -651,7 +651,7 @@ def eval_metric(dfs, dfs_type, sys_info, soc_spec, raw_pmc_df, debug):
print("~" * 40)
except TypeError:
print(
"skiping entry. Encounterd a missing counter"
"skipping entry. Encounterd a missing counter"
)
print(expr, " has been assigned to None")
print(np.nan)
@@ -661,7 +661,7 @@ def eval_metric(dfs, dfs_type, sys_info, soc_spec, raw_pmc_df, debug):
== "'NoneType' object has no attribute 'get'"
):
print(
"skiping entry. Encounterd a missing csv"
"skipping entry. Encounterd a missing csv"
)
print(np.nan)
else:
@@ -45,14 +45,14 @@ class webui_analysis(OmniAnalyze_Base):
self.dest_dir = os.path.abspath(args.path[0][0])
self.arch = None
self.__hidden_sections = ["Memory Chart Analysis", "Kernels"]
self.__hidden_sections = ["Memory Chart", "Kernels"]
self.__hidden_columns = ["Tips", "coll_level"]
# define different types of bar charts
self.__barchart_elements = {
"instr_mix": [1001, 1002],
"multi_bar": [1604, 1704],
"sol": [1101, 1201, 1301, 1401, 1601, 1701],
"l2_cache_per_chan": [1802, 1803]
#"l2_cache_per_chan": [1802, 1803]
}
# define any elements which will have full width
self.__full_width_elements = {1801}
@@ -131,14 +131,14 @@ class webui_analysis(OmniAnalyze_Base):
# Only display basic metrics if no filters are applied
if not (disp_filt or kernel_filter or gcd_filter):
temp = {}
keep = [1, 201, 101, 1901]
keep = [1, 201, 101, 301]
for key in base_data[base_run].dfs:
if keep.count(key) != 0:
temp[key] = base_data[base_run].dfs[key]
base_data[base_run].dfs = temp
temp = {}
keep = [0, 100, 200, 1900]
keep = [0, 100, 200, 300]
for key in panel_configs:
if keep.count(key) != 0:
temp[key] = panel_configs[key]
@@ -159,7 +159,7 @@ class webui_analysis(OmniAnalyze_Base):
# Append memory chart and roofline
div_children.append(
get_memchart(panel_configs[1900]["data source"], base_data[base_run])
get_memchart(panel_configs[300]["data source"], base_data[base_run])
)
has_roofline = os.path.isfile(os.path.join(self.dest_dir, "roofline.csv"))
if has_roofline and hasattr(self.get_socs()[self.arch], "roofline_obj"):
@@ -177,7 +177,7 @@ class webui_analysis(OmniAnalyze_Base):
roof_obj = self.get_socs()[self.arch].roofline_obj
div_children.append(
roof_obj.empirical_roofline(
ret_df=parser.apply_filters(workload=base_data[base_run], is_gui=True, debug=self.get_args().debug)
ret_df=parser.apply_filters(workload=base_data[base_run], dir=self.dest_dir, is_gui=True, debug=self.get_args().debug)
)
)
@@ -341,7 +341,7 @@ def determine_chart_type(
if (
len(d_figs) > 2
and not table_config["id"]
in barchart_elements["l2_cache_per_chan"]
# in barchart_elements["l2_cache_per_chan"]
):
temp_obj = []
for fig in d_figs:
+26 -26
Προβολή Αρχείου
@@ -167,32 +167,32 @@ def build_bar_chart(display_df, table_config, barchart_elements, norm_filt):
.update_layout(title_x=0.5)
)
# L2 Cache per channel
elif table_config["id"] in barchart_elements["l2_cache_per_chan"]:
nested_bar = {}
channels = []
for colName, colData in display_df.items():
if colName == "Channel":
channels = list(colData.values)
else:
display_df[colName] = [
x.astype(float) if x != "" and x != None else float(0)
for x in display_df[colName]
]
nested_bar[colName] = list(display_df[colName])
for group, metric in nested_bar.items():
d_figs.append(
px.bar(
title=group[0 : group.rfind("(")],
x=channels,
y=metric,
labels={
"x": "Channel",
"y": group[group.rfind("(") + 1 : len(group) - 1].replace(
"per", norm_filt
),
},
).update_yaxes(rangemode="nonnegative")
)
# elif table_config["id"] in barchart_elements["l2_cache_per_chan"]:
# nested_bar = {}
# channels = []
# for colName, colData in display_df.items():
# if colName == "Channel":
# channels = list(colData.values)
# else:
# display_df[colName] = [
# x.astype(float) if x != "" and x != None else float(0)
# for x in display_df[colName]
# ]
# nested_bar[colName] = list(display_df[colName])
# for group, metric in nested_bar.items():
# d_figs.append(
# px.bar(
# title=group[0 : group.rfind("(")],
# x=channels,
# y=metric,
# labels={
# "x": "Channel",
# "y": group[group.rfind("(") + 1 : len(group) - 1].replace(
# "per", norm_filt
# ),
# },
# ).update_yaxes(rangemode="nonnegative")
# )
# Speed-of-light bar chart
elif table_config["id"] in barchart_elements["sol"]:
@@ -42,296 +42,19 @@ def insert_chart_data(mem_data, base_data):
display_columns = original_df.columns.values.tolist().copy()
display_df = original_df[display_columns]
alias = display_df["Alias"].values
alias = display_df["Metric"].values
values = display_df["Value"].values
mem_values = {}
memchart_values = {}
for i in range(0, len(alias)):
mem_values[alias[i]] = values[i]
memchart_values[alias[i]] = values[i]
return G(
className="data",
children=[
Text(
x="386",
y="46",
id="salu",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=mem_values["salu_"],
),
Text(
x="386",
y="96",
id="smem",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=mem_values["smem_"],
),
Text(
x="386",
y="146",
id="valu",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=mem_values["valu_"],
),
Text(
x="386",
y="196",
id="mfma",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=mem_values["mfma_"],
),
Text(
x="386",
y="245",
id="vmem",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=mem_values["vmem_"],
),
Text(
x="386",
y="296",
id="lds",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=mem_values["lds_"],
),
Text(
x="386",
y="344",
id="gws",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=mem_values["gws_"],
),
Text(
x="386",
y="396",
id="br",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=mem_values["br_"],
),
Text(
x="1435",
y="285",
id="fabric_rd_lat",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=mem_values["fabric_rd_lat_"],
),
Text(
x="1435",
y="310",
id="fabric_wr_lat",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=mem_values["fabric_wr_lat_"],
),
Text(
x="1435",
y="336",
id="fabric_atom_lat",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=mem_values["fabric_atom_lat_"],
),
Text(
x="1145",
y="213",
id="l2_rd",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=mem_values["l2_rd_"],
),
Text(
x="1145",
y="238",
id="l2_wr",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=mem_values["l2_wr_"],
),
Text(
x="1145",
y="264",
id="l2_atom",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=mem_values["l2_atom_"],
),
Text(
x="839",
y="117",
id="lds_lat",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=mem_values["lds_lat_"],
),
Text(
x="838",
y="372",
id="sl1_hit",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=mem_values["sl1_hit_"],
),
Text(
x="838",
y="404",
id="sl1_lat",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=mem_values["sl1_lat_"],
),
Text(
x="837",
y="491",
id="il1_hit",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=mem_values["il1_hit_"],
),
Text(
x="837",
y="522",
id="il1_lat",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=mem_values["il1_lat_"],
),
Text(
x="1578",
y="240",
id="hbm_rd",
fill="#FFFFFF",
fontSize="12px",
children=mem_values["hbm_rd_"],
),
Text(
x="1577",
y="269",
id="hbm_wr",
fill="#FFFFFF",
fontSize="12px",
children=mem_values["hbm_wr_"],
),
Text(
x="723",
y="78",
id="lds_req",
fill="#FFFFFF",
fontSize="12px",
children=mem_values["lds_req_"],
),
Text(
x="708",
y="204",
id="vl1_rd",
fill="#FFFFFF",
fontSize="12px",
children=mem_values["vl1_rd_"],
),
Text(
x="708",
y="233",
id="vl1_wr",
fill="#FFFFFF",
fontSize="12px",
children=mem_values["vl1_wr_"],
),
Text(
x="716",
y="265",
id="vl1_atom",
fill="#FFFFFF",
fontSize="12px",
children=mem_values["vl1_atom_"],
),
Text(
x="1145",
y="292",
id="l2_hit",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=mem_values["l2_hit_"],
),
Text(
x="1145",
y="356",
id="l2_rd_lat",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=mem_values["l2_rd_lat_"],
),
Text(
x="1145",
y="382",
id="l2_wr_lat",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=mem_values["l2_wr_lat_"],
),
Text(
x="840",
y="193",
id="vl1_hit",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=mem_values["vl1_hit_"],
),
Text(
x="840",
y="224",
id="vl1_lat",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=mem_values["vl1_lat_"],
),
Text(
x="839",
y="85",
id="lds_util",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=mem_values["lds_util_"],
),
Text(
x="840",
y="256",
id="vl1_coales",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=mem_values["vl1_coales_"],
),
Text(
x="1015",
y="500",
id="il1_l2_req",
fill="#FFFFFF",
fontSize="12px",
children=mem_values["il1_l2_req_"],
),
Text(
x="838",
y="288",
id="vl1_stall",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=mem_values["vl1_stall_"],
),
Text(
x="492",
y="498",
id="il1_fetch",
fill="#FFFFFF",
fontSize="12px",
children=mem_values["il1_fetch_"],
),
# ----------------------------------------
# Instr Buff Block
#TODO: double check wave_occupancy
Text(
x="52",
y="313",
@@ -339,7 +62,7 @@ def insert_chart_data(mem_data, base_data):
fill="#FFFF33",
fontSize="20px",
fontWeight="bold",
children=mem_values["wave_occ_"],
children=memchart_values["Wavefront Occupancy"],
),
Text(
x="49",
@@ -348,8 +71,76 @@ def insert_chart_data(mem_data, base_data):
fill="#FFFF33",
fontSize="20px",
fontWeight="bold",
children=mem_values["wave_life_"],
children=memchart_values["Wave Life"],
),
# ----------------------------------------
# Instr Dispatch Block
Text(
x="386",
y="46",
id="salu",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=memchart_values["SALU"],
),
Text(
x="386",
y="96",
id="smem",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=memchart_values["SMEM"],
),
Text(
x="386",
y="146",
id="valu",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=memchart_values["VALU"],
),
Text(
x="386",
y="196",
id="mfma",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=memchart_values["MFMA"],
),
Text(
x="386",
y="245",
id="vmem",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=memchart_values["VMEM"],
),
Text(
x="386",
y="296",
id="lds",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=memchart_values["LDS"],
),
Text(
x="386",
y="344",
id="gws",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=memchart_values["GWS"],
),
Text(
x="386",
y="396",
id="br",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=memchart_values["BR"],
),
# ----------------------------------------
# Exec Block
Text(
x="480",
y="99",
@@ -357,47 +148,15 @@ def insert_chart_data(mem_data, base_data):
fill="#FFFF33",
fontSize="20px",
fontWeight="bold",
children=mem_values["active_cu_"],
children=memchart_values["Active CUs"],
), # x=454
Text(
x="580",
y="226",
id="lds_alloc",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=mem_values["lds_alloc_"],
),
Text(
x="580",
y="255",
id="scratch_alloc",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=mem_values["scratch_alloc_"],
),
Text(
x="580",
y="298",
id="wavefronts",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=mem_values["wavefronts_"],
),
Text(
x="580",
y="328",
id="workgroups",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=mem_values["workgroups_"],
),
Text(
x="580",
y="154",
id="vgpr",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=mem_values["vgpr_"],
children=memchart_values["VGPR"],
),
Text(
x="581",
@@ -405,15 +164,123 @@ def insert_chart_data(mem_data, base_data):
id="sgpr",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=mem_values["sgpr_"],
children=memchart_values["SGPR"],
),
Text(
x="709",
y="384",
id="sl1_rd",
x="580",
y="226",
id="lds_alloc",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=memchart_values["LDS Allocation"],
),
Text(
x="580",
y="255",
id="scratch_alloc",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=memchart_values["Scratch Allocation"],
),
Text(
x="580",
y="298",
id="wavefronts",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=memchart_values["Wavefronts"],
),
Text(
x="580",
y="328",
id="workgroups",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=memchart_values["Workgroups"],
),
# ----------------------------------------
# LDS Block
Text(
x="723",
y="78",
id="lds_req",
fill="#FFFFFF",
fontSize="12px",
children=mem_values["sl1_rd_"],
children=memchart_values["LDS Req"],
),
Text(
x="839",
y="85",
id="lds_util",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=memchart_values["LDS Util"],
),
Text(
x="839",
y="117",
id="lds_lat",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=memchart_values["LDS Latency"],
),
# ----------------------------------------
# Vector L1 Cache Block
Text(
x="708",
y="204",
id="vl1_rd",
fill="#FFFFFF",
fontSize="12px",
children=memchart_values["VL1 Rd"],
),
Text(
x="708",
y="233",
id="vl1_wr",
fill="#FFFFFF",
fontSize="12px",
children=memchart_values["VL1 Wr"],
),
Text(
x="716",
y="265",
id="vl1_atom",
fill="#FFFFFF",
fontSize="12px",
children=memchart_values["VL1 Atomic"],
),
Text(
x="840",
y="193",
id="vl1_hit",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=memchart_values["VL1 Hit"],
),
Text(
x="840",
y="224",
id="vl1_lat",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=memchart_values["VL1 Lat"],
),
Text(
x="840",
y="256",
id="vl1_coales",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=memchart_values["VL1 Coalesce"],
),
Text(
x="838",
y="288",
id="vl1_stall",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=memchart_values["VL1 Stall"],
),
Text(
x="1000",
@@ -421,7 +288,7 @@ def insert_chart_data(mem_data, base_data):
id="vl1_l2_rd",
fill="#FFFFFF",
fontSize="12px",
children=mem_values["vl1_l2_rd_"],
children=memchart_values["VL1_L2 Rd"],
),
Text(
x="1000",
@@ -429,7 +296,7 @@ def insert_chart_data(mem_data, base_data):
id="vl1_l2_wr",
fill="#FFFFFF",
fontSize="12px",
children=mem_values["vl1_l2_wr_"],
children=memchart_values["VL1_L2 Wr"],
),
Text(
x="1008",
@@ -437,7 +304,33 @@ def insert_chart_data(mem_data, base_data):
id="vl1_l2_atom",
fill="#FFFFFF",
fontSize="12px",
children=mem_values["vl1_l2_atom_"],
children=memchart_values["VL1_L2 Atomic"],
),
# ----------------------------------------
# Scalar L1D Cache Block
Text(
x="709",
y="384",
id="sl1_rd",
fill="#FFFFFF",
fontSize="12px",
children=memchart_values["VL1D Rd"],
),
Text(
x="838",
y="372",
id="sl1_hit",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=memchart_values["VL1D Hit"],
),
Text(
x="838",
y="404",
id="sl1_lat",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=memchart_values["VL1D Lat"],
),
Text(
x="1000",
@@ -445,7 +338,7 @@ def insert_chart_data(mem_data, base_data):
id="sl1_l2_rd",
fill="#FFFFFF",
fontSize="12px",
children=mem_values["sl1_l2_rd_"],
children=memchart_values["VL1D_L2 Rd"],
),
Text(
x="1000",
@@ -453,7 +346,7 @@ def insert_chart_data(mem_data, base_data):
id="sl1_l2_wr",
fill="#FFFFFF",
fontSize="12px",
children=mem_values["sl1_l2_wr_"],
children=memchart_values["VL1D_L2 Wr"],
),
Text(
x="1008",
@@ -461,15 +354,101 @@ def insert_chart_data(mem_data, base_data):
id="sl1_l2_atom",
fill="#FFFFFF",
fontSize="12px",
children=mem_values["sl1_l2_atom_"],
children=memchart_values["VL1D_L2 Atomic"],
),
# ----------------------------------------
# Instr L1 Cache Block
Text(
x="492",
y="498",
id="il1_fetch",
fill="#FFFFFF",
fontSize="12px",
children=memchart_values["IL1 Fetch"],
),
Text(
x="837",
y="491",
id="il1_hit",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=memchart_values["IL1 Hit"],
),
Text(
x="837",
y="522",
id="il1_lat",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=memchart_values["IL1 Lat"],
),
Text(
x="1015",
y="500",
id="il1_l2_req",
fill="#FFFFFF",
fontSize="12px",
children=memchart_values["IL1_L2 Rd"],
),
# ----------------------------------------
# L2 Cache Block(inside)
Text(
x="1145",
y="213",
id="l2_rd",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=memchart_values["L2 Rd"],
),
Text(
x="1145",
y="238",
id="l2_wr",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=memchart_values["L2 Wr"],
),
Text(
x="1145",
y="264",
id="l2_atom",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=memchart_values["L2 Atomic"],
),
Text(
x="1145",
y="292",
id="l2_hit",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=memchart_values["L2 Hit"],
),
Text(
x="1145",
y="356",
id="l2_rd_lat",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=memchart_values["L2 Rd Lat"],
),
Text(
x="1145",
y="382",
id="l2_wr_lat",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=memchart_values["L2 Wr Lat"],
),
# ----------------------------------------
# Fabric Block
Text(
x="1317",
y="243",
id="l2_fabric_rd",
fill="#FFFFFF",
fontSize="12px",
children=mem_values["l2_fabric_rd_"],
children=memchart_values["Fabric_L2 Rd"],
),
Text(
x="1317",
@@ -477,7 +456,7 @@ def insert_chart_data(mem_data, base_data):
id="l2_fabric_wr",
fill="#FFFFFF",
fontSize="12px",
children=mem_values["l2_fabric_wr_"],
children=memchart_values["Fabric_L2 Wr"],
),
Text(
x="1319",
@@ -485,7 +464,47 @@ def insert_chart_data(mem_data, base_data):
id="l2_fabric_atom",
fill="#FFFFFF",
fontSize="12px",
children=mem_values["l2_fabric_atom_"],
children=memchart_values["Fabric_L2 Atomic"],
),
Text(
x="1435",
y="285",
id="fabric_rd_lat",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=memchart_values["Fabric Rd Lat"],
),
Text(
x="1435",
y="310",
id="fabric_wr_lat",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=memchart_values["Fabric Wr Lat"],
),
Text(
x="1435",
y="336",
id="fabric_atom_lat",
fill="rgb(0, 0, 0)",
fontSize="12px",
children=memchart_values["Fabric Atomic Lat"],
),
Text(
x="1578",
y="240",
id="hbm_rd",
fill="#FFFFFF",
fontSize="12px",
children=memchart_values["HBM Rd"],
),
Text(
x="1577",
y="269",
id="hbm_wr",
fill="#FFFFFF",
fontSize="12px",
children=memchart_values["HBM Wr"],
),
],
)
+5 -5
Προβολή Αρχείου
@@ -818,7 +818,7 @@ def eval_metric(dfs, dfs_type, sys_info, soc_spec, raw_pmc_df, debug):
# print(tabulate(df, headers='keys', tablefmt='fancy_grid'))
def apply_filters(workload, is_gui, debug):
def apply_filters(workload, dir, is_gui, debug):
"""
Apply user's filters to the raw_pmc df.
"""
@@ -875,9 +875,9 @@ def apply_filters(workload, is_gui, debug):
if debug:
print("GUI kernel filtering")
ret_df = ret_df.loc[
ret_df[schema.pmc_perf_file_prefix]["Index"]
.astype(str)
.isin(workload.filter_dispatch_ids)
ret_df[schema.pmc_perf_file_prefix]["KernelName"].isin(
workload.filter_kernel_ids
)
]
if workload.filter_dispatch_ids:
@@ -945,7 +945,7 @@ def load_table_data(workload, dir, is_gui, debug, verbose, skipKernelTop=False):
workload.dfs_type,
workload.sys_info.iloc[0],
workload.soc_spec,
apply_filters(workload, is_gui, debug),
apply_filters(workload, dir, is_gui, debug),
debug,
)