From 9b04e88046d5e05614394264689731f5b7fcdd4a Mon Sep 17 00:00:00 2001 From: colramos-amd Date: Tue, 27 Feb 2024 15:58:27 -0600 Subject: [PATCH] Fix bug in GUI kernel filtering Signed-off-by: colramos-amd [ROCm/rocprofiler-compute commit: 0d516f05b4ac2168c1a8c1fabf1d806fe33afc2c] --- .../rocprofiler-compute/src/utils/parser.py | 56 +++++++------------ 1 file changed, 21 insertions(+), 35 deletions(-) diff --git a/projects/rocprofiler-compute/src/utils/parser.py b/projects/rocprofiler-compute/src/utils/parser.py index 90e86298ae..98885cd7c0 100644 --- a/projects/rocprofiler-compute/src/utils/parser.py +++ b/projects/rocprofiler-compute/src/utils/parser.py @@ -855,43 +855,29 @@ def apply_filters(workload, dir, is_gui, debug): # We pick up kernel names from kerne ids first. # Then filter valid entries with kernel names. if workload.filter_kernel_ids: - # There are two ways Kernel filtering is done: - # 1) CLI accepts an array of ints, representing indexes of kernels from the pmc_kernel_top.csv - # 2) GUI will be passing an array of strs. The full names of kernels as selected from dropdown - if not is_gui: - if debug: - print("CLI kernel filtering") - # Verify valid kernel filter - kernels_df = pd.read_csv(os.path.join(dir, "pmc_kernel_top.csv")) - for kernel_id in workload.filter_kernel_ids: - if kernel_id >= len(kernels_df["Kernel_Name"]): - error( - "{} is an invalid kernel id. Please enter an id between 0-{}".format( - kernel_id, len(kernels_df["Kernel_Name"]) - 1 - ) + # Verify valid kernel filter + kernels_df = pd.read_csv(os.path.join(dir, "pmc_kernel_top.csv")) + for kernel_id in workload.filter_kernel_ids: + if kernel_id >= len(kernels_df["Kernel_Name"]): + error( + "{} is an invalid kernel id. Please enter an id between 0-{}".format( + kernel_id, len(kernels_df["Kernel_Name"]) - 1 ) - kernels = [] - # NB: mark selected kernels with "*" - # Todo: fix it for unaligned comparison - kernel_top_df = workload.dfs[pmc_kernel_top_table_id] - kernel_top_df["S"] = "" - for kernel_id in workload.filter_kernel_ids: - # print("------- ", kernel_id) - kernels.append(kernel_top_df.loc[kernel_id, "Kernel_Name"]) - kernel_top_df.loc[kernel_id, "S"] = "*" - - if kernels: - # print("fitlered df:", len(df.index)) - ret_df = ret_df.loc[ - ret_df[schema.pmc_perf_file_prefix]["Kernel_Name"].isin(kernels) - ] - else: - if debug: - print("GUI kernel filtering") - ret_df = ret_df.loc[ - ret_df[schema.pmc_perf_file_prefix]["Kernel_Name"].isin( - workload.filter_kernel_ids ) + kernels = [] + # NB: mark selected kernels with "*" + # Todo: fix it for unaligned comparison + kernel_top_df = workload.dfs[pmc_kernel_top_table_id] + kernel_top_df["S"] = "" + for kernel_id in workload.filter_kernel_ids: + # print("------- ", kernel_id) + kernels.append(kernel_top_df.loc[kernel_id, "Kernel_Name"]) + kernel_top_df.loc[kernel_id, "S"] = "*" + + if kernels: + # print("fitlered df:", len(df.index)) + ret_df = ret_df.loc[ + ret_df[schema.pmc_perf_file_prefix]["Kernel_Name"].isin(kernels) ] if workload.filter_dispatch_ids: