Added min/max/avg to VALU Arithmetic Instr Mix

-  gui now runs on archconfigs from sys_info

Signed-off-by: JoseSantosAMD <Jose.Santos@amd.com>


[ROCm/rocprofiler-compute commit: b82f033bf9]
This commit is contained in:
JoseSantosAMD
2023-08-11 15:46:46 -05:00
والد 809aa7075c
کامیت 2dbfd9fb75
6فایلهای تغییر یافته به همراه158 افزوده شده و 102 حذف شده
@@ -76,7 +76,9 @@ Panel Config:
title: VALU Arithmetic Instr Mix
header:
metric: Metric
count: Count
avg: Avg
min: Min
max: Max
unit: Unit
tips: Tips
style:
@@ -84,63 +86,93 @@ Panel Config:
label_txt: (# of instr + $normUnit)
metric:
INT-32:
count: None # No perf counter
avg: None # No HW module
min: None # No HW module
max: None # No HW module
unit: (instr + $normUnit)
tips:
INT-64:
count: None # No perf counter
avg: None # No HW module
min: None # No HW module
max: None # No HW module
unit: (instr + $normUnit)
tips:
F16-ADD:
count: None # No perf counter
avg: None # No HW module
min: None # No HW module
max: None # No HW module
unit: (instr + $normUnit)
tips:
F16-Mult:
count: None # No perf counter
avg: None # No HW module
min: None # No HW module
max: None # No HW module
unit: (instr + $normUnit)
tips:
F16-FMA:
count: None # No perf counter
avg: None # No HW module
min: None # No HW module
max: None # No HW module
unit: (instr + $normUnit)
tips:
F16-Trans:
count: None # No perf counter
avg: None # No HW module
min: None # No HW module
max: None # No HW module
unit: (instr + $normUnit)
tips:
F32-ADD:
count: None # No perf counter
avg: None # No HW module
min: None # No HW module
max: None # No HW module
unit: (instr + $normUnit)
tips:
F32-Mult:
count: None # No perf counter
avg: None # No HW module
min: None # No HW module
max: None # No HW module
unit: (instr + $normUnit)
tips:
F32-FMA:
count: None # No perf counter
avg: None # No HW module
min: None # No HW module
max: None # No HW module
unit: (instr + $normUnit)
tips:
F32-Trans:
count: None # No perf counter
avg: None # No HW module
min: None # No HW module
max: None # No HW module
unit: (instr + $normUnit)
tips:
F64-ADD:
count: None # No perf counter
avg: None # No HW module
min: None # No HW module
max: None # No HW module
unit: (instr + $normUnit)
tips:
F64-Mult:
count: None # No perf counter
avg: None # No HW module
min: None # No HW module
max: None # No HW module
unit: (instr + $normUnit)
tips:
F64-FMA:
count: None # No perf counter
avg: None # No HW module
min: None # No HW module
max: None # No HW module
unit: (instr + $normUnit)
tips:
F64-Trans:
count: None # No perf counter
avg: None # No HW module
min: None # No HW module
max: None # No HW module
unit: (instr + $normUnit)
tips:
Conversion:
count: None # No perf counter
avg: None # No HW module
min: None # No HW module
max: None # No HW module
unit: (instr + $normUnit)
tips:
@@ -76,7 +76,9 @@ Panel Config:
title: VALU Arithmetic Instr Mix
header:
metric: Metric
count: Count
avg: Avg
min: Min
max: Max
unit: Unit
tips: Tips
style:
@@ -84,63 +86,93 @@ Panel Config:
label_txt: (# of instr + $normUnit)
metric:
INT-32:
count: None # No perf counter
avg: None # No perf counter
min: None # No perf counter
max: None # No perf counter
unit: (instr + $normUnit)
tips:
INT-64:
count: None # No perf counter
avg: None # No perf counter
min: None # No perf counter
max: None # No perf counter
unit: (instr + $normUnit)
tips:
F16-ADD:
count: None # No perf counter
avg: None # No perf counter
min: None # No perf counter
max: None # No perf counter
unit: (instr + $normUnit)
tips:
F16-Mult:
count: None # No perf counter
avg: None # No perf counter
min: None # No perf counter
max: None # No perf counter
unit: (instr + $normUnit)
tips:
F16-FMA:
count: None # No perf counter
avg: None # No perf counter
min: None # No perf counter
max: None # No perf counter
unit: (instr + $normUnit)
tips:
F16-Trans:
count: None # No perf counter
avg: None # No perf counter
min: None # No perf counter
max: None # No perf counter
unit: (instr + $normUnit)
tips:
F32-ADD:
count: None # No perf counter
avg: None # No perf counter
min: None # No perf counter
max: None # No perf counter
unit: (instr + $normUnit)
tips:
F32-Mult:
count: None # No perf counter
avg: None # No perf counter
min: None # No perf counter
max: None # No perf counter
unit: (instr + $normUnit)
tips:
F32-FMA:
count: None # No perf counter
avg: None # No perf counter
min: None # No perf counter
max: None # No perf counter
unit: (instr + $normUnit)
tips:
F32-Trans:
count: None # No perf counter
avg: None # No perf counter
min: None # No perf counter
max: None # No perf counter
unit: (instr + $normUnit)
tips:
F64-ADD:
count: None # No perf counter
avg: None # No perf counter
min: None # No perf counter
max: None # No perf counter
unit: (instr + $normUnit)
tips:
F64-Mult:
count: None # No perf counter
avg: None # No perf counter
min: None # No perf counter
max: None # No perf counter
unit: (instr + $normUnit)
tips:
F64-FMA:
count: None # No perf counter
avg: None # No perf counter
min: None # No perf counter
max: None # No perf counter
unit: (instr + $normUnit)
tips:
F64-Trans:
count: None # No perf counter
avg: None # No perf counter
min: None # No perf counter
max: None # No perf counter
unit: (instr + $normUnit)
tips:
Conversion:
count: None # No perf counter
avg: None # No perf counter
min: None # No perf counter
max: None # No perf counter
unit: (instr + $normUnit)
tips:
@@ -76,7 +76,9 @@ Panel Config:
title: VALU Arithmetic Instr Mix
header:
metric: Metric
count: Count
avg: Avg
min: Min
max: Max
unit: Unit
tips: Tips
style:
@@ -84,63 +86,93 @@ Panel Config:
label_txt: (# of instr + $normUnit)
metric:
INT32:
count: AVG((SQ_INSTS_VALU_INT32 / $denom))
avg: AVG((SQ_INSTS_VALU_INT32 / $denom))
min: MIN((SQ_INSTS_VALU_INT32 / $denom))
max: MAX((SQ_INSTS_VALU_INT32 / $denom))
unit: (instr + $normUnit)
tips:
INT64:
count: AVG((SQ_INSTS_VALU_INT64 / $denom))
avg: AVG((SQ_INSTS_VALU_INT64 / $denom))
min: MIN((SQ_INSTS_VALU_INT64 / $denom))
max: MAX((SQ_INSTS_VALU_INT64 / $denom))
unit: (instr + $normUnit)
tips:
F16-ADD:
count: AVG((SQ_INSTS_VALU_ADD_F16 / $denom))
avg: AVG((SQ_INSTS_VALU_ADD_F16 / $denom))
min: MIN((SQ_INSTS_VALU_ADD_F16 / $denom))
max: MAX((SQ_INSTS_VALU_ADD_F16 / $denom))
unit: (instr + $normUnit)
tips:
F16-MUL:
count: AVG((SQ_INSTS_VALU_MUL_F16 / $denom))
avg: AVG((SQ_INSTS_VALU_MUL_F16 / $denom))
min: MIN((SQ_INSTS_VALU_MUL_F16 / $denom))
max: MAX((SQ_INSTS_VALU_MUL_F16 / $denom))
unit: (instr + $normUnit)
tips:
F16-FMA:
count: AVG((SQ_INSTS_VALU_FMA_F16 / $denom))
avg: AVG((SQ_INSTS_VALU_FMA_F16 / $denom))
min: MIN((SQ_INSTS_VALU_FMA_F16 / $denom))
max: MAX((SQ_INSTS_VALU_FMA_F16 / $denom))
unit: (instr + $normUnit)
tips:
F16-Trans:
count: AVG((SQ_INSTS_VALU_TRANS_F16 / $denom))
avg: AVG((SQ_INSTS_VALU_TRANS_F16 / $denom))
min: MIN((SQ_INSTS_VALU_TRANS_F16 / $denom))
max: MAX((SQ_INSTS_VALU_TRANS_F16 / $denom))
unit: (instr + $normUnit)
tips:
F32-ADD:
count: AVG((SQ_INSTS_VALU_ADD_F32 / $denom))
avg: AVG((SQ_INSTS_VALU_ADD_F32 / $denom))
min: MIN((SQ_INSTS_VALU_ADD_F32 / $denom))
max: MAX((SQ_INSTS_VALU_ADD_F32 / $denom))
unit: (instr + $normUnit)
tips:
F32-MUL:
count: AVG((SQ_INSTS_VALU_MUL_F32 / $denom))
avg: AVG((SQ_INSTS_VALU_MUL_F32 / $denom))
min: MIN((SQ_INSTS_VALU_MUL_F32 / $denom))
max: MAX((SQ_INSTS_VALU_MUL_F32 / $denom))
unit: (instr + $normUnit)
tips:
F32-FMA:
count: AVG((SQ_INSTS_VALU_FMA_F32 / $denom))
avg: AVG((SQ_INSTS_VALU_FMA_F32 / $denom))
min: MIN((SQ_INSTS_VALU_FMA_F32 / $denom))
max: MAX((SQ_INSTS_VALU_FMA_F32 / $denom))
unit: (instr + $normUnit)
tips:
F32-Trans:
count: AVG((SQ_INSTS_VALU_TRANS_F32 / $denom))
avg: AVG((SQ_INSTS_VALU_TRANS_F32 / $denom))
min: MIN((SQ_INSTS_VALU_TRANS_F32 / $denom))
max: MAX((SQ_INSTS_VALU_TRANS_F32 / $denom))
unit: (instr + $normUnit)
tips:
F64-ADD:
count: AVG((SQ_INSTS_VALU_ADD_F64 / $denom))
avg: AVG((SQ_INSTS_VALU_ADD_F64 / $denom))
min: MIN((SQ_INSTS_VALU_ADD_F64 / $denom))
max: MAX((SQ_INSTS_VALU_ADD_F64 / $denom))
unit: (instr + $normUnit)
tips:
F64-MUL:
count: AVG((SQ_INSTS_VALU_MUL_F64 / $denom))
avg: AVG((SQ_INSTS_VALU_MUL_F64 / $denom))
min: MIN((SQ_INSTS_VALU_MUL_F64 / $denom))
max: MAX((SQ_INSTS_VALU_MUL_F64 / $denom))
unit: (instr + $normUnit)
tips:
F64-FMA:
count: AVG((SQ_INSTS_VALU_FMA_F64 / $denom))
avg: AVG((SQ_INSTS_VALU_FMA_F64 / $denom))
min: MIN((SQ_INSTS_VALU_FMA_F64 / $denom))
max: MAX((SQ_INSTS_VALU_FMA_F64 / $denom))
unit: (instr + $normUnit)
tips:
F64-Trans:
count: AVG((SQ_INSTS_VALU_TRANS_F64 / $denom))
avg: AVG((SQ_INSTS_VALU_TRANS_F64 / $denom))
min: MIN((SQ_INSTS_VALU_TRANS_F64 / $denom))
max: MAX((SQ_INSTS_VALU_TRANS_F64 / $denom))
unit: (instr + $normUnit)
tips:
Conversion:
count: AVG((SQ_INSTS_VALU_CVT / $denom))
avg: AVG((SQ_INSTS_VALU_CVT / $denom))
min: MIN((SQ_INSTS_VALU_CVT / $denom))
max: MAX((SQ_INSTS_VALU_CVT / $denom))
unit: (instr + $normUnit)
tips:
@@ -13,30 +13,11 @@ Panel Config:
title: Speed-of-Light
header:
metric: Metric
avg: Avg
min: Min
max: Max
value: Value
tips: Tips
style:
type: simple_bar
range_color: [1, 100]
label_txt: (%)
xrange: [0, 110]
metric:
valu_flops_pop:
avg: ((100 * AVG(((((64 * (((SQ_INSTS_VALU_ADD_F16 + SQ_INSTS_VALU_MUL_F16)
+ SQ_INSTS_VALU_TRANS_F16) + (2 * SQ_INSTS_VALU_FMA_F16))) + (64 * (((SQ_INSTS_VALU_ADD_F32
+ SQ_INSTS_VALU_MUL_F32) + SQ_INSTS_VALU_TRANS_F32) + (2 * SQ_INSTS_VALU_FMA_F32))))
+ (64 * (((SQ_INSTS_VALU_ADD_F64 + SQ_INSTS_VALU_MUL_F64) + SQ_INSTS_VALU_TRANS_F64)
+ (2 * SQ_INSTS_VALU_FMA_F64)))) / (EndNs - BeginNs)))) / (((($sclk
* $numCU) * 64) * 2) / 1000))
min: ((100 * MIN(((((64 * (((SQ_INSTS_VALU_ADD_F16 + SQ_INSTS_VALU_MUL_F16)
+ SQ_INSTS_VALU_TRANS_F16) + (2 * SQ_INSTS_VALU_FMA_F16))) + (64 * (((SQ_INSTS_VALU_ADD_F32
+ SQ_INSTS_VALU_MUL_F32) + SQ_INSTS_VALU_TRANS_F32) + (2 * SQ_INSTS_VALU_FMA_F32))))
+ (64 * (((SQ_INSTS_VALU_ADD_F64 + SQ_INSTS_VALU_MUL_F64) + SQ_INSTS_VALU_TRANS_F64)
+ (2 * SQ_INSTS_VALU_FMA_F64)))) / (EndNs - BeginNs)))) / (((($sclk
* $numCU) * 64) * 2) / 1000))
max: ((100 * MAX(((((64 * (((SQ_INSTS_VALU_ADD_F16 + SQ_INSTS_VALU_MUL_F16)
value: ((100 * AVG(((((64 * (((SQ_INSTS_VALU_ADD_F16 + SQ_INSTS_VALU_MUL_F16)
+ SQ_INSTS_VALU_TRANS_F16) + (2 * SQ_INSTS_VALU_FMA_F16))) + (64 * (((SQ_INSTS_VALU_ADD_F32
+ SQ_INSTS_VALU_MUL_F32) + SQ_INSTS_VALU_TRANS_F32) + (2 * SQ_INSTS_VALU_FMA_F32))))
+ (64 * (((SQ_INSTS_VALU_ADD_F64 + SQ_INSTS_VALU_MUL_F64) + SQ_INSTS_VALU_TRANS_F64)
@@ -44,43 +25,23 @@ Panel Config:
* $numCU) * 64) * 2) / 1000))
tips:
mfma_flops_bf16_pop:
avg: ((100 * AVG(((SQ_INSTS_VALU_MFMA_MOPS_BF16 * 512) / (EndNs - BeginNs))))
/ ((($sclk * $numCU) * 512) / 1000))
min: ((100 * MIN(((SQ_INSTS_VALU_MFMA_MOPS_BF16 * 512) / (EndNs - BeginNs))))
/ ((($sclk * $numCU) * 512) / 1000))
max: ((100 * MAX(((SQ_INSTS_VALU_MFMA_MOPS_BF16 * 512) / (EndNs - BeginNs))))
value: ((100 * AVG(((SQ_INSTS_VALU_MFMA_MOPS_BF16 * 512) / (EndNs - BeginNs))))
/ ((($sclk * $numCU) * 512) / 1000))
tips:
mfma_flops_f16_pop:
avg: ((100 * AVG(((SQ_INSTS_VALU_MFMA_MOPS_F16 * 512) / (EndNs - BeginNs))))
/ ((($sclk * $numCU) * 1024) / 1000))
min: ((100 * MIN(((SQ_INSTS_VALU_MFMA_MOPS_F16 * 512) / (EndNs - BeginNs))))
/ ((($sclk * $numCU) * 1024) / 1000))
max: ((100 * MAX(((SQ_INSTS_VALU_MFMA_MOPS_F16 * 512) / (EndNs - BeginNs))))
value: ((100 * AVG(((SQ_INSTS_VALU_MFMA_MOPS_F16 * 512) / (EndNs - BeginNs))))
/ ((($sclk * $numCU) * 1024) / 1000))
tips:
mfma_flops_f32_pop:
avg: ((100 * AVG(((SQ_INSTS_VALU_MFMA_MOPS_F32 * 512) / (EndNs - BeginNs))))
/ ((($sclk * $numCU) * 256) / 1000))
min: ((100 * MIN(((SQ_INSTS_VALU_MFMA_MOPS_F32 * 512) / (EndNs - BeginNs))))
/ ((($sclk * $numCU) * 256) / 1000))
max: ((100 * MAX(((SQ_INSTS_VALU_MFMA_MOPS_F32 * 512) / (EndNs - BeginNs))))
value: ((100 * AVG(((SQ_INSTS_VALU_MFMA_MOPS_F32 * 512) / (EndNs - BeginNs))))
/ ((($sclk * $numCU) * 256) / 1000))
tips:
mfma_flops_f64_pop:
avg: ((100 * AVG(((SQ_INSTS_VALU_MFMA_MOPS_F64 * 512) / (EndNs - BeginNs))))
/ ((($sclk * $numCU) * 256) / 1000))
min: ((100 * MIN(((SQ_INSTS_VALU_MFMA_MOPS_F64 * 512) / (EndNs - BeginNs))))
/ ((($sclk * $numCU) * 256) / 1000))
max: ((100 * MAX(((SQ_INSTS_VALU_MFMA_MOPS_F64 * 512) / (EndNs - BeginNs))))
value: ((100 * AVG(((SQ_INSTS_VALU_MFMA_MOPS_F64 * 512) / (EndNs - BeginNs))))
/ ((($sclk * $numCU) * 256) / 1000))
tips:
mfma_flops_i8_pop:
avg: ((100 * AVG(((SQ_INSTS_VALU_MFMA_MOPS_I8 * 512) / (EndNs - BeginNs))))
/ ((($sclk * $numCU) * 1024) / 1000))
min: ((100 * MIN(((SQ_INSTS_VALU_MFMA_MOPS_I8 * 512) / (EndNs - BeginNs))))
/ ((($sclk * $numCU) * 1024) / 1000))
max: ((100 * MAX(((SQ_INSTS_VALU_MFMA_MOPS_I8 * 512) / (EndNs - BeginNs))))
value: ((100 * AVG(((SQ_INSTS_VALU_MFMA_MOPS_I8 * 512) / (EndNs - BeginNs))))
/ ((($sclk * $numCU) * 1024) / 1000))
tips:
@@ -226,5 +187,4 @@ Panel Config:
max: MAX((((64 * (((SQ_INSTS_VALU_ADD_F64 + SQ_INSTS_VALU_MUL_F64) + SQ_INSTS_VALU_TRANS_F64)
+ (SQ_INSTS_VALU_FMA_F64 * 2))) + (512 * SQ_INSTS_VALU_MFMA_MOPS_F64)) / $denom))
unit: (OPs + $normUnit)
tips:
tips:
@@ -195,7 +195,7 @@ def run_gui(args, runs):
gui.build_layout(
app,
runs,
archConfigs["gfx90a"],
archConfigs[runs[args.path[0][0]].sys_info.iloc[0]["gpu_soc"]],
input_filters,
args.decimal,
args.time_unit,
@@ -154,17 +154,17 @@ def build_bar_chart(display_df, table_config, norm_filt):
# Insr Mix bar chart
if table_config["id"] in barchart_elements["instr_mix"]:
display_df["Count"] = [
x.astype(int) if x != "" else int(0) for x in display_df["Count"]
display_df["Avg"] = [
x.astype(int) if x != "" else int(0) for x in display_df["Avg"]
]
df_unit = display_df["Unit"][0]
d_figs.append(
px.bar(
display_df,
x="Count",
x="Avg",
y="Metric",
color="Count",
labels={"Count": "# of {}".format(df_unit.lower())},
color="Avg",
labels={"Avg": "# of {}".format(df_unit.lower())},
height=400,
orientation="h",
)