From 55ebe7059c8db8fa813e1c6d2f9de4680a0358ac Mon Sep 17 00:00:00 2001 From: coleramos425 Date: Mon, 1 Apr 2024 13:42:30 -0500 Subject: [PATCH] Move dispatch id patch to proper util func in utils. Enable in rocprofv2 post-processing Signed-off-by: coleramos425 [ROCm/rocprofiler-compute commit: e0556f32abe9e75037b0d56f2494e0e36fc0248e] --- .../omniperf_profile/profiler_rocprof_v2.py | 25 ++++++------------- .../rocprofiler-compute/src/utils/utils.py | 13 ++++++++++ 2 files changed, 21 insertions(+), 17 deletions(-) diff --git a/projects/rocprofiler-compute/src/omniperf_profile/profiler_rocprof_v2.py b/projects/rocprofiler-compute/src/omniperf_profile/profiler_rocprof_v2.py index 65e6244256..cbe69242a0 100644 --- a/projects/rocprofiler-compute/src/omniperf_profile/profiler_rocprof_v2.py +++ b/projects/rocprofiler-compute/src/omniperf_profile/profiler_rocprof_v2.py @@ -24,7 +24,12 @@ import os from omniperf_profile.profiler_base import OmniProfiler_Base -from utils.utils import demarcate, console_log, replace_timestamps +from utils.utils import ( + demarcate, + console_log, + replace_timestamps, + fixup_rocprofv2_dispatch_ids, +) class rocprof_v2_profiler(OmniProfiler_Base): @@ -74,22 +79,6 @@ class rocprof_v2_profiler(OmniProfiler_Base): else: console_log("roofline", "Detected existing pmc_perf.csv") - @demarcate - def fixup_rocprofv2_dispatch_ids(self): - # Workaround for rocprofv2 being silly and using 1-based dispatch indicies - import pandas as pd - import glob - - # first read pmc_perf - df = pd.read_csv(self.get_args().path + "/pmc_perf.csv") - df["Dispatch_ID"] -= 1 - df.to_csv(self.get_args().path + "/pmc_perf.csv", index=False) - # next glob for *LEVEL*.csv - for f in glob.glob(self.get_args().path + "/*LEVEL*.csv"): - df = pd.read_csv(f) - df["Dispatch_ID"] -= 1 - df.to_csv(f, index=False) - @demarcate def post_processing(self): """Perform any post-processing steps prior to profiling.""" @@ -98,5 +87,7 @@ class rocprof_v2_profiler(OmniProfiler_Base): if self.ready_to_profile: # Manually join each pmc_perf*.csv output self.join_prof() + # Correct dispatch ids + fixup_rocprofv2_dispatch_ids(self.get_args().path) # Replace timestamp data to solve a known rocprof bug replace_timestamps(self.get_args().path) diff --git a/projects/rocprofiler-compute/src/utils/utils.py b/projects/rocprofiler-compute/src/utils/utils.py index f14507688e..7d5ffe2320 100644 --- a/projects/rocprofiler-compute/src/utils/utils.py +++ b/projects/rocprofiler-compute/src/utils/utils.py @@ -613,3 +613,16 @@ def set_locale_encoding(): exit=False, ) console_error(error) + + +def fixup_rocprofv2_dispatch_ids(workload_dir): + # Workaround for rocprofv2 using 1-based dispatch indicies + # first read pmc_perf + df = pd.read_csv(workload_dir + "/pmc_perf.csv") + df["Dispatch_ID"] -= 1 + df.to_csv(workload_dir + "/pmc_perf.csv", index=False) + # next glob for *LEVEL*.csv + for f in glob.glob(workload_dir + "/*LEVEL*.csv"): + df = pd.read_csv(f) + df["Dispatch_ID"] -= 1 + df.to_csv(f, index=False)