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:
+48
-16
@@ -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:
|
||||
|
||||
|
||||
+48
-16
@@ -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:
|
||||
|
||||
|
||||
+48
-16
@@ -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:
|
||||
|
||||
|
||||
+8
-48
@@ -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",
|
||||
)
|
||||
|
||||
مرجع در شماره جدید
Block a user