diff --git a/CHANGELOG.md b/CHANGELOG.md
index cd38b5a8da..0da046bd6b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -17,6 +17,9 @@ Full documentation for ROCm Compute Profiler is available at [https://rocm.docs.
* --roofline-data-type / -R option added to specify which datatypes the user wants to capture in the roofline PDF plot outputs
* Default is FP32, but user can specify as many types as desired to overlay on the same plot output
+* Additional datatypes for roofline profiling
+ * Now supports FP8, FP16, BF16, FP32, FP64, I8, I32, I64 (dependent on gpu architecture)
+
### Changed
* Change normal_unit default to per_kernel
diff --git a/src/argparser.py b/src/argparser.py
index 06110f4615..4c1e70d634 100644
--- a/src/argparser.py
+++ b/src/argparser.py
@@ -372,7 +372,7 @@ Examples:
"-R",
"--roofline-data-type",
required=False,
- choices=["FP8", "FP16", "BF16", "FP32", "FP64", "I8"],
+ choices=["FP8", "FP16", "BF16", "FP32", "FP64", "I8", "I32", "I64"],
metavar="",
nargs="+",
type=str,
diff --git a/src/roofline.py b/src/roofline.py
index 959f35749e..f39058846c 100644
--- a/src/roofline.py
+++ b/src/roofline.py
@@ -319,26 +319,29 @@ class Roofline:
)
# Plot peak MFMA ceiling
- fig.add_trace(
- go.Scatter(
- x=self.__ceiling_data["mfma"][0],
- y=self.__ceiling_data["mfma"][1],
- name="Peak MFMA-{}".format(dtype),
- mode=plot_mode,
- hovertemplate="%{text}",
- text=[
- (
- None
- if self.__run_parameters["is_standalone"]
- else "{} G{}/s".format(
+ if dtype in MFMA_DATATYPES:
+ fig.add_trace(
+ go.Scatter(
+ x=self.__ceiling_data["mfma"][0],
+ y=self.__ceiling_data["mfma"][1],
+ name="Peak MFMA-{}".format(dtype),
+ mode=plot_mode,
+ hovertemplate="%{text}",
+ text=[
+ (
+ None
+ if self.__run_parameters["is_standalone"]
+ else "{} G{}/s".format(
+ to_int(self.__ceiling_data["mfma"][2]), ops_flops
+ )
+ ),
+ "{} G{}/s".format(
to_int(self.__ceiling_data["mfma"][2]), ops_flops
- )
- ),
- "{} G{}/s".format(to_int(self.__ceiling_data["mfma"][2]), ops_flops),
- ],
- textposition="top left",
+ ),
+ ],
+ textposition="top left",
+ )
)
- )
#######################
# Plot Application AI
#######################
diff --git a/src/utils/roofline_calc.py b/src/utils/roofline_calc.py
index 56eecd15f9..c957265c61 100644
--- a/src/utils/roofline_calc.py
+++ b/src/utils/roofline_calc.py
@@ -44,13 +44,13 @@ FONT_WEIGHT = "bold"
# SUPPORTED_DATATYPES table is based on datatype support in rocm-amdgpu-bench repository
# Indicates which datatypes per gpu arch can be generated by the roofline binary
SUPPORTED_DATATYPES = {
- "gfx90a": ["FP16", "BF16", "FP32", "FP64", "I8"], # Unsupported: F8
- "gfx940": ["FP8", "FP16", "FP32", "FP64"], # Unsupported: BF16, I8
- "gfx941": ["FP8", "FP16", "FP32", "FP64"], # Unsupported: BF16, I8
- "gfx942": ["FP8", "FP16", "FP32", "FP64"], # Unsupported: BF16, I8
+ "gfx90a": ["FP16", "BF16", "FP32", "FP64", "I8", "I32", "I64"], # Unsupported: F8
+ "gfx940": ["FP8", "FP16", "BF16", "FP32", "FP64", "I8", "I32", "I64"], # Unsupported:
+ "gfx941": ["FP8", "FP16", "BF16", "FP32", "FP64", "I8", "I32", "I64"], # Unsupported:
+ "gfx942": ["FP8", "FP16", "BF16", "FP32", "FP64", "I8", "I32", "I64"], # Unsupported:
}
-PEAK_OPS_DATATYPES = ["FP8", "FP32", "FP64"]
+PEAK_OPS_DATATYPES = ["FP8", "FP16", "BF16", "FP32", "FP64", "I8", "I32", "I64"]
MFMA_DATATYPES = ["FP8", "FP16", "BF16", "FP32", "FP64", "I8"]
TOP_N = 10
@@ -177,7 +177,7 @@ def calc_ceilings(roofline_parameters, dtype, benchmark_data):
graphPoints["valu"].append(peakOps)
# Plot MFMA roof
- if x1_mfma != -1 or (dtype in MFMA_DATATYPES): # assert that mfma has been assigned
+ if x1_mfma != -1 and (dtype in MFMA_DATATYPES): # assert that mfma has been assigned
x0_mfma = XMAX
if x2_mfma < x0_mfma:
x0_mfma = x2_mfma
diff --git a/src/utils/rooflines/roofline-rhel8-mi200-rocm6 b/src/utils/rooflines/roofline-rhel8-mi200-rocm6
index c616c55f62..bdc27cb09f 100755
Binary files a/src/utils/rooflines/roofline-rhel8-mi200-rocm6 and b/src/utils/rooflines/roofline-rhel8-mi200-rocm6 differ
diff --git a/src/utils/rooflines/roofline-rhel8-mi300-rocm6 b/src/utils/rooflines/roofline-rhel8-mi300-rocm6
index 9d5dce7584..bdc27cb09f 100755
Binary files a/src/utils/rooflines/roofline-rhel8-mi300-rocm6 and b/src/utils/rooflines/roofline-rhel8-mi300-rocm6 differ
diff --git a/src/utils/rooflines/roofline-sles15sp5-mi200-rocm6 b/src/utils/rooflines/roofline-sles15sp5-mi200-rocm6
index 5127ff1ba2..e2fb380467 100755
Binary files a/src/utils/rooflines/roofline-sles15sp5-mi200-rocm6 and b/src/utils/rooflines/roofline-sles15sp5-mi200-rocm6 differ
diff --git a/src/utils/rooflines/roofline-sles15sp5-mi300-rocm6 b/src/utils/rooflines/roofline-sles15sp5-mi300-rocm6
index 04133f5f84..e2fb380467 100755
Binary files a/src/utils/rooflines/roofline-sles15sp5-mi300-rocm6 and b/src/utils/rooflines/roofline-sles15sp5-mi300-rocm6 differ
diff --git a/src/utils/rooflines/roofline-ubuntu20_04-mi200-rocm6 b/src/utils/rooflines/roofline-ubuntu20_04-mi200-rocm6
index dcba8c47d7..bb6255ac91 100755
Binary files a/src/utils/rooflines/roofline-ubuntu20_04-mi200-rocm6 and b/src/utils/rooflines/roofline-ubuntu20_04-mi200-rocm6 differ
diff --git a/src/utils/rooflines/roofline-ubuntu20_04-mi300-rocm6 b/src/utils/rooflines/roofline-ubuntu20_04-mi300-rocm6
index fe441a10e1..bb6255ac91 100755
Binary files a/src/utils/rooflines/roofline-ubuntu20_04-mi300-rocm6 and b/src/utils/rooflines/roofline-ubuntu20_04-mi300-rocm6 differ