From 035c6ec7a377574f05d416246c4af208e34cf5ba Mon Sep 17 00:00:00 2001 From: colramos-amd Date: Thu, 11 Jan 2024 16:30:46 -0600 Subject: [PATCH] Fix bug in profiling for Mi100 Signed-off-by: colramos-amd [ROCm/rocprofiler-compute commit: d4a649a92653394e71510e3fba437e5ee24e5cbe] --- .../src/omniperf_profile/profiler_base.py | 6 +++--- projects/rocprofiler-compute/src/omniperf_soc/soc_base.py | 5 +++-- projects/rocprofiler-compute/src/omniperf_soc/soc_gfx908.py | 2 +- projects/rocprofiler-compute/src/utils/utils.py | 2 +- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/projects/rocprofiler-compute/src/omniperf_profile/profiler_base.py b/projects/rocprofiler-compute/src/omniperf_profile/profiler_base.py index d86e2c7639..821ca903d2 100644 --- a/projects/rocprofiler-compute/src/omniperf_profile/profiler_base.py +++ b/projects/rocprofiler-compute/src/omniperf_profile/profiler_base.py @@ -334,9 +334,9 @@ class OmniProfiler_Base(): logging.debug(output) logging.info("\nCurrent input file: %s" % fname) - options = self.get_profiler_options(fname) - options += self._soc.get_profiler_options() - print("options are ", options) + # Fetch any SoC/profiler specific profiling options + options = self._soc.get_profiler_options() + options += self.get_profiler_options(fname) if self.__profiler == "rocprofv1" or self.__profiler == "rocprofv2": run_prof( diff --git a/projects/rocprofiler-compute/src/omniperf_soc/soc_base.py b/projects/rocprofiler-compute/src/omniperf_soc/soc_base.py index 7a90b4130d..0d8e3260db 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/soc_base.py +++ b/projects/rocprofiler-compute/src/omniperf_soc/soc_base.py @@ -31,6 +31,7 @@ import glob import re import numpy as np from utils.utils import demarcate +from pathlib import Path class OmniSoC_Base(): def __init__(self,args): @@ -57,8 +58,8 @@ class OmniSoC_Base(): self.__perfmon_config = config def set_soc_param(self, param: dict): self.__soc_params = param - def get_perfmon_dir(self): - return self.__perfmon_dir + def get_workload_perfmon_dir(self): + return str(Path(self.__perfmon_dir).parent.absolute()) def get_soc_param(self): return self.__soc_params def set_soc(self, soc: str): diff --git a/projects/rocprofiler-compute/src/omniperf_soc/soc_gfx908.py b/projects/rocprofiler-compute/src/omniperf_soc/soc_gfx908.py index 17212284ee..dd0df23783 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/soc_gfx908.py +++ b/projects/rocprofiler-compute/src/omniperf_soc/soc_gfx908.py @@ -66,7 +66,7 @@ class gfx908_soc (OmniSoC_Base): @demarcate def get_profiler_options(self): # Mi100 requires a custom xml config - return ["-m", self.get_perfmon_dir() + "/" + "metrics.xml"] + return ["-m", self.get_workload_perfmon_dir() + "/" + "metrics.xml"] #----------------------- # Required child methods diff --git a/projects/rocprofiler-compute/src/utils/utils.py b/projects/rocprofiler-compute/src/utils/utils.py index cca724ee05..61dadd8ac1 100644 --- a/projects/rocprofiler-compute/src/utils/utils.py +++ b/projects/rocprofiler-compute/src/utils/utils.py @@ -192,7 +192,7 @@ def run_prof(fname, profiler_options): # profile the app success, output = capture_subprocess_output( - [ rocprof_cmd, "-i", fname ] + options + [ rocprof_cmd ] + options ) if not success: