Add F4 F6 to roofline for MI350 series (#709)

Add roofline bins with FP4 FP6 datatypes enabled for gfx950 arch

---------

Signed-off-by: Carrie Fallows <Carrie.Fallows@amd.com>

[ROCm/rocprofiler-compute commit: cb2d928ecf]
This commit is contained in:
cfallows-amd
2025-05-26 18:36:31 -04:00
zatwierdzone przez GitHub
rodzic ba61cc36f5
commit 689746e2cd
7 zmienionych plików z 144 dodań i 66 usunięć
@@ -337,48 +337,69 @@ class Roofline:
# Plot Application AI
#######################
# Plot the arithmetic intensity points for each cache level
if ops_flops == "FLOP":
fig.add_trace(
go.Scatter(
x=self.__ai_data["ai_l1"][0],
y=self.__ai_data["ai_l1"][1],
name=dtype + "_ai_l1",
mode="markers",
marker_symbol=(
SYMBOLS if self.__run_parameters["include_kernel_names"] else None
),
)
)
fig.add_trace(
go.Scatter(
x=self.__ai_data["ai_l2"][0],
y=self.__ai_data["ai_l2"][1],
name=dtype + "_ai_l2",
mode="markers",
marker_symbol=(
SYMBOLS if self.__run_parameters["include_kernel_names"] else None
),
)
)
fig.add_trace(
go.Scatter(
x=self.__ai_data["ai_hbm"][0],
y=self.__ai_data["ai_hbm"][1],
name=dtype + "_ai_hbm",
mode="markers",
marker_symbol=(
SYMBOLS if self.__run_parameters["include_kernel_names"] else None
),
)
)
# Set layout
fig.update_layout(
xaxis_title="Arithmetic Intensity (FLOPs/Byte)",
yaxis_title="Performance (GFLOP/sec)",
hovermode="x unified",
margin=dict(l=50, r=50, b=50, t=50, pad=4),
# Check for F6F4 PC which applies to both FP4 and FP6 MFMA; avoid duplicate plotting
skipAI = False
if dtype == "FP4" or dtype == "FP6":
if (dtype == "FP6") and (
"FP4" in self.__run_parameters["roofline_data_type"]
):
skipAI = True
console_debug(
"roofline",
"Datatype {} is captured through the F6F4 perfmon event".format(dtype),
)
dtype = "F6F4"
if ops_flops == "FLOP":
if not skipAI:
fig.add_trace(
go.Scatter(
x=self.__ai_data["ai_l1"][0],
y=self.__ai_data["ai_l1"][1],
name=dtype + "_ai_l1",
mode="markers",
marker_symbol=(
SYMBOLS
if self.__run_parameters["include_kernel_names"]
else None
),
)
)
fig.add_trace(
go.Scatter(
x=self.__ai_data["ai_l2"][0],
y=self.__ai_data["ai_l2"][1],
name=dtype + "_ai_l2",
mode="markers",
marker_symbol=(
SYMBOLS
if self.__run_parameters["include_kernel_names"]
else None
),
)
)
fig.add_trace(
go.Scatter(
x=self.__ai_data["ai_hbm"][0],
y=self.__ai_data["ai_hbm"][1],
name=dtype + "_ai_hbm",
mode="markers",
marker_symbol=(
SYMBOLS
if self.__run_parameters["include_kernel_names"]
else None
),
)
)
# Set layout
fig.update_layout(
xaxis_title="Arithmetic Intensity (FLOPs/Byte)",
yaxis_title="Performance (GFLOP/sec)",
hovermode="x unified",
margin=dict(l=50, r=50, b=50, t=50, pad=4),
)
else:
# Set layout
fig.update_layout(