From 12495e6f442274f444fc4f0475aa99fe57ebd409 Mon Sep 17 00:00:00 2001 From: colramos-amd Date: Tue, 23 Jan 2024 12:56:59 -0600 Subject: [PATCH] Fix reporting of --roof-only runs in sys_info Signed-off-by: colramos-amd [ROCm/rocprofiler-compute commit: 37bd6b78aeff7284711a5d42c94cf965f2a20ee1] --- .../src/omniperf_profile/profiler_base.py | 9 ++++++++- projects/rocprofiler-compute/src/roofline.py | 9 ++++++++- projects/rocprofiler-compute/src/utils/utils.py | 7 +++++-- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/projects/rocprofiler-compute/src/omniperf_profile/profiler_base.py b/projects/rocprofiler-compute/src/omniperf_profile/profiler_base.py index fb1f776a0f..7954d1beb6 100644 --- a/projects/rocprofiler-compute/src/omniperf_profile/profiler_base.py +++ b/projects/rocprofiler-compute/src/omniperf_profile/profiler_base.py @@ -142,4 +142,11 @@ class OmniProfiler_Base(): """Perform any post-processing steps prior to profiling. """ logging.debug("[profiling] performing post-processing using %s profiler" % self.__profiler) - gen_sysinfo(self.__args.name, self.get_args().path, self.__args.ipblocks, self.__args.remaining, self.__args.no_roof) \ No newline at end of file + gen_sysinfo( + workload_name=self.__args.name, + workload_dir=self.get_args().path, + ip_blocks=self.__args.ipblocks, + app_cmd=self.__args.remaining, + skip_roof=self.__args.no_roof, + roof_only=self.__args.roof_only, + ) \ No newline at end of file diff --git a/projects/rocprofiler-compute/src/roofline.py b/projects/rocprofiler-compute/src/roofline.py index b6ebef4c92..4dd258c599 100644 --- a/projects/rocprofiler-compute/src/roofline.py +++ b/projects/rocprofiler-compute/src/roofline.py @@ -335,7 +335,14 @@ class Roofline: sysinfo_path = os.path.join(self.__args.path, "sysinfo.csv") if not os.path.isfile(sysinfo_path): logging.info("[roofline] sysinfo.csv not found. Generating...") - gen_sysinfo(self.__args.name, self.__workload_dir, self.__args.ipblocks, self.__args.remaining, self.__args.no_roof) + gen_sysinfo( + workload_name=self.__args.name, + workload_dir=self.__workload_dir, + ip_blocks=self.__args.ipblocks, + app_cmd=self.__args.remaining, + skip_roof=self.__args.no_roof, + roof_only=self.__args.roof_only + ) @abstractmethod def profile(self): diff --git a/projects/rocprofiler-compute/src/utils/utils.py b/projects/rocprofiler-compute/src/utils/utils.py index 079c010004..c10c050ebb 100644 --- a/projects/rocprofiler-compute/src/utils/utils.py +++ b/projects/rocprofiler-compute/src/utils/utils.py @@ -235,7 +235,7 @@ def replace_timestamps(workload_dir): warning = "WARNING: Incomplete profiling data detected. Unable to update timestamps." logging.warning(warning + "\n") -def gen_sysinfo(workload_name, workload_dir, ip_blocks, app_cmd, skip_roof): +def gen_sysinfo(workload_name, workload_dir, ip_blocks, app_cmd, skip_roof, roof_only): # Record system information mspec = specs.get_machine_specs(0) sysinfo = open(workload_dir + "/" + "sysinfo.csv", "w") @@ -295,7 +295,10 @@ def gen_sysinfo(workload_name, workload_dir, ip_blocks, app_cmd, skip_roof): elif mspec.GPU == "gfx90a": param += ["32", "32", "mi200", "56", str(hbmBW)] if not skip_roof: - blocks.append("roofline") + if roof_only: + ip_blocks = ["roofline"] + else: + blocks.append("roofline") # ip block info if ip_blocks == None: