diff --git a/projects/rocprofiler-compute/src/omniperf_analyze/configs/gfx906/1000_compute-unit-instruction-mix.yaml b/projects/rocprofiler-compute/src/omniperf_analyze/configs/gfx906/1000_compute-unit-instruction-mix.yaml index 7e2a536d11..679acc34d1 100644 --- a/projects/rocprofiler-compute/src/omniperf_analyze/configs/gfx906/1000_compute-unit-instruction-mix.yaml +++ b/projects/rocprofiler-compute/src/omniperf_analyze/configs/gfx906/1000_compute-unit-instruction-mix.yaml @@ -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: diff --git a/projects/rocprofiler-compute/src/omniperf_analyze/configs/gfx908/1000_compute-unit-instruction-mix.yaml b/projects/rocprofiler-compute/src/omniperf_analyze/configs/gfx908/1000_compute-unit-instruction-mix.yaml index 1a05a80427..13c27dd209 100644 --- a/projects/rocprofiler-compute/src/omniperf_analyze/configs/gfx908/1000_compute-unit-instruction-mix.yaml +++ b/projects/rocprofiler-compute/src/omniperf_analyze/configs/gfx908/1000_compute-unit-instruction-mix.yaml @@ -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: diff --git a/projects/rocprofiler-compute/src/omniperf_analyze/configs/gfx90a/1000_compute-unit-instruction-mix.yaml b/projects/rocprofiler-compute/src/omniperf_analyze/configs/gfx90a/1000_compute-unit-instruction-mix.yaml index 811ebca112..8ffd87d2c8 100644 --- a/projects/rocprofiler-compute/src/omniperf_analyze/configs/gfx90a/1000_compute-unit-instruction-mix.yaml +++ b/projects/rocprofiler-compute/src/omniperf_analyze/configs/gfx90a/1000_compute-unit-instruction-mix.yaml @@ -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: diff --git a/projects/rocprofiler-compute/src/omniperf_analyze/configs/gfx90a/1100_compute-unit-compute-pipeline.yaml b/projects/rocprofiler-compute/src/omniperf_analyze/configs/gfx90a/1100_compute-unit-compute-pipeline.yaml index 301217fde5..770087569a 100644 --- a/projects/rocprofiler-compute/src/omniperf_analyze/configs/gfx90a/1100_compute-unit-compute-pipeline.yaml +++ b/projects/rocprofiler-compute/src/omniperf_analyze/configs/gfx90a/1100_compute-unit-compute-pipeline.yaml @@ -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: \ No newline at end of file diff --git a/projects/rocprofiler-compute/src/omniperf_analyze/omniperf_analyze.py b/projects/rocprofiler-compute/src/omniperf_analyze/omniperf_analyze.py index 87fac064db..8d94b37d0b 100644 --- a/projects/rocprofiler-compute/src/omniperf_analyze/omniperf_analyze.py +++ b/projects/rocprofiler-compute/src/omniperf_analyze/omniperf_analyze.py @@ -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, diff --git a/projects/rocprofiler-compute/src/omniperf_analyze/utils/gui.py b/projects/rocprofiler-compute/src/omniperf_analyze/utils/gui.py index ca05bd3ea8..4128bf5ad2 100644 --- a/projects/rocprofiler-compute/src/omniperf_analyze/utils/gui.py +++ b/projects/rocprofiler-compute/src/omniperf_analyze/utils/gui.py @@ -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", )