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