From 5ed70b68d0224edead23c256770762992d2e1176 Mon Sep 17 00:00:00 2001 From: colramos-amd Date: Tue, 23 Jan 2024 12:30:57 -0600 Subject: [PATCH] Fixed broken roofline options Signed-off-by: colramos-amd [ROCm/rocprofiler-compute commit: 245e8499c89dd7781f8e9cbf03c33aae5366507b] --- projects/rocprofiler-compute/src/roofline.py | 22 ++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/projects/rocprofiler-compute/src/roofline.py b/projects/rocprofiler-compute/src/roofline.py index 47b2e4fe3b..b6ebef4c92 100644 --- a/projects/rocprofiler-compute/src/roofline.py +++ b/projects/rocprofiler-compute/src/roofline.py @@ -52,8 +52,22 @@ class Roofline: self.__figure = go.Figure() if not isinstance(self.__run_parameters['path_to_dir'], list): self.roof_setup() + # Set roofline run parameters from args + if hasattr(self.__args, 'roof_only') and self.__args.roof_only == True: + self.__run_parameters['is_standalone'] = True + if hasattr(self.__args, 'kernel_names') and self.__args.kernel_names == True: + self.__run_parameters['include_kernel_names'] = True + if hasattr(self.__args, 'mem_level') and self.__args.mem_level != "ALL": + self.__run_parameters['mem_level'] = self.__args.mem_level + if hasattr(self.__args, 'sort') and self.__args.sort != "ALL": + self.__run_parameters['sort_type'] = self.__args.mem_level + + self.validate_parameters() + + def validate_parameters(self): + if self.__run_parameters['include_kernel_names'] and (not self.__run_parameters['is_standalone']): + error("--roof-only is required for --kernel-names") - def roof_setup(self): # set default workload path if not specified if self.__run_parameters['path_to_dir'] == os.path.join(os.getcwd(), 'workloads'): @@ -69,9 +83,6 @@ class Roofline: ): """Generate a set of empirical roofline plots given a directory containing required profiling and benchmarking data """ - if self.__run_parameters['include_kernel_names'] and (not self.__run_parameters['is_standalone']): - error("--roof-only is required for --kernel-names") - # Create arithmetic intensity data that will populate the roofline model logging.debug("[roofline] Path: ", self.__run_parameters['path_to_dir']) self.__ai_data = calc_ai(self.__run_parameters['sort_type'], ret_df) @@ -311,7 +322,6 @@ class Roofline: sys.exit(1) t_df = OrderedDict() t_df["pmc_perf"] = pd.read_csv(app_path) - self.__run_parameters['is_standalone'] = True self.empirical_roofline( ret_df=t_df ) @@ -354,7 +364,7 @@ class Roofline: # we include pre_processing() and profile() methods for those who wish to borrow the roofline module @abstractmethod def post_processing(self): - if self.__args.roof_only: + if self.__run_parameters['is_standalone']: self.standalone_roofline()