Unified configuration for metrics (#726)

* Show description of metrics during analysis
    * Use --include-cols Description show the Description column in analyze mode (this is hidden by default)
    * Remove tips field from analysis config

* Align metric names in analysis config and documentation

* Add unified config utils/unified_config.yaml

* Add python script utils/split_config.py to auto generate analysis configuration and documentation metrics description
   * Add test case to ensure unified config is older than auto-generated config
   * Auto generate analysis config and documentation metrics description

* Update CONTRIBUTING.md to add instructions to build documentation assets
    * Add docker image and compose file to build documentation

* Update CHANGELOG and Documentation

* Use jinja template instead of hardcoding metric tables in documentation

[ROCm/rocprofiler-compute commit: bb44e90b2d]
This commit is contained in:
vedithal-amd
2025-07-25 14:01:34 -04:00
committed by GitHub
parent dcdadfd37d
commit 354fe5f52c
232 changed files with 44409 additions and 22480 deletions
+10 -6
View File
@@ -49,12 +49,16 @@ def filter_df(column, df, filt):
def multi_bar_chart(table_id, display_df):
if table_id == 1604:
nested_bar = {"NC": {}, "UC": {}, "RW": {}, "CC": {}}
nested_bar = {}
for index, row in display_df.iterrows():
if not row["Coherency"] in nested_bar:
nested_bar[row["Coherency"]] = {}
nested_bar[row["Coherency"]][row["Xfer"]] = row["Avg"]
if table_id == 1705: # L2 - Fabric Interface Stalls
nested_bar = {"Read": {}, "Write": {}}
nested_bar = {}
for index, row in display_df.iterrows():
if not row["Transaction"] in nested_bar:
nested_bar[row["Transaction"]] = {}
nested_bar[row["Transaction"]][row["Type"]] = row["Avg"]
return nested_bar
@@ -307,14 +311,14 @@ def build_table_chart(
else:
formatted_columns.append(dict(id=col, name=col, type="text"))
# tooltip shows only on the 1st col for now if 'Tips' available
# tooltip shows only on the 1st col for now if 'Metric Description' available
table_tooltip = (
[
{
column: {
"value": (
str(row["Tips"])
if column == display_columns[0] and row["Tips"]
str(row["Description"])
if column == display_columns[0] and row["Description"]
else ""
),
"type": "markdown",
@@ -323,7 +327,7 @@ def build_table_chart(
}
for row in original_df.to_dict("records")
]
if "Tips" in original_df.columns.values.tolist()
if "Description" in original_df.columns.values.tolist()
else None
)