From c8df0bf75f9f26b16e899c8f94e75e445e0fdf9c Mon Sep 17 00:00:00 2001 From: "fei.zheng" Date: Wed, 3 May 2023 17:45:29 -0600 Subject: [PATCH] add option to save dfs Signed-off-by: fei.zheng [ROCm/rocprofiler-compute commit: 1104371651b2c6005df7ad691806832f2b98a835] --- .../src/omniperf_analyze/omniperf_analyze.py | 1 + .../src/omniperf_analyze/utils/tty.py | 29 +++++++++++++------ projects/rocprofiler-compute/src/parser.py | 6 ++++ 3 files changed, 27 insertions(+), 9 deletions(-) diff --git a/projects/rocprofiler-compute/src/omniperf_analyze/omniperf_analyze.py b/projects/rocprofiler-compute/src/omniperf_analyze/omniperf_analyze.py index 7cb6b3bf62..1f5041bc72 100644 --- a/projects/rocprofiler-compute/src/omniperf_analyze/omniperf_analyze.py +++ b/projects/rocprofiler-compute/src/omniperf_analyze/omniperf_analyze.py @@ -209,6 +209,7 @@ def run_cli(args, runs): runs, archConfigs["gfx90a"], output, + args.df_file_dir, args.decimal, args.time_unit, args.cols, diff --git a/projects/rocprofiler-compute/src/omniperf_analyze/utils/tty.py b/projects/rocprofiler-compute/src/omniperf_analyze/utils/tty.py index c7a0636671..cc38e68c0a 100644 --- a/projects/rocprofiler-compute/src/omniperf_analyze/utils/tty.py +++ b/projects/rocprofiler-compute/src/omniperf_analyze/utils/tty.py @@ -23,6 +23,7 @@ ##############################################################################el import pandas as pd +from pathlib import Path from tabulate import tabulate from omniperf_analyze.utils import schema, parser @@ -47,7 +48,8 @@ def string_multiple_lines(source, width, max_rows): return "\n".join(lines) -def show_all(runs, archConfigs, output, decimal, time_unit, selected_cols, verbose): +def show_all(runs, archConfigs, output, df_file_dir, decimal, time_unit, + selected_cols, verbose): """ Show all panels with their data in plain text mode. """ @@ -152,15 +154,24 @@ def show_all(runs, archConfigs, output, decimal, time_unit, selected_cols, verbo if not df.empty: # subtitle for each table in a panel if existing + table_id_str = str(table_config["id"] // 100) + "." + str( + table_config["id"] % 100) + if "title" in table_config and table_config["title"]: - ss += ( - str(table_config["id"] // 100) - + "." - + str(table_config["id"] % 100) - + " " - + table_config["title"] - + "\n" - ) + ss += (table_id_str + " " + table_config["title"] + + "\n") + + if df_file_dir: + p = Path(df_file_dir) + if not p.exists(): + p.mkdir() + if p.is_dir(): + if "title" in table_config and table_config[ + "title"]: + table_id_str += ("_" + table_config["title"]) + df.to_csv(p.joinpath( + table_id_str.replace(" ", "_") + ".csv"), + index=False) # NB: # "columnwise: True" is a special attr of a table/df diff --git a/projects/rocprofiler-compute/src/parser.py b/projects/rocprofiler-compute/src/parser.py index a18ad5d22b..f749c041de 100644 --- a/projects/rocprofiler-compute/src/parser.py +++ b/projects/rocprofiler-compute/src/parser.py @@ -468,6 +468,12 @@ def parse(my_parser): default=2, help="\t\tSpecify the decimal to display. (DEFAULT: 2)", ) + analyze_group.add_argument( + "--save-dfs", + dest="df_file_dir", + metavar="", + help="\t\tSpecify the dirctory to save analysis dataframe csv files.", + ) analyze_group.add_argument( "--cols", type=int,