diff --git a/src/omniperf_analyze/omniperf_analyze.py b/src/omniperf_analyze/omniperf_analyze.py index 0825cbe2ef..ebd6a92f04 100644 --- a/src/omniperf_analyze/omniperf_analyze.py +++ b/src/omniperf_analyze/omniperf_analyze.py @@ -235,7 +235,7 @@ def roofline_only(path_to_dir, dev_id, sort_type, mem_level, kernel_names, verbo dev_id, # [Optional] Specify device id to collect roofline info from sort_type, # [Optional] Sort AI by top kernels or dispatches mem_level, # [Optional] Toggle particular level(s) of memory hierarchy - kernel_names, # [Optional] Toggle overlay of kernel names in plot + kernel_names, # [Optional] Toggle overlay of kernel names in plot True, # [Optional] Generate a standalone roofline analysis ) diff --git a/src/omniperf_analyze/utils/gui_components/roofline.py b/src/omniperf_analyze/utils/gui_components/roofline.py index 4ff1debba6..ae39384b90 100644 --- a/src/omniperf_analyze/utils/gui_components/roofline.py +++ b/src/omniperf_analyze/utils/gui_components/roofline.py @@ -33,7 +33,8 @@ from dash import dcc import plotly.graph_objects as go -SYMBOLS = [0,1,2,3,4,5,13,17,18,20] +SYMBOLS = [0, 1, 2, 3, 4, 5, 13, 17, 18, 20] + def to_int(a): if str(type(a)) == "": @@ -124,7 +125,7 @@ def generate_plots(roof_info, ai_data, mem_level, is_standalone, verbose, fig=No name="ai_l1", mode="markers", marker_symbol=SYMBOLS, - marker={"color": "#00CC96"} + marker={"color": "#00CC96"}, ) ) fig.add_trace( @@ -134,7 +135,7 @@ def generate_plots(roof_info, ai_data, mem_level, is_standalone, verbose, fig=No name="ai_l2", mode="markers", marker_symbol=SYMBOLS, - marker={"color": "#EF553B"} + marker={"color": "#EF553B"}, ) ) fig.add_trace( @@ -144,7 +145,7 @@ def generate_plots(roof_info, ai_data, mem_level, is_standalone, verbose, fig=No name="ai_hbm", mode="markers", marker_symbol=SYMBOLS, - marker={"color": "#636EFA"} + marker={"color": "#636EFA"}, ) ) @@ -207,14 +208,20 @@ def get_roofline( legend = go.Figure( go.Scatter( mode="markers", - x=[0]*10, + x=[0] * 10, y=ai_data["kernelNames"], marker_symbol=SYMBOLS, marker_size=15, ) ) - legend.update_layout(title="Kernel Names and Markers", - margin=dict(b=0,r=0), xaxis_range=[-1,1], xaxis_side="top", height=400, width=1000) + legend.update_layout( + title="Kernel Names and Markers", + margin=dict(b=0, r=0), + xaxis_range=[-1, 1], + xaxis_side="top", + height=400, + width=1000, + ) legend.update_xaxes(dtick=1) if is_standalone: @@ -224,18 +231,14 @@ def get_roofline( ml_combo_fig.write_image( path_to_dir + "/empirRoof_gpu-{}_fp8_fp16.pdf".format(dev_id) ) - legend.write_image( - path_to_dir + "/kernelName_legend.pdf" - ) + legend.write_image(path_to_dir + "/kernelName_legend.pdf") time.sleep(1) # Re-save to remove loading MathJax pop up fp32_fig.write_image(path_to_dir + "/empirRoof_gpu-{}_fp32.pdf".format(dev_id)) ml_combo_fig.write_image( path_to_dir + "/empirRoof_gpu-{}_fp8_fp16.pdf".format(dev_id) ) - legend.write_image( - path_to_dir + "/kernelName_legend.pdf" - ) + legend.write_image(path_to_dir + "/kernelName_legend.pdf") print("Empirical Roofline PDFs saved!") else: return html.Section(