diff --git a/projects/rocprofiler-compute/src/omniperf_analyze/omniperf_analyze.py b/projects/rocprofiler-compute/src/omniperf_analyze/omniperf_analyze.py index 7cb6b3bf62..e8b93edf0e 100644 --- a/projects/rocprofiler-compute/src/omniperf_analyze/omniperf_analyze.py +++ b/projects/rocprofiler-compute/src/omniperf_analyze/omniperf_analyze.py @@ -138,13 +138,12 @@ def run_gui(args, runs): app = dash.Dash(__name__, external_stylesheets=[dbc.themes.CYBORG]) if len(runs) == 1: - num_results = 10 file_io.create_df_kernel_top_stats( args.path[0][0], runs[args.path[0][0]].filter_gpu_ids, runs[args.path[0][0]].filter_dispatch_ids, args.time_unit, - num_results, + args.max_kernel_num, ) runs[args.path[0][0]].raw_pmc = file_io.create_df_pmc( args.path[0][0], args.verbose @@ -187,13 +186,12 @@ def run_cli(args, runs): # which archConfig passed into show_all function. # After decide to how to manage kernels display patterns, we can revisit it. for d in args.path: - num_results = 10 file_io.create_df_kernel_top_stats( d[0], runs[d[0]].filter_gpu_ids, runs[d[0]].filter_dispatch_ids, args.time_unit, - num_results, + args.max_kernel_num, ) runs[d[0]].raw_pmc = file_io.create_df_pmc( d[0], args.verbose diff --git a/projects/rocprofiler-compute/src/omniperf_analyze/utils/file_io.py b/projects/rocprofiler-compute/src/omniperf_analyze/utils/file_io.py index 05219dbcca..714d6016c3 100644 --- a/projects/rocprofiler-compute/src/omniperf_analyze/utils/file_io.py +++ b/projects/rocprofiler-compute/src/omniperf_analyze/utils/file_io.py @@ -111,7 +111,7 @@ def create_df_kernel_top_stats( filter_gpu_ids, filter_dispatch_ids, time_unit, - num_results, + max_kernel_num, sortby="sum", ): """ @@ -172,13 +172,13 @@ def create_df_kernel_top_stats( if sortby == "sum": grouped = grouped.sort_values(by=("Sum" + time_unit_str), ascending=False) - grouped = grouped.head(num_results) # Display only the top n results + grouped = grouped.head(max_kernel_num) # Display only the top n results grouped.to_csv(os.path.join(raw_data_dir, "pmc_kernel_top.csv"), index=False) elif sortby == "kernel": grouped = grouped.sort_values("KernelName") - grouped = grouped.head(num_results) # Display only the top n results + grouped = grouped.head(max_kernel_num) # Display only the top n results grouped.to_csv(os.path.join(raw_data_dir, "pmc_kernel_top.csv"), index=False) diff --git a/projects/rocprofiler-compute/src/parser.py b/projects/rocprofiler-compute/src/parser.py index a18ad5d22b..5a614d9652 100644 --- a/projects/rocprofiler-compute/src/parser.py +++ b/projects/rocprofiler-compute/src/parser.py @@ -445,6 +445,14 @@ def parse(my_parser): choices=["per_wave", "per_cycle", "per_second", "per_kernel"], help="\t\tSpecify the normalization unit: (DEFAULT: per_wave)\n\t\t per_wave\n\t\t per_cycle\n\t\t per_second\n\t\t per_kernel", ) + analyze_group.add_argument( + "--max-kernel-num", + dest="max_kernel_num", + metavar="", + type=int, + default=10, + help="\t\tSpecify the maximum number of kernels shown", + ) analyze_group.add_argument( "--config-dir", dest="config_dir",