From 53c69ce86df4ce01d5975dd393af9a0f890b4cce Mon Sep 17 00:00:00 2001 From: colramos-amd Date: Tue, 6 Feb 2024 16:02:00 -0600 Subject: [PATCH] Standardize syntax across all metric configs Signed-off-by: colramos-amd [ROCm/rocprofiler-compute commit: 4c9a638e2d8335c0c3c69920949afabb677d882c] --- .../gfx906/0200_system-speed-of-light.yaml | 4 +- .../gfx906/0300_mem_chart.yaml | 8 +- .../gfx906/0500_command-processor.yaml | 2 +- .../1000_compute-unit-instruction-mix.yaml | 6 - .../1100_compute-unit-compute-pipeline.yaml | 5 - .../analysis_configs/gfx906/1200_lds.yaml | 13 +- .../gfx906/1300_instruction-cache.yaml | 19 +- .../gfx906/1400_constant-cache.yaml | 18 +- .../gfx906/1600_L1_cache.yaml | 95 ++-- .../gfx906/1700_L2_cache.yaml | 66 ++- .../gfx908/0200_system-speed-of-light.yaml | 14 +- .../gfx908/0300_mem_chart.yaml | 4 +- .../gfx908/0500_command-processor.yaml | 2 +- .../1000_compute-unit-instruction-mix.yaml | 12 +- .../1100_compute-unit-compute-pipeline.yaml | 6 - .../analysis_configs/gfx908/1200_lds.yaml | 12 +- .../gfx908/1300_instruction-cache.yaml | 19 +- .../gfx908/1400_constant-cache.yaml | 14 +- .../gfx908/1600_L1_cache.yaml | 79 ++-- .../gfx908/1700_L2_cache.yaml | 78 ++-- .../gfx908/1800_L2_cache_per_channel.yaml | 12 +- .../gfx90a/0200_system-speed-of-light.yaml | 5 +- .../gfx90a/0300_mem_chart.yaml | 3 +- .../1000_compute-unit-instruction-mix.yaml | 6 - .../1100_compute-unit-compute-pipeline.yaml | 7 +- .../analysis_configs/gfx90a/1200_lds.yaml | 13 +- .../gfx90a/1300_instruction-cache.yaml | 17 +- .../gfx90a/1400_constant-cache.yaml | 14 +- .../gfx90a/1500_TA_and_TD.yaml | 2 +- .../gfx90a/1600_L1_cache.yaml | 79 ++-- .../gfx90a/1700_L2_cache.yaml | 64 ++- .../gfx90a/1800_L2_cache_per_channel.yaml | 12 +- .../gfx940/0200_system-speed-of-light.yaml | 139 +++--- .../gfx940/0500_command-processor.yaml | 117 ++--- .../gfx940/0600_shader-processor-input.yaml | 235 +++++----- .../gfx940/0700_wavefront-launch.yaml | 10 +- .../1000_compute-unit-instruction-mix.yaml | 123 ++++-- .../1100_compute-unit-compute-pipeline.yaml | 142 ++++-- .../analysis_configs/gfx940/1200_lds.yaml | 55 ++- .../gfx940/1300_instruction-cache.yaml | 54 ++- .../gfx940/1400_constant-cache.yaml | 45 +- .../gfx940/1500_TA_and_TD.yaml | 78 ++-- .../gfx940/1600_L1_cache.yaml | 178 +++----- .../gfx940/1700_L2_cache.yaml | 414 ++++++++++-------- .../gfx940/1800_L2_cache_per_channel.yaml | 14 +- .../gfx941/0200_system-speed-of-light.yaml | 139 +++--- .../gfx941/0500_command-processor.yaml | 117 ++--- .../gfx941/0600_shader-processor-input.yaml | 235 +++++----- .../gfx941/0700_wavefront-launch.yaml | 10 +- .../1000_compute-unit-instruction-mix.yaml | 123 ++++-- .../1100_compute-unit-compute-pipeline.yaml | 142 ++++-- .../analysis_configs/gfx941/1200_lds.yaml | 55 ++- .../gfx941/1300_instruction-cache.yaml | 54 ++- .../gfx941/1400_constant-cache.yaml | 45 +- .../gfx941/1500_TA_and_TD.yaml | 78 ++-- .../gfx941/1600_L1_cache.yaml | 178 +++----- .../gfx941/1700_L2_cache.yaml | 414 ++++++++++-------- .../gfx941/1800_L2_cache_per_channel.yaml | 14 +- .../gfx942/0200_system-speed-of-light.yaml | 139 +++--- .../gfx942/0500_command-processor.yaml | 117 ++--- .../gfx942/0600_shader-processor-input.yaml | 235 +++++----- .../gfx942/0700_wavefront-launch.yaml | 10 +- .../1000_compute-unit-instruction-mix.yaml | 123 ++++-- .../1100_compute-unit-compute-pipeline.yaml | 142 ++++-- .../analysis_configs/gfx942/1200_lds.yaml | 55 ++- .../gfx942/1300_instruction-cache.yaml | 54 ++- .../gfx942/1400_constant-cache.yaml | 45 +- .../gfx942/1500_TA_and_TD.yaml | 78 ++-- .../gfx942/1600_L1_cache.yaml | 178 +++----- .../gfx942/1700_L2_cache.yaml | 414 ++++++++++-------- .../gfx942/1800_L2_cache_per_channel.yaml | 14 +- 71 files changed, 2810 insertions(+), 2712 deletions(-) diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx906/0200_system-speed-of-light.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx906/0200_system-speed-of-light.yaml index 2b13ef9359..f069a0eb95 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx906/0200_system-speed-of-light.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx906/0200_system-speed-of-light.yaml @@ -164,10 +164,10 @@ Panel Config: + TCC_MISS_sum) != 0) else None)) tips: L2 Cache BW: - value: AVG(((TCC_REQ_sum * 64) / (EndNs - BeginNs))) + value: AVG(((TCC_REQ_sum * 64) / (End_Timestamp - Start_Timestamp))) unit: GB/s peak: ((($sclk / 1000) * 64) * TO_INT($L2Banks)) - pop: ((100 * AVG(((TCC_REQ_sum * 64) / (EndNs - BeginNs)))) + pop: ((100 * AVG(((TCC_REQ_sum * 64) / (End_Timestamp - Start_Timestamp)))) / ((($sclk / 1000) * 64) * TO_INT($L2Banks))) tips: L2-Fabric Read BW: diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx906/0300_mem_chart.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx906/0300_mem_chart.yaml index 47211fbcab..4294a2cc63 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx906/0300_mem_chart.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx906/0300_mem_chart.yaml @@ -78,19 +78,19 @@ Panel Config: tips: VGPR: #alias: vgpr_ - value: ROUND(AVG(vgpr), 0) + value: ROUND(AVG(Arch_VGPR), 0) tips: SGPR: #alias: sgpr_ - value: ROUND(AVG(sgpr), 0) + value: ROUND(AVG(SGPR), 0) tips: LDS Allocation: #alias: lds_alloc_ - value: ROUND(AVG(lds), 0) + value: ROUND(AVG(LDS_Per_Workgroup), 0) tips: Scratch Allocation: #alias: scratch_alloc_ - value: ROUND(AVG(scr), 0) + value: ROUND(AVG(Scratch_Per_Workitem), 0) tips: Wavefronts: #alias: wavefronts_ diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx906/0500_command-processor.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx906/0500_command-processor.yaml index edd42da6e3..b4a1f0b104 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx906/0500_command-processor.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx906/0500_command-processor.yaml @@ -67,7 +67,7 @@ Panel Config: - metric_table: id: 502 - title: Command Processor Compute + title: Packet Processor header: metric: Metric avg: Avg diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx906/1000_compute-unit-instruction-mix.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx906/1000_compute-unit-instruction-mix.yaml index 0092c202cc..77200de1b1 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx906/1000_compute-unit-instruction-mix.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx906/1000_compute-unit-instruction-mix.yaml @@ -18,9 +18,6 @@ Panel Config: max: Max unit: Unit tips: Tips - style: - type: simple_bar - label_txt: (# of instr + $normUnit) metric: VALU: avg: None # No HW module @@ -75,9 +72,6 @@ Panel Config: max: Max unit: Unit tips: Tips - style: - type: simple_bar - label_txt: (# of instr + $normUnit) metric: INT-32: avg: None # No HW module diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx906/1100_compute-unit-compute-pipeline.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx906/1100_compute-unit-compute-pipeline.yaml index 63019bfecf..030b12461b 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx906/1100_compute-unit-compute-pipeline.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx906/1100_compute-unit-compute-pipeline.yaml @@ -18,11 +18,6 @@ Panel Config: peak: Peak pop: Pct of Peak tips: Tips - style: - type: simple_bar - range_color: [1, 100] - label_txt: (%) - xrange: [0, 110] metric: VALU FLOPs: value: None # No perf counter diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx906/1200_lds.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx906/1200_lds.yaml index 9c9152ba53..acdde2bc20 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx906/1200_lds.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx906/1200_lds.yaml @@ -16,34 +16,27 @@ Panel Config: value: Value unit: Unit tips: Tips - style: - type: simple_bar - range_color: [1, 100] - label_txt: (%) - xrange: [0, 110] metric: Utilization: value: AVG(((100 * SQ_LDS_IDX_ACTIVE) / (GRBM_GUI_ACTIVE * $numCU))) unit: Pct of Peak tips: - unit: pct Access Rate: value: AVG(((200 * SQ_ACTIVE_INST_LDS) / (GRBM_GUI_ACTIVE * $numCU))) unit: Pct of Peak tips: - unit: pct Theoretical Bandwidth (% of Peak): value: AVG((((((SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT) * 4) * TO_INT($LDSBanks)) / (End_Timestamp - Start_Timestamp)) / (($sclk * $numCU) * 0.00128))) unit: Pct of Peak tips: - unit: pct Bank Conflict Rate: value: AVG((((SQ_LDS_BANK_CONFLICT * 3.125) / (SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT)) if ((SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT) != 0) else None)) unit: Pct of Peak - tips: - unit: pct + tips: + comparable: false # for now + cli_style: simple_bar - metric_table: id: 1202 diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx906/1300_instruction-cache.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx906/1300_instruction-cache.yaml index 5cfe101e71..b7cad3baa9 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx906/1300_instruction-cache.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx906/1300_instruction-cache.yaml @@ -16,11 +16,6 @@ Panel Config: value: Avg unit: Unit tips: Tips - style: - type: simple_bar - range_color: [1, 100] - label_txt: (%) - xrange: [0, 110] metric: Bandwidth: value: AVG(((SQC_ICACHE_REQ * 100000) / (($sclk * $numSQC) @@ -34,15 +29,17 @@ Panel Config: tips: L1I-L2 Bandwidth: value: AVG(((SQC_TC_INST_REQ * 100000) / (2 * ($sclk * $numSQC) - * (EndNs - BeginNs)))) + * (End_Timestamp - Start_Timestamp)))) unit: Pct of Peak tips: + comparable: false # for now + cli_style: simple_bar - metric_table: id: 1302 title: Instruction Cache Accesses header: - metric: L1I Metric + metric: Metric avg: Avg min: Min max: Max @@ -76,10 +73,10 @@ Panel Config: Cache Hit Rate: avg: AVG(((100 * SQC_ICACHE_HITS) / ((SQC_ICACHE_HITS + SQC_ICACHE_MISSES) + SQC_ICACHE_MISSES_DUPLICATE))) - min: MIN(((100 * SQC_ICACHE_HITS) / ((SQC_ICACHE_HITS + SQC_ICACHE_MISSES) + - SQC_ICACHE_MISSES_DUPLICATE))) - max: MAX(((100 * SQC_ICACHE_HITS) / ((SQC_ICACHE_HITS + SQC_ICACHE_MISSES) + - SQC_ICACHE_MISSES_DUPLICATE))) + min: MIN(((100 * SQC_ICACHE_HITS) / ((SQC_ICACHE_HITS + SQC_ICACHE_MISSES) + + SQC_ICACHE_MISSES_DUPLICATE))) + max: MAX(((100 * SQC_ICACHE_HITS) / ((SQC_ICACHE_HITS + SQC_ICACHE_MISSES) + + SQC_ICACHE_MISSES_DUPLICATE))) unit: pct tips: Instruction Fetch Latency: diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx906/1400_constant-cache.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx906/1400_constant-cache.yaml index f709ec2232..5e4f7d7877 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx906/1400_constant-cache.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx906/1400_constant-cache.yaml @@ -16,11 +16,6 @@ Panel Config: value: Avg unit: Unit tips: Tips - style: - type: simple_bar - range_color: [1, 100] - label_txt: (%) - xrange: [0, 110] metric: Bandwidth: value: AVG(((SQC_DCACHE_REQ * 100000) / (($sclk * $numSQC) @@ -28,16 +23,17 @@ Panel Config: unit: Pct of Peak tips: Cache Hit Rate: - value: - AVG((((SQC_DCACHE_HITS * 100) / (SQC_DCACHE_HITS + SQC_DCACHE_MISSES + SQC_DCACHE_MISSES_DUPLICATE)) + value: AVG((((SQC_DCACHE_HITS * 100) / (SQC_DCACHE_HITS + SQC_DCACHE_MISSES + SQC_DCACHE_MISSES_DUPLICATE)) if ((SQC_DCACHE_HITS + SQC_DCACHE_MISSES + SQC_DCACHE_MISSES_DUPLICATE) != 0) else None)) unit: Pct of Peak tips: sL1D-L2 BW: value: AVG(((SQC_TC_DATA_READ_REQ + SQC_TC_DATA_WRITE_REQ + SQC_TC_DATA_ATOMIC_REQ) * 100000) - / (2 * ($sclk * $numSQC) * (EndNs - BeginNs))) + / (2 * ($sclk * $numSQC) * (End_Timestamp - Start_Timestamp))) unit: Pct of Peak tips: + comparable: false # for now + cli_style: simple_bar - metric_table: id: 1402 @@ -74,7 +70,7 @@ Panel Config: max: MAX((SQC_DCACHE_MISSES_DUPLICATE / $denom)) unit: (Req + $normUnit) tips: - Cache Hit: + Cache Hit Rate: avg: AVG((((100 * SQC_DCACHE_HITS) / ((SQC_DCACHE_HITS + SQC_DCACHE_MISSES) + SQC_DCACHE_MISSES_DUPLICATE)) if (((SQC_DCACHE_HITS + SQC_DCACHE_MISSES) + SQC_DCACHE_MISSES_DUPLICATE) != 0) else None)) @@ -144,7 +140,7 @@ Panel Config: tips: Tips metric: sL1D-L2 BW: - mean: AVG(((((SQC_TC_DATA_READ_REQ + SQC_TC_DATA_WRITE_REQ + SQC_TC_DATA_ATOMIC_REQ) * 64)) / $denom)) + avg: AVG(((((SQC_TC_DATA_READ_REQ + SQC_TC_DATA_WRITE_REQ + SQC_TC_DATA_ATOMIC_REQ) * 64)) / $denom)) min: MIN(((((SQC_TC_DATA_READ_REQ + SQC_TC_DATA_WRITE_REQ + SQC_TC_DATA_ATOMIC_REQ) * 64)) / $denom)) max: MAX(((((SQC_TC_DATA_READ_REQ + SQC_TC_DATA_WRITE_REQ + SQC_TC_DATA_ATOMIC_REQ) * 64)) / $denom)) unit: (Bytes + $normUnit) @@ -167,7 +163,7 @@ Panel Config: max: MAX((SQC_TC_DATA_ATOMIC_REQ / $denom)) unit: (Req + $normUnit) tips: - Stall: + Stall Cycles: avg: AVG((SQC_TC_STALL / $denom)) min: MIN((SQC_TC_STALL / $denom)) max: MAX((SQC_TC_STALL / $denom)) diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx906/1600_L1_cache.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx906/1600_L1_cache.yaml index 842b967d0e..7e09b82e8a 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx906/1600_L1_cache.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx906/1600_L1_cache.yaml @@ -16,11 +16,6 @@ Panel Config: value: Avg unit: Unit tips: Tips - style: - type: simple_bar - range_color: [1, 100] - label_txt: (%) - xrange: [0, 110] metric: Hit rate: value: AVG(((100 - ((100 * (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) @@ -44,63 +39,43 @@ Panel Config: * 4)) if (TCP_TOTAL_ACCESSES_sum != 0) else None)) unit: Pct of Peak tips: + comparable: false # for now + cli_style: simple_bar - metric_table: id: 1602 - title: L1D Cache Stalls + title: L1D Cache Stalls (%) header: metric: Metric - avg: Avg - min: Min - max: Max - unit: Unit + expr: Expression tips: Tips metric: Stalled on L2 Data: - avg: AVG((((100 * TCP_PENDING_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum - != 0) else None)) - min: MIN((((100 * TCP_PENDING_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum - != 0) else None)) - max: MAX((((100 * TCP_PENDING_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum - != 0) else None)) - unit: pct - tips: + expr: + (((100 * TCP_PENDING_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum + != 0) else None) + tips: Stalled on L2 Req: - avg: AVG((((100 * TCP_TCR_TCP_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum - != 0) else None)) - min: MIN((((100 * TCP_TCR_TCP_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum - != 0) else None)) - max: MAX((((100 * TCP_TCR_TCP_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum - != 0) else None)) - unit: pct - tips: + expr: + (((100 * TCP_TCR_TCP_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum + != 0) else None) + tips: Tag RAM Stall (Read): - avg: AVG((((100 * TCP_READ_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) - if (TCP_GATE_EN1_sum != 0) else None)) - min: MIN((((100 * TCP_READ_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) - if (TCP_GATE_EN1_sum != 0) else None)) - max: MAX((((100 * TCP_READ_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) - if (TCP_GATE_EN1_sum != 0) else None)) - unit: pct - tips: + expr: + (((100 * TCP_READ_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) + if (TCP_GATE_EN1_sum != 0) else None) + tips: Tag RAM Stall (Write): - avg: AVG((((100 * TCP_WRITE_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) - if (TCP_GATE_EN1_sum != 0) else None)) - min: MIN((((100 * TCP_WRITE_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) - if (TCP_GATE_EN1_sum != 0) else None)) - max: MAX((((100 * TCP_WRITE_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) - if (TCP_GATE_EN1_sum != 0) else None)) - unit: pct - tips: + expr: + (((100 * TCP_WRITE_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) + if (TCP_GATE_EN1_sum != 0) else None) + tips: Tag RAM Stall (Atomic): - avg: AVG((((100 * TCP_ATOMIC_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) - if (TCP_GATE_EN1_sum != 0) else None)) - min: MIN((((100 * TCP_ATOMIC_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) - if (TCP_GATE_EN1_sum != 0) else None)) - max: MAX((((100 * TCP_ATOMIC_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) - if (TCP_GATE_EN1_sum != 0) else None)) - unit: pct - tips: + expr: + (((100 * TCP_ATOMIC_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) + if (TCP_GATE_EN1_sum != 0) else None) + tips: + cli_style: simple_box - metric_table: id: 1603 @@ -183,7 +158,7 @@ Panel Config: avg: AVG((TCP_TOTAL_WRITEBACK_INVALIDATES_sum / $denom)) min: MIN((TCP_TOTAL_WRITEBACK_INVALIDATES_sum / $denom)) max: MAX((TCP_TOTAL_WRITEBACK_INVALIDATES_sum / $denom)) - unit: ( + $normUnit) + unit: (Req + $normUnit) tips: L1-L2 BW: avg: AVG(((64 * (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + TCP_TCC_ATOMIC_WITH_RET_REQ_sum) @@ -258,8 +233,6 @@ Panel Config: max: Max unit: Unit tips: Tips - style: - type: simple_multi_bar metric: NC - Read: xfer: Read @@ -309,14 +282,6 @@ Panel Config: max: MAX((TCP_TCC_NC_WRITE_REQ_sum / $denom)) unit: (Req + $normUnit) tips: - CC - Write: - xfer: Write - coherency: CC - avg: AVG((TCP_TCC_CC_WRITE_REQ_sum / $denom)) - min: MIN((TCP_TCC_CC_WRITE_REQ_sum / $denom)) - max: MAX((TCP_TCC_CC_WRITE_REQ_sum / $denom)) - unit: (Req + $normUnit) - tips: UC - Write: xfer: Write coherency: UC @@ -324,6 +289,14 @@ Panel Config: min: MIN((TCP_TCC_UC_WRITE_REQ_sum / $denom)) max: MAX((TCP_TCC_UC_WRITE_REQ_sum / $denom)) unit: (Req + $normUnit) + tips: + CC - Write: + xfer: Write + coherency: CC + avg: AVG((TCP_TCC_CC_WRITE_REQ_sum / $denom)) + min: MIN((TCP_TCC_CC_WRITE_REQ_sum / $denom)) + max: MAX((TCP_TCC_CC_WRITE_REQ_sum / $denom)) + unit: (Req + $normUnit) tips: NC - Atomic: xfer: Atomic diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx906/1700_L2_cache.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx906/1700_L2_cache.yaml index 5f37ca77ca..ec55c36069 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx906/1700_L2_cache.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx906/1700_L2_cache.yaml @@ -16,15 +16,13 @@ Panel Config: value: Avg unit: Unit tips: Tips - style: - type: simple_bar metric: Utilization: value: AVG(((TCC_BUSY_sum * 100) / (TO_INT($L2Banks) * GRBM_GUI_ACTIVE))) unit: pct tips: Bandwidth: - value: ((100 * AVG(((TCC_REQ_sum * 64) / (EndNs - BeginNs)))) / ((($sclk / 1000) * 64) * TO_INT($L2Banks))) + value: ((100 * AVG(((TCC_REQ_sum * 64) / (End_Timestamp - Start_Timestamp)))) / ((($sclk / 1000) * 64) * TO_INT($L2Banks))) unit: pct tips: Hit Rate: @@ -142,27 +140,15 @@ Panel Config: unit: Cycles tips: Read Stall: - avg: AVG((((100 * ((TCC_EA_RDREQ_IO_CREDIT_STALL_sum + TCC_EA_RDREQ_GMI_CREDIT_STALL_sum) - + TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum)) / TCC_BUSY_sum) if (TCC_BUSY_sum != - 0) else None)) - min: MIN((((100 * ((TCC_EA_RDREQ_IO_CREDIT_STALL_sum + TCC_EA_RDREQ_GMI_CREDIT_STALL_sum) - + TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum)) / TCC_BUSY_sum) if (TCC_BUSY_sum != - 0) else None)) - max: MAX((((100 * ((TCC_EA_RDREQ_IO_CREDIT_STALL_sum + TCC_EA_RDREQ_GMI_CREDIT_STALL_sum) - + TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum)) / TCC_BUSY_sum) if (TCC_BUSY_sum != - 0) else None)) + avg: None # Missing perfmon + min: None # Missing perfmon + max: None # Missing perfmon unit: pct tips: Write Stall: - avg: AVG((((100 * ((TCC_EA_WRREQ_IO_CREDIT_STALL_sum + TCC_EA_WRREQ_GMI_CREDIT_STALL_sum) - + TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum)) / TCC_BUSY_sum) if (TCC_BUSY_sum != - 0) else None)) - min: MIN((((100 * ((TCC_EA_WRREQ_IO_CREDIT_STALL_sum + TCC_EA_WRREQ_GMI_CREDIT_STALL_sum) - + TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum)) / TCC_BUSY_sum) if (TCC_BUSY_sum != - 0) else None)) - max: MAX((((100 * ((TCC_EA_WRREQ_IO_CREDIT_STALL_sum + TCC_EA_WRREQ_GMI_CREDIT_STALL_sum) - + TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum)) / TCC_BUSY_sum) if (TCC_BUSY_sum != - 0) else None)) + avg: None # Missing perfmon + min: None # Missing perfmon + max: None # Missing perfmon unit: pct tips: @@ -258,7 +244,7 @@ Panel Config: max: MAX((TCC_ALL_TC_OP_WB_WRITEBACK_sum / $denom)) unit: (Cachelines + $normUnit) tips: - Evict (Normal): + Evict (Internal): avg: AVG((TCC_NORMAL_EVICT_sum / $denom)) min: MIN((TCC_NORMAL_EVICT_sum / $denom)) max: MAX((TCC_NORMAL_EVICT_sum / $denom)) @@ -313,49 +299,49 @@ Panel Config: Read - PCIe Stall: type: PCIe Stall transaction: Read - avg: AVG(((100 * (TCC_EA_RDREQ_IO_CREDIT_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) - min: MIN(((100 * (TCC_EA_RDREQ_IO_CREDIT_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) - max: MAX(((100 * (TCC_EA_RDREQ_IO_CREDIT_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) + avg: None # Missing perfmon + min: None # Missing perfmon + max: None # Missing perfmon unit: pct tips: Read - Infinity Fabric™ Stall: type: Infinity Fabric™ Stall transaction: Read - avg: AVG(((100 * (TCC_EA_RDREQ_GMI_CREDIT_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) - min: MIN(((100 * (TCC_EA_RDREQ_GMI_CREDIT_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) - max: MAX(((100 * (TCC_EA_RDREQ_GMI_CREDIT_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) + avg: None # Missing perfmon + min: None # Missing perfmon + max: None # Missing perfmon unit: pct tips: Read - HBM Stall: type: HBM Stall transaction: Read - avg: AVG(((100 * (TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) - min: MIN(((100 * (TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) - max: MAX(((100 * (TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) + avg: None # Missing perfmon + min: None # Missing perfmon + max: None # Missing perfmon unit: pct tips: Write - PCIe Stall: type: PCIe Stall transaction: Write - avg: AVG(((100 * (TCC_EA_WRREQ_IO_CREDIT_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) - min: MIN(((100 * (TCC_EA_WRREQ_IO_CREDIT_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) - max: MAX(((100 * (TCC_EA_WRREQ_IO_CREDIT_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) + avg: None # Missing perfmon + min: None # Missing perfmon + max: None # Missing perfmon unit: pct tips: Write - Infinity Fabric™ Stall: type: Infinity Fabric™ Stall transaction: Write - avg: AVG(((100 * (TCC_EA_WRREQ_GMI_CREDIT_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) - min: MIN(((100 * (TCC_EA_WRREQ_GMI_CREDIT_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) - max: MAX(((100 * (TCC_EA_WRREQ_GMI_CREDIT_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) + avg: None # Missing perfmon + min: None # Missing perfmon + max: None # Missing perfmon unit: pct tips: Write - HBM Stall: type: HBM Stall transaction: Write - avg: AVG(((100 * (TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) - min: MIN(((100 * (TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) - max: MAX(((100 * (TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) + avg: None # Missing perfmon + min: None # Missing perfmon + max: None # Missing perfmon unit: pct tips: Write - Credit Starvation: diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx908/0200_system-speed-of-light.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx908/0200_system-speed-of-light.yaml index 0d213c9fc3..19e7012fb9 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx908/0200_system-speed-of-light.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx908/0200_system-speed-of-light.yaml @@ -68,19 +68,19 @@ Panel Config: peak: $numCU pop: ((100 * $numActiveCUs) / $numCU) tips: - SALU Utililization: + SALU Utilization: value: AVG(((100 * SQ_ACTIVE_INST_SCA) / (GRBM_GUI_ACTIVE * $numCU))) unit: pct peak: 100 pop: AVG(((100 * SQ_ACTIVE_INST_SCA) / (GRBM_GUI_ACTIVE * $numCU))) tips: - VALU Utililization: + VALU Utilization: value: AVG(((100 * SQ_ACTIVE_INST_VALU) / (GRBM_GUI_ACTIVE * $numCU))) unit: pct peak: 100 pop: AVG(((100 * SQ_ACTIVE_INST_VALU) / (GRBM_GUI_ACTIVE * $numCU))) tips: - MFMA Utililization: + MFMA Utilization: value: None # No HW module unit: pct peak: 100 @@ -164,10 +164,10 @@ Panel Config: + TCC_MISS_sum) != 0) else None)) tips: L2 Cache BW: - value: AVG(((TCC_REQ_sum * 64) / (EndNs - BeginNs))) + value: AVG(((TCC_REQ_sum * 64) / (End_Timestamp - Start_Timestamp))) unit: GB/s peak: ((($sclk / 1000) * 64) * TO_INT($L2Banks)) - pop: ((100 * AVG(((TCC_REQ_sum * 64) / (EndNs - BeginNs)))) + pop: ((100 * AVG(((TCC_REQ_sum * 64) / (End_Timestamp - Start_Timestamp)))) / ((($sclk / 1000) * 64) * TO_INT($L2Banks))) tips: L2-Fabric Read BW: @@ -222,10 +222,10 @@ Panel Config: pop: AVG(((100 * SQC_ICACHE_HITS) / (SQC_ICACHE_HITS + SQC_ICACHE_MISSES))) tips: L1I BW: - value: AVG(((SQC_ICACHE_REQ / (EndNs - BeginNs)) * 64)) + value: AVG(((SQC_ICACHE_REQ / (End_Timestamp - Start_Timestamp)) * 64)) unit: GB/s peak: ((($sclk / 1000) * 64) * $numSQC) - pop: ((100 * AVG(((SQC_ICACHE_REQ / (EndNs - BeginNs)) * 64))) / ((($sclk + pop: ((100 * AVG(((SQC_ICACHE_REQ / (End_Timestamp - Start_Timestamp)) * 64))) / ((($sclk / 1000) * 64) * $numSQC)) tips: L1I Fetch Latency: diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx908/0300_mem_chart.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx908/0300_mem_chart.yaml index b3adfeeb84..4294a2cc63 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx908/0300_mem_chart.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx908/0300_mem_chart.yaml @@ -47,7 +47,7 @@ Panel Config: tips: MFMA: #alias: mfma_ - value: ROUND(AVG((SQ_INSTS_MFMA / $denom)), 0) + value: None # No perf counter tips: VMEM: #alias: vmem_ @@ -78,7 +78,7 @@ Panel Config: tips: VGPR: #alias: vgpr_ - value: ROUND(AVG(vgpr), 0) + value: ROUND(AVG(Arch_VGPR), 0) tips: SGPR: #alias: sgpr_ diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx908/0500_command-processor.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx908/0500_command-processor.yaml index edd42da6e3..b4a1f0b104 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx908/0500_command-processor.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx908/0500_command-processor.yaml @@ -67,7 +67,7 @@ Panel Config: - metric_table: id: 502 - title: Command Processor Compute + title: Packet Processor header: metric: Metric avg: Avg diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx908/1000_compute-unit-instruction-mix.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx908/1000_compute-unit-instruction-mix.yaml index 9aac87117d..3ad3ffa3e6 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx908/1000_compute-unit-instruction-mix.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx908/1000_compute-unit-instruction-mix.yaml @@ -18,14 +18,11 @@ Panel Config: max: Max unit: Unit tips: Tips - style: - type: simple_bar - label_txt: (# of instr + $normUnit) metric: VALU: - avg: AVG(((SQ_INSTS_VALU - SQ_INSTS_MFMA) / $denom)) - min: MIN(((SQ_INSTS_VALU - SQ_INSTS_MFMA) / $denom)) - max: MAX(((SQ_INSTS_VALU - SQ_INSTS_MFMA) / $denom)) + avg: None # No HW module + min: None # No HW module + max: None # No HW module unit: (instr + $normUnit) tips: VMEM: @@ -75,9 +72,6 @@ Panel Config: max: Max unit: Unit tips: Tips - style: - type: simple_bar - label_txt: (# of instr + $normUnit) metric: INT-32: avg: None # No perf counter diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx908/1100_compute-unit-compute-pipeline.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx908/1100_compute-unit-compute-pipeline.yaml index 8dfcef927b..55170218a1 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx908/1100_compute-unit-compute-pipeline.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx908/1100_compute-unit-compute-pipeline.yaml @@ -18,11 +18,6 @@ Panel Config: peak: Peak pop: Pct of Peak tips: Tips - style: - type: simple_bar - range_color: [1, 100] - label_txt: (%) - xrange: [0, 110] metric: VALU FLOPs: value: None # No perf counter @@ -168,7 +163,6 @@ Panel Config: tips: Tips metric: FLOPs (Total): - #FIXME: double check what is available on MI100!!! avg: None # No perf counter min: None # No perf counter max: None # No perf counter diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx908/1200_lds.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx908/1200_lds.yaml index 66bd078b28..5e0290407c 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx908/1200_lds.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx908/1200_lds.yaml @@ -13,14 +13,9 @@ Panel Config: title: Speed-of-Light header: metric: Metric - value: Value + value: Avg unit: Unit tips: Tips - style: - type: simple_bar - range_color: [1, 100] - label_txt: (%) - xrange: [0, 110] metric: Utilization: value: AVG(((100 * SQ_LDS_IDX_ACTIVE) / (GRBM_GUI_ACTIVE * $numCU))) @@ -35,13 +30,14 @@ Panel Config: value: AVG((((((SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT) * 4) * TO_INT($LDSBanks)) / (End_Timestamp - Start_Timestamp)) / (($sclk * $numCU) * 0.00128))) unit: Pct of Peak - tips: - unit: pct + tips: Bank Conflict Rate: value: AVG((((SQ_LDS_BANK_CONFLICT * 3.125) / (SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT)) if ((SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT) != 0) else None)) unit: Pct of Peak tips: + comparable: false # for now + cli_style: simple_bar - metric_table: id: 1202 diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx908/1300_instruction-cache.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx908/1300_instruction-cache.yaml index 5cfe101e71..b7cad3baa9 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx908/1300_instruction-cache.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx908/1300_instruction-cache.yaml @@ -16,11 +16,6 @@ Panel Config: value: Avg unit: Unit tips: Tips - style: - type: simple_bar - range_color: [1, 100] - label_txt: (%) - xrange: [0, 110] metric: Bandwidth: value: AVG(((SQC_ICACHE_REQ * 100000) / (($sclk * $numSQC) @@ -34,15 +29,17 @@ Panel Config: tips: L1I-L2 Bandwidth: value: AVG(((SQC_TC_INST_REQ * 100000) / (2 * ($sclk * $numSQC) - * (EndNs - BeginNs)))) + * (End_Timestamp - Start_Timestamp)))) unit: Pct of Peak tips: + comparable: false # for now + cli_style: simple_bar - metric_table: id: 1302 title: Instruction Cache Accesses header: - metric: L1I Metric + metric: Metric avg: Avg min: Min max: Max @@ -76,10 +73,10 @@ Panel Config: Cache Hit Rate: avg: AVG(((100 * SQC_ICACHE_HITS) / ((SQC_ICACHE_HITS + SQC_ICACHE_MISSES) + SQC_ICACHE_MISSES_DUPLICATE))) - min: MIN(((100 * SQC_ICACHE_HITS) / ((SQC_ICACHE_HITS + SQC_ICACHE_MISSES) + - SQC_ICACHE_MISSES_DUPLICATE))) - max: MAX(((100 * SQC_ICACHE_HITS) / ((SQC_ICACHE_HITS + SQC_ICACHE_MISSES) + - SQC_ICACHE_MISSES_DUPLICATE))) + min: MIN(((100 * SQC_ICACHE_HITS) / ((SQC_ICACHE_HITS + SQC_ICACHE_MISSES) + + SQC_ICACHE_MISSES_DUPLICATE))) + max: MAX(((100 * SQC_ICACHE_HITS) / ((SQC_ICACHE_HITS + SQC_ICACHE_MISSES) + + SQC_ICACHE_MISSES_DUPLICATE))) unit: pct tips: Instruction Fetch Latency: diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx908/1400_constant-cache.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx908/1400_constant-cache.yaml index 34f319ad2f..5e4f7d7877 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx908/1400_constant-cache.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx908/1400_constant-cache.yaml @@ -16,11 +16,6 @@ Panel Config: value: Avg unit: Unit tips: Tips - style: - type: simple_bar - range_color: [1, 100] - label_txt: (%) - xrange: [0, 110] metric: Bandwidth: value: AVG(((SQC_DCACHE_REQ * 100000) / (($sclk * $numSQC) @@ -28,16 +23,17 @@ Panel Config: unit: Pct of Peak tips: Cache Hit Rate: - value: - AVG((((SQC_DCACHE_HITS * 100) / (SQC_DCACHE_HITS + SQC_DCACHE_MISSES + SQC_DCACHE_MISSES_DUPLICATE)) + value: AVG((((SQC_DCACHE_HITS * 100) / (SQC_DCACHE_HITS + SQC_DCACHE_MISSES + SQC_DCACHE_MISSES_DUPLICATE)) if ((SQC_DCACHE_HITS + SQC_DCACHE_MISSES + SQC_DCACHE_MISSES_DUPLICATE) != 0) else None)) unit: Pct of Peak tips: sL1D-L2 BW: value: AVG(((SQC_TC_DATA_READ_REQ + SQC_TC_DATA_WRITE_REQ + SQC_TC_DATA_ATOMIC_REQ) * 100000) - / (2 * ($sclk * $numSQC) * (EndNs - BeginNs))) + / (2 * ($sclk * $numSQC) * (End_Timestamp - Start_Timestamp))) unit: Pct of Peak tips: + comparable: false # for now + cli_style: simple_bar - metric_table: id: 1402 @@ -144,7 +140,7 @@ Panel Config: tips: Tips metric: sL1D-L2 BW: - mean: AVG(((((SQC_TC_DATA_READ_REQ + SQC_TC_DATA_WRITE_REQ + SQC_TC_DATA_ATOMIC_REQ) * 64)) / $denom)) + avg: AVG(((((SQC_TC_DATA_READ_REQ + SQC_TC_DATA_WRITE_REQ + SQC_TC_DATA_ATOMIC_REQ) * 64)) / $denom)) min: MIN(((((SQC_TC_DATA_READ_REQ + SQC_TC_DATA_WRITE_REQ + SQC_TC_DATA_ATOMIC_REQ) * 64)) / $denom)) max: MAX(((((SQC_TC_DATA_READ_REQ + SQC_TC_DATA_WRITE_REQ + SQC_TC_DATA_ATOMIC_REQ) * 64)) / $denom)) unit: (Bytes + $normUnit) diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx908/1600_L1_cache.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx908/1600_L1_cache.yaml index 096fcb9b3c..878e388039 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx908/1600_L1_cache.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx908/1600_L1_cache.yaml @@ -16,11 +16,6 @@ Panel Config: value: Avg unit: Unit tips: Tips - style: - type: simple_bar - range_color: [1, 100] - label_txt: (%) - xrange: [0, 110] metric: Hit rate: value: AVG(((100 - ((100 * (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) @@ -44,63 +39,43 @@ Panel Config: * 4)) if (TCP_TOTAL_ACCESSES_sum != 0) else None)) unit: Pct of Peak tips: + comparable: false # for now + cli_style: simple_bar - metric_table: id: 1602 - title: L1D Cache Stalls + title: L1D Cache Stalls (%) header: metric: Metric - avg: Avg - min: Min - max: Max - unit: Unit + expr: Expression tips: Tips metric: Stalled on L2 Data: - avg: AVG((((100 * TCP_PENDING_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum - != 0) else None)) - min: MIN((((100 * TCP_PENDING_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum - != 0) else None)) - max: MAX((((100 * TCP_PENDING_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum - != 0) else None)) - unit: pct - tips: + expr: + (((100 * TCP_PENDING_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum + != 0) else None) + tips: Stalled on L2 Req: - avg: AVG((((100 * TCP_TCR_TCP_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum - != 0) else None)) - min: MIN((((100 * TCP_TCR_TCP_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum - != 0) else None)) - max: MAX((((100 * TCP_TCR_TCP_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum - != 0) else None)) - unit: pct - tips: + expr: + (((100 * TCP_TCR_TCP_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum + != 0) else None) + tips: Tag RAM Stall (Read): - avg: AVG((((100 * TCP_READ_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) - if (TCP_GATE_EN1_sum != 0) else None)) - min: MIN((((100 * TCP_READ_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) - if (TCP_GATE_EN1_sum != 0) else None)) - max: MAX((((100 * TCP_READ_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) - if (TCP_GATE_EN1_sum != 0) else None)) - unit: pct - tips: + expr: + (((100 * TCP_READ_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) + if (TCP_GATE_EN1_sum != 0) else None) + tips: Tag RAM Stall (Write): - avg: AVG((((100 * TCP_WRITE_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) - if (TCP_GATE_EN1_sum != 0) else None)) - min: MIN((((100 * TCP_WRITE_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) - if (TCP_GATE_EN1_sum != 0) else None)) - max: MAX((((100 * TCP_WRITE_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) - if (TCP_GATE_EN1_sum != 0) else None)) - unit: pct - tips: + expr: + (((100 * TCP_WRITE_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) + if (TCP_GATE_EN1_sum != 0) else None) + tips: Tag RAM Stall (Atomic): - avg: AVG((((100 * TCP_ATOMIC_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) - if (TCP_GATE_EN1_sum != 0) else None)) - min: MIN((((100 * TCP_ATOMIC_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) - if (TCP_GATE_EN1_sum != 0) else None)) - max: MAX((((100 * TCP_ATOMIC_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) - if (TCP_GATE_EN1_sum != 0) else None)) - unit: pct - tips: + expr: + (((100 * TCP_ATOMIC_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) + if (TCP_GATE_EN1_sum != 0) else None) + tips: + cli_style: simple_box - metric_table: id: 1603 @@ -183,7 +158,7 @@ Panel Config: avg: AVG((TCP_TOTAL_WRITEBACK_INVALIDATES_sum / $denom)) min: MIN((TCP_TOTAL_WRITEBACK_INVALIDATES_sum / $denom)) max: MAX((TCP_TOTAL_WRITEBACK_INVALIDATES_sum / $denom)) - unit: ( + $normUnit) + unit: (Req + $normUnit) tips: L1-L2 BW: avg: AVG(((64 * (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + TCP_TCC_ATOMIC_WITH_RET_REQ_sum) @@ -258,8 +233,6 @@ Panel Config: max: Max unit: Unit tips: Tips - style: - type: simple_multi_bar metric: NC - Read: xfer: Read diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx908/1700_L2_cache.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx908/1700_L2_cache.yaml index 2037ce0827..f5181b82d8 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx908/1700_L2_cache.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx908/1700_L2_cache.yaml @@ -16,15 +16,13 @@ Panel Config: value: Avg unit: Unit tips: Tips - style: - type: simple_bar metric: Utilization: value: AVG(((TCC_BUSY_sum * 100) / (TO_INT($L2Banks) * GRBM_GUI_ACTIVE))) unit: pct tips: Bandwidth: - value: ((100 * AVG(((TCC_REQ_sum * 64) / (EndNs - BeginNs)))) / ((($sclk / 1000) * 64) * TO_INT($L2Banks))) + value: ((100 * AVG(((TCC_REQ_sum * 64) / (End_Timestamp - Start_Timestamp)))) / ((($sclk / 1000) * 64) * TO_INT($L2Banks))) unit: pct tips: Hit Rate: @@ -142,27 +140,15 @@ Panel Config: unit: Cycles tips: Read Stall: - avg: AVG((((100 * ((TCC_EA_RDREQ_IO_CREDIT_STALL_sum + TCC_EA_RDREQ_GMI_CREDIT_STALL_sum) - + TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum)) / TCC_BUSY_sum) if (TCC_BUSY_sum != - 0) else None)) - min: MIN((((100 * ((TCC_EA_RDREQ_IO_CREDIT_STALL_sum + TCC_EA_RDREQ_GMI_CREDIT_STALL_sum) - + TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum)) / TCC_BUSY_sum) if (TCC_BUSY_sum != - 0) else None)) - max: MAX((((100 * ((TCC_EA_RDREQ_IO_CREDIT_STALL_sum + TCC_EA_RDREQ_GMI_CREDIT_STALL_sum) - + TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum)) / TCC_BUSY_sum) if (TCC_BUSY_sum != - 0) else None)) + avg: None # Missing perfmon + min: None # Missing perfmon + max: None # Missing perfmon unit: pct tips: Write Stall: - avg: AVG((((100 * ((TCC_EA_WRREQ_IO_CREDIT_STALL_sum + TCC_EA_WRREQ_GMI_CREDIT_STALL_sum) - + TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum)) / TCC_BUSY_sum) if (TCC_BUSY_sum != - 0) else None)) - min: MIN((((100 * ((TCC_EA_WRREQ_IO_CREDIT_STALL_sum + TCC_EA_WRREQ_GMI_CREDIT_STALL_sum) - + TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum)) / TCC_BUSY_sum) if (TCC_BUSY_sum != - 0) else None)) - max: MAX((((100 * ((TCC_EA_WRREQ_IO_CREDIT_STALL_sum + TCC_EA_WRREQ_GMI_CREDIT_STALL_sum) - + TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum)) / TCC_BUSY_sum) if (TCC_BUSY_sum != - 0) else None)) + avg: None # Missing perfmon + min: None # Missing perfmon + max: None # Missing perfmon unit: pct tips: @@ -207,18 +193,18 @@ Panel Config: max: MAX((TCC_ATOMIC_sum / $denom)) unit: (Req + $normUnit) tips: - Probe Req: - avg: AVG((TCC_PROBE_sum / $denom)) - min: MIN((TCC_PROBE_sum / $denom)) - max: MAX((TCC_PROBE_sum / $denom)) - unit: (Req + $normUnit) - tips: Streaming Req: avg: AVG((TCC_STREAMING_REQ_sum / $denom)) min: MIN((TCC_STREAMING_REQ_sum / $denom)) max: MAX((TCC_STREAMING_REQ_sum / $denom)) unit: (Req + $normUnit) tips: + Probe Req: + avg: AVG((TCC_PROBE_sum / $denom)) + min: MIN((TCC_PROBE_sum / $denom)) + max: MAX((TCC_PROBE_sum / $denom)) + unit: (Req + $normUnit) + tips: Cache Hit: avg: AVG((((100 * TCC_HIT_sum) / (TCC_HIT_sum + TCC_MISS_sum)) if ((TCC_HIT_sum + TCC_MISS_sum) != 0) else None)) @@ -258,7 +244,7 @@ Panel Config: max: MAX((TCC_ALL_TC_OP_WB_WRITEBACK_sum / $denom)) unit: (Cachelines + $normUnit) tips: - Evict (Normal): + Evict (Internal): avg: AVG((TCC_NORMAL_EVICT_sum / $denom)) min: MIN((TCC_NORMAL_EVICT_sum / $denom)) max: MAX((TCC_NORMAL_EVICT_sum / $denom)) @@ -313,49 +299,49 @@ Panel Config: Read - PCIe Stall: type: PCIe Stall transaction: Read - avg: AVG(((100 * (TCC_EA_RDREQ_IO_CREDIT_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) - min: MIN(((100 * (TCC_EA_RDREQ_IO_CREDIT_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) - max: MAX(((100 * (TCC_EA_RDREQ_IO_CREDIT_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) + avg: None # Missing perfmon + min: None # Missing perfmon + max: None # Missing perfmon unit: pct tips: Read - Infinity Fabric™ Stall: type: Infinity Fabric™ Stall transaction: Read - avg: AVG(((100 * (TCC_EA_RDREQ_GMI_CREDIT_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) - min: MIN(((100 * (TCC_EA_RDREQ_GMI_CREDIT_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) - max: MAX(((100 * (TCC_EA_RDREQ_GMI_CREDIT_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) + avg: None # Missing perfmon + min: None # Missing perfmon + max: None # Missing perfmon unit: pct tips: Read - HBM Stall: type: HBM Stall transaction: Read - avg: AVG(((100 * (TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) - min: MIN(((100 * (TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) - max: MAX(((100 * (TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) + avg: None # Missing perfmon + min: None # Missing perfmon + max: None # Missing perfmon unit: pct tips: Write - PCIe Stall: type: PCIe Stall transaction: Write - avg: AVG(((100 * (TCC_EA_WRREQ_IO_CREDIT_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) - min: MIN(((100 * (TCC_EA_WRREQ_IO_CREDIT_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) - max: MAX(((100 * (TCC_EA_WRREQ_IO_CREDIT_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) + avg: None # Missing perfmon + min: None # Missing perfmon + max: None # Missing perfmon unit: pct tips: Write - Infinity Fabric™ Stall: type: Infinity Fabric™ Stall transaction: Write - avg: AVG(((100 * (TCC_EA_WRREQ_GMI_CREDIT_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) - min: MIN(((100 * (TCC_EA_WRREQ_GMI_CREDIT_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) - max: MAX(((100 * (TCC_EA_WRREQ_GMI_CREDIT_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) + avg: None # Missing perfmon + min: None # Missing perfmon + max: None # Missing perfmon unit: pct tips: Write - HBM Stall: type: HBM Stall transaction: Write - avg: AVG(((100 * (TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) - min: MIN(((100 * (TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) - max: MAX(((100 * (TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) + avg: None # Missing perfmon + min: None # Missing perfmon + max: None # Missing perfmon unit: pct tips: Write - Credit Starvation: diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx908/1800_L2_cache_per_channel.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx908/1800_L2_cache_per_channel.yaml index ae982b365a..99439a2dd0 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx908/1800_L2_cache_per_channel.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx908/1800_L2_cache_per_channel.yaml @@ -308,9 +308,9 @@ Panel Config: ea read stall - hbm: L2 - Fabric Read Stall (HBM) metric: "::_1": - ea read stall - pcie: AVG((TO_INT(TCC_EA_RDREQ_IO_CREDIT_STALL[::_1]) / $denom)) - ea read stall - if: AVG((TO_INT(TCC_EA_RDREQ_GMI_CREDIT_STALL[::_1]) / $denom)) - ea read stall - hbm: AVG((TO_INT(TCC_EA_RDREQ_DRAM_CREDIT_STALL[::_1]) / $denom)) + ea read stall - pcie: None # Missing perfmon + ea read stall - if: None # Missing perfmon + ea read stall - hbm: None # Missing perfmon placeholder_range: "::_1": 32 cli_style: simple_multiple_bar @@ -326,9 +326,9 @@ Panel Config: ea write stall - starve: L2 - Fabric Write Starve metric: "::_1": - ea write stall - pcie: AVG((TO_INT(TCC_EA_WRREQ_IO_CREDIT_STALL[::_1]) / $denom)) - ea write stall - if: AVG((TO_INT(TCC_EA_WRREQ_GMI_CREDIT_STALL[::_1]) / $denom)) - ea write stall - hbm: AVG((TO_INT(TCC_EA_WRREQ_DRAM_CREDIT_STALL[::_1]) / $denom)) + ea write stall - pcie: None # Missing perfmon + ea write stall - if: None # Missing perfmon + ea write stall - hbm: None # Missing perfmon ea write stall - starve: AVG((TO_INT(TCC_TOO_MANY_EA_WRREQS_STALL[::_1]) / $denom)) placeholder_range: "::_1": 32 diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx90a/0200_system-speed-of-light.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx90a/0200_system-speed-of-light.yaml index 5554a5e56c..4a0a96492f 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx90a/0200_system-speed-of-light.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx90a/0200_system-speed-of-light.yaml @@ -114,7 +114,6 @@ Panel Config: unit: pct peak: 100 pop: AVG((((100 * SQ_ACTIVE_INST_MISC) / GRBM_GUI_ACTIVE) / $numCU)) - unit: pct tips: VALU Active Threads: value: AVG(((SQ_THREAD_CYCLES_VALU / SQ_ACTIVE_INST_VALU) if (SQ_ACTIVE_INST_VALU @@ -182,10 +181,10 @@ Panel Config: + TCC_MISS_sum) != 0) else None)) tips: L2 Cache BW: - value: AVG(((TCC_REQ_sum * 128) / (EndNs - BeginNs))) + value: AVG(((TCC_REQ_sum * 128) / (End_Timestamp - Start_Timestamp))) unit: GB/s peak: ((($sclk / 1000) * 128) * TO_INT($L2Banks)) - pop: ((100 * AVG(((TCC_REQ_sum * 128) / (EndNs - BeginNs)))) + pop: ((100 * AVG(((TCC_REQ_sum * 128) / (End_Timestamp - Start_Timestamp)))) / ((($sclk / 1000) * 128) * TO_INT($L2Banks))) tips: L2-Fabric Read BW: diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx90a/0300_mem_chart.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx90a/0300_mem_chart.yaml index b3adfeeb84..25ecf40620 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx90a/0300_mem_chart.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx90a/0300_mem_chart.yaml @@ -78,8 +78,9 @@ Panel Config: tips: VGPR: #alias: vgpr_ - value: ROUND(AVG(vgpr), 0) + value: ROUND(AVG(Arch_VGPR), 0) tips: + # Todo: add AGPRs SGPR: #alias: sgpr_ value: ROUND(AVG(SGPR), 0) diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx90a/1000_compute-unit-instruction-mix.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx90a/1000_compute-unit-instruction-mix.yaml index f7867b6ea2..436a220b98 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx90a/1000_compute-unit-instruction-mix.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx90a/1000_compute-unit-instruction-mix.yaml @@ -18,9 +18,6 @@ Panel Config: max: Max unit: Unit tips: Tips - style: - type: simple_bar - label_txt: (# of instr + $normUnit) metric: VALU: avg: AVG(((SQ_INSTS_VALU - SQ_INSTS_MFMA) / $denom)) @@ -75,9 +72,6 @@ Panel Config: max: Max unit: Unit tips: Tips - style: - type: simple_bar - label_txt: (# of instr + $normUnit) metric: INT32: avg: AVG((SQ_INSTS_VALU_INT32 / $denom)) diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx90a/1100_compute-unit-compute-pipeline.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx90a/1100_compute-unit-compute-pipeline.yaml index 100fc5051f..53d49b2059 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx90a/1100_compute-unit-compute-pipeline.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx90a/1100_compute-unit-compute-pipeline.yaml @@ -18,18 +18,13 @@ Panel Config: peak: Peak pop: Pct of Peak tips: Tips - style: - type: simple_bar - range_color: [1, 100] - label_txt: (%) - xrange: [0, 110] metric: VALU FLOPs: value: 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))) + / (End_Timestamp - Start_Timestamp))) unit: GFLOP peak: (((($sclk * $numCU) * 64) * 2) / 1000) pop: ((100 * AVG(((((64 * (((SQ_INSTS_VALU_ADD_F16 + SQ_INSTS_VALU_MUL_F16) diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx90a/1200_lds.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx90a/1200_lds.yaml index 655c6eb480..452949d08f 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx90a/1200_lds.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx90a/1200_lds.yaml @@ -16,34 +16,27 @@ Panel Config: value: Avg unit: Unit tips: Tips - style: - type: simple_bar - range_color: [1, 100] - label_txt: (%) - xrange: [0, 110] metric: Utilization: value: AVG(((100 * SQ_LDS_IDX_ACTIVE) / (GRBM_GUI_ACTIVE * $numCU))) unit: Pct of Peak tips: - unit: pct Access Rate: value: AVG(((200 * SQ_ACTIVE_INST_LDS) / (GRBM_GUI_ACTIVE * $numCU))) unit: Pct of Peak tips: - unit: pct - Theoretical Bandwidth (% of Peak): + Theoretical Bandwidth: value: AVG((((((SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT) * 4) * TO_INT($LDSBanks)) / (End_Timestamp - Start_Timestamp)) / (($sclk * $numCU) * 0.00128))) unit: Pct of Peak tips: - unit: pct Bank Conflict Rate: value: AVG((((SQ_LDS_BANK_CONFLICT * 3.125) / (SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT)) if ((SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT) != 0) else None)) unit: Pct of Peak tips: - unit: pct + comparable: false # for now + cli_style: simple_bar - metric_table: id: 1202 diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx90a/1300_instruction-cache.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx90a/1300_instruction-cache.yaml index 76532c7d10..b7cad3baa9 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx90a/1300_instruction-cache.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx90a/1300_instruction-cache.yaml @@ -16,11 +16,6 @@ Panel Config: value: Avg unit: Unit tips: Tips - style: - type: simple_bar - range_color: [1, 100] - label_txt: (%) - xrange: [0, 110] metric: Bandwidth: value: AVG(((SQC_ICACHE_REQ * 100000) / (($sclk * $numSQC) @@ -34,9 +29,11 @@ Panel Config: tips: L1I-L2 Bandwidth: value: AVG(((SQC_TC_INST_REQ * 100000) / (2 * ($sclk * $numSQC) - * (EndNs - BeginNs)))) + * (End_Timestamp - Start_Timestamp)))) unit: Pct of Peak tips: + comparable: false # for now + cli_style: simple_bar - metric_table: id: 1302 @@ -76,10 +73,10 @@ Panel Config: Cache Hit Rate: avg: AVG(((100 * SQC_ICACHE_HITS) / ((SQC_ICACHE_HITS + SQC_ICACHE_MISSES) + SQC_ICACHE_MISSES_DUPLICATE))) - min: MIN(((100 * SQC_ICACHE_HITS) / ((SQC_ICACHE_HITS + SQC_ICACHE_MISSES) + - SQC_ICACHE_MISSES_DUPLICATE))) - max: MAX(((100 * SQC_ICACHE_HITS) / ((SQC_ICACHE_HITS + SQC_ICACHE_MISSES) + - SQC_ICACHE_MISSES_DUPLICATE))) + min: MIN(((100 * SQC_ICACHE_HITS) / ((SQC_ICACHE_HITS + SQC_ICACHE_MISSES) + + SQC_ICACHE_MISSES_DUPLICATE))) + max: MAX(((100 * SQC_ICACHE_HITS) / ((SQC_ICACHE_HITS + SQC_ICACHE_MISSES) + + SQC_ICACHE_MISSES_DUPLICATE))) unit: pct tips: Instruction Fetch Latency: diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx90a/1400_constant-cache.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx90a/1400_constant-cache.yaml index 34f319ad2f..5e4f7d7877 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx90a/1400_constant-cache.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx90a/1400_constant-cache.yaml @@ -16,11 +16,6 @@ Panel Config: value: Avg unit: Unit tips: Tips - style: - type: simple_bar - range_color: [1, 100] - label_txt: (%) - xrange: [0, 110] metric: Bandwidth: value: AVG(((SQC_DCACHE_REQ * 100000) / (($sclk * $numSQC) @@ -28,16 +23,17 @@ Panel Config: unit: Pct of Peak tips: Cache Hit Rate: - value: - AVG((((SQC_DCACHE_HITS * 100) / (SQC_DCACHE_HITS + SQC_DCACHE_MISSES + SQC_DCACHE_MISSES_DUPLICATE)) + value: AVG((((SQC_DCACHE_HITS * 100) / (SQC_DCACHE_HITS + SQC_DCACHE_MISSES + SQC_DCACHE_MISSES_DUPLICATE)) if ((SQC_DCACHE_HITS + SQC_DCACHE_MISSES + SQC_DCACHE_MISSES_DUPLICATE) != 0) else None)) unit: Pct of Peak tips: sL1D-L2 BW: value: AVG(((SQC_TC_DATA_READ_REQ + SQC_TC_DATA_WRITE_REQ + SQC_TC_DATA_ATOMIC_REQ) * 100000) - / (2 * ($sclk * $numSQC) * (EndNs - BeginNs))) + / (2 * ($sclk * $numSQC) * (End_Timestamp - Start_Timestamp))) unit: Pct of Peak tips: + comparable: false # for now + cli_style: simple_bar - metric_table: id: 1402 @@ -144,7 +140,7 @@ Panel Config: tips: Tips metric: sL1D-L2 BW: - mean: AVG(((((SQC_TC_DATA_READ_REQ + SQC_TC_DATA_WRITE_REQ + SQC_TC_DATA_ATOMIC_REQ) * 64)) / $denom)) + avg: AVG(((((SQC_TC_DATA_READ_REQ + SQC_TC_DATA_WRITE_REQ + SQC_TC_DATA_ATOMIC_REQ) * 64)) / $denom)) min: MIN(((((SQC_TC_DATA_READ_REQ + SQC_TC_DATA_WRITE_REQ + SQC_TC_DATA_ATOMIC_REQ) * 64)) / $denom)) max: MAX(((((SQC_TC_DATA_READ_REQ + SQC_TC_DATA_WRITE_REQ + SQC_TC_DATA_ATOMIC_REQ) * 64)) / $denom)) unit: (Bytes + $normUnit) diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx90a/1500_TA_and_TD.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx90a/1500_TA_and_TD.yaml index 5f7d73df82..a0331242f3 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx90a/1500_TA_and_TD.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx90a/1500_TA_and_TD.yaml @@ -118,7 +118,7 @@ Panel Config: - metric_table: id: 1502 - title: TD + title: Data-Return Path header: metric: Metric avg: Avg diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx90a/1600_L1_cache.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx90a/1600_L1_cache.yaml index c0733e193c..bbf3166f31 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx90a/1600_L1_cache.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx90a/1600_L1_cache.yaml @@ -16,11 +16,6 @@ Panel Config: value: Avg unit: Unit tips: Tips - style: - type: simple_bar - range_color: [1, 100] - label_txt: (%) - xrange: [0, 110] metric: Hit rate: value: AVG(((100 - ((100 * (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) @@ -43,64 +38,44 @@ Panel Config: value: AVG(((((TA_TOTAL_WAVEFRONTS_sum * 64) * 100) / (TCP_TOTAL_ACCESSES_sum * 4)) if (TCP_TOTAL_ACCESSES_sum != 0) else None)) unit: Pct of Peak - tips: + tips: + comparable: false # for now + cli_style: simple_bar - metric_table: id: 1602 - title: L1D Cache Stalls + title: L1D Cache Stalls (%) header: metric: Metric - avg: Avg - min: Min - max: Max - unit: unit + expr: Expression tips: Tips metric: Stalled on L2 Data: - avg: AVG((((100 * TCP_PENDING_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum - != 0) else None)) - min: MIN((((100 * TCP_PENDING_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum - != 0) else None)) - max: MAX((((100 * TCP_PENDING_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum - != 0) else None)) - unit: pct - tips: + expr: + (((100 * TCP_PENDING_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum + != 0) else None) + tips: Stalled on L2 Req: - avg: AVG((((100 * TCP_TCR_TCP_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum - != 0) else None)) - min: MIN((((100 * TCP_TCR_TCP_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum - != 0) else None)) - max: MAX((((100 * TCP_TCR_TCP_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum - != 0) else None)) - unit: pct - tips: + expr: + (((100 * TCP_TCR_TCP_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum + != 0) else None) + tips: Tag RAM Stall (Read): - avg: AVG((((100 * TCP_READ_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) - if (TCP_GATE_EN1_sum != 0) else None)) - min: MIN((((100 * TCP_READ_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) - if (TCP_GATE_EN1_sum != 0) else None)) - max: MAX((((100 * TCP_READ_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) - if (TCP_GATE_EN1_sum != 0) else None)) - unit: pct - tips: + expr: + (((100 * TCP_READ_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) + if (TCP_GATE_EN1_sum != 0) else None) + tips: Tag RAM Stall (Write): - avg: AVG((((100 * TCP_WRITE_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) - if (TCP_GATE_EN1_sum != 0) else None)) - min: MIN((((100 * TCP_WRITE_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) - if (TCP_GATE_EN1_sum != 0) else None)) - max: MAX((((100 * TCP_WRITE_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) - if (TCP_GATE_EN1_sum != 0) else None)) - unit: pct - tips: + expr: + (((100 * TCP_WRITE_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) + if (TCP_GATE_EN1_sum != 0) else None) + tips: Tag RAM Stall (Atomic): - avg: AVG((((100 * TCP_ATOMIC_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) - if (TCP_GATE_EN1_sum != 0) else None)) - min: MIN((((100 * TCP_ATOMIC_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) - if (TCP_GATE_EN1_sum != 0) else None)) - max: MAX((((100 * TCP_ATOMIC_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) - if (TCP_GATE_EN1_sum != 0) else None)) - unit: pct - tips: + expr: + (((100 * TCP_ATOMIC_TAGCONFLICT_STALL_CYCLES_sum) / TCP_GATE_EN1_sum) + if (TCP_GATE_EN1_sum != 0) else None) + tips: + cli_style: simple_box - metric_table: id: 1603 @@ -258,8 +233,6 @@ Panel Config: max: Max unit: Unit tips: Tips - style: - type: simple_multi_bar metric: NC - Read: xfer: Read diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx90a/1700_L2_cache.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx90a/1700_L2_cache.yaml index 2b09bec17a..8b2b9254a4 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx90a/1700_L2_cache.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx90a/1700_L2_cache.yaml @@ -16,15 +16,13 @@ Panel Config: value: Avg unit: Unit tips: Tips - style: - type: simple_bar metric: Utilization: value: AVG(((TCC_BUSY_sum * 100) / (TO_INT($L2Banks) * GRBM_GUI_ACTIVE))) unit: pct tips: Bandwidth: - value: ((100 * AVG(((TCC_REQ_sum * 128) / (EndNs - BeginNs)))) / ((($sclk / 1000) * 128) * TO_INT($L2Banks))) + value: ((100 * AVG(((TCC_REQ_sum * 128) / (End_Timestamp - Start_Timestamp)))) / ((($sclk / 1000) * 128) * TO_INT($L2Banks))) unit: pct tips: Hit Rate: @@ -142,27 +140,15 @@ Panel Config: unit: Cycles tips: Read Stall: - avg: AVG((((100 * ((TCC_EA_RDREQ_IO_CREDIT_STALL_sum + TCC_EA_RDREQ_GMI_CREDIT_STALL_sum) - + TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum)) / TCC_BUSY_sum) if (TCC_BUSY_sum != - 0) else None)) - min: MIN((((100 * ((TCC_EA_RDREQ_IO_CREDIT_STALL_sum + TCC_EA_RDREQ_GMI_CREDIT_STALL_sum) - + TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum)) / TCC_BUSY_sum) if (TCC_BUSY_sum != - 0) else None)) - max: MAX((((100 * ((TCC_EA_RDREQ_IO_CREDIT_STALL_sum + TCC_EA_RDREQ_GMI_CREDIT_STALL_sum) - + TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum)) / TCC_BUSY_sum) if (TCC_BUSY_sum != - 0) else None)) + avg: None # Missing perfmon + min: None # Missing perfmon + max: None # Missing perfmon unit: pct tips: Write Stall: - avg: AVG((((100 * ((TCC_EA_WRREQ_IO_CREDIT_STALL_sum + TCC_EA_WRREQ_GMI_CREDIT_STALL_sum) - + TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum)) / TCC_BUSY_sum) if (TCC_BUSY_sum != - 0) else None)) - min: MIN((((100 * ((TCC_EA_WRREQ_IO_CREDIT_STALL_sum + TCC_EA_WRREQ_GMI_CREDIT_STALL_sum) - + TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum)) / TCC_BUSY_sum) if (TCC_BUSY_sum != - 0) else None)) - max: MAX((((100 * ((TCC_EA_WRREQ_IO_CREDIT_STALL_sum + TCC_EA_WRREQ_GMI_CREDIT_STALL_sum) - + TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum)) / TCC_BUSY_sum) if (TCC_BUSY_sum != - 0) else None)) + avg: None # Missing perfmon + min: None # Missing perfmon + max: None # Missing perfmon unit: pct tips: @@ -313,49 +299,49 @@ Panel Config: Read - PCIe Stall: type: PCIe Stall transaction: Read - avg: AVG(((100 * (TCC_EA_RDREQ_IO_CREDIT_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) - min: MIN(((100 * (TCC_EA_RDREQ_IO_CREDIT_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) - max: MAX(((100 * (TCC_EA_RDREQ_IO_CREDIT_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) + avg: None # Missing perfmon + min: None # Missing perfmon + max: None # Missing perfmon unit: pct tips: Read - Infinity Fabric™ Stall: type: Infinity Fabric™ Stall transaction: Read - avg: AVG(((100 * (TCC_EA_RDREQ_GMI_CREDIT_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) - min: MIN(((100 * (TCC_EA_RDREQ_GMI_CREDIT_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) - max: MAX(((100 * (TCC_EA_RDREQ_GMI_CREDIT_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) + avg: None # Missing perfmon + min: None # Missing perfmon + max: None # Missing perfmon unit: pct tips: Read - HBM Stall: type: HBM Stall transaction: Read - avg: AVG(((100 * (TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) - min: MIN(((100 * (TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) - max: MAX(((100 * (TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) + avg: None # Missing perfmon + min: None # Missing perfmon + max: None # Missing perfmon unit: pct tips: Write - PCIe Stall: type: PCIe Stall transaction: Write - avg: AVG(((100 * (TCC_EA_WRREQ_IO_CREDIT_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) - min: MIN(((100 * (TCC_EA_WRREQ_IO_CREDIT_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) - max: MAX(((100 * (TCC_EA_WRREQ_IO_CREDIT_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) + avg: None # Missing perfmon + min: None # Missing perfmon + max: None # Missing perfmon unit: pct tips: Write - Infinity Fabric™ Stall: type: Infinity Fabric™ Stall transaction: Write - avg: AVG(((100 * (TCC_EA_WRREQ_GMI_CREDIT_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) - min: MIN(((100 * (TCC_EA_WRREQ_GMI_CREDIT_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) - max: MAX(((100 * (TCC_EA_WRREQ_GMI_CREDIT_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) + avg: None # Missing perfmon + min: None # Missing perfmon + max: None # Missing perfmon unit: pct tips: Write - HBM Stall: type: HBM Stall transaction: Write - avg: AVG(((100 * (TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) - min: MIN(((100 * (TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) - max: MAX(((100 * (TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) + avg: None # Missing perfmon + min: None # Missing perfmon + max: None # Missing perfmon unit: pct tips: Write - Credit Starvation: diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx90a/1800_L2_cache_per_channel.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx90a/1800_L2_cache_per_channel.yaml index e65d3890e6..57d7f6942f 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx90a/1800_L2_cache_per_channel.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx90a/1800_L2_cache_per_channel.yaml @@ -308,9 +308,9 @@ Panel Config: ea read stall - hbm: L2 - Fabric Read Stall (HBM) metric: "::_1": - ea read stall - pcie: AVG((TO_INT(TCC_EA_RDREQ_IO_CREDIT_STALL[::_1]) / $denom)) - ea read stall - if: AVG((TO_INT(TCC_EA_RDREQ_GMI_CREDIT_STALL[::_1]) / $denom)) - ea read stall - hbm: AVG((TO_INT(TCC_EA_RDREQ_DRAM_CREDIT_STALL[::_1]) / $denom)) + ea read stall - pcie: None # Missing perfmon + ea read stall - if: None # Missing perfmon + ea read stall - hbm: None # Missing perfmon placeholder_range: "::_1": 32 cli_style: simple_multiple_bar @@ -326,9 +326,9 @@ Panel Config: ea write stall - starve: L2 - Fabric Write Starve metric: "::_1": - ea write stall - pcie: AVG((TO_INT(TCC_EA_WRREQ_IO_CREDIT_STALL[::_1]) / $denom)) - ea write stall - if: AVG((TO_INT(TCC_EA_WRREQ_GMI_CREDIT_STALL[::_1]) / $denom)) - ea write stall - hbm: AVG((TO_INT(TCC_EA_WRREQ_DRAM_CREDIT_STALL[::_1]) / $denom)) + ea write stall - pcie: None # Missing perfmon + ea write stall - if: None # Missing perfmon + ea write stall - hbm: None # Missing perfmon ea write stall - starve: AVG((TO_INT(TCC_TOO_MANY_EA_WRREQS_STALL[::_1]) / $denom)) placeholder_range: "::_1": 32 diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx940/0200_system-speed-of-light.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx940/0200_system-speed-of-light.yaml index e25b9f66e3..be43d46d61 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx940/0200_system-speed-of-light.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx940/0200_system-speed-of-light.yaml @@ -14,10 +14,10 @@ Panel Config: title: Speed-of-Light header: metric: Metric - value: Value + value: Avg unit: Unit peak: Peak - pop: PoP + pop: Pct of Peak tips: Tips metric: VALU FLOPs: @@ -83,19 +83,19 @@ Panel Config: peak: $numCU pop: ((100 * $numActiveCUs) / $numCU) tips: - SALU Util: + SALU Utilization: value: AVG(((100 * SQ_ACTIVE_INST_SCA) / (GRBM_GUI_ACTIVE * $numCU))) unit: pct peak: 100 pop: AVG(((100 * SQ_ACTIVE_INST_SCA) / (GRBM_GUI_ACTIVE * $numCU))) tips: - VALU Util: + VALU Utilization: value: AVG(((100 * SQ_ACTIVE_INST_VALU) / (GRBM_GUI_ACTIVE * $numCU))) unit: pct peak: 100 pop: AVG(((100 * SQ_ACTIVE_INST_VALU) / (GRBM_GUI_ACTIVE * $numCU))) tips: - MFMA Util: + MFMA Utilization: value: AVG(((100 * SQ_VALU_MFMA_BUSY_CYCLES) / ((GRBM_GUI_ACTIVE * $numCU) * 4))) unit: pct @@ -103,7 +103,19 @@ Panel Config: pop: AVG(((100 * SQ_VALU_MFMA_BUSY_CYCLES) / ((GRBM_GUI_ACTIVE * $numCU) * 4))) tips: - VALU Active Threads/Wave: + VMEM Utilization: + value: AVG((((100 * (SQ_ACTIVE_INST_FLAT+SQ_ACTIVE_INST_VMEM)) / GRBM_GUI_ACTIVE) / $numCU)) + unit: pct + peak: 100 + pop: AVG((((100 * (SQ_ACTIVE_INST_FLAT+SQ_ACTIVE_INST_VMEM)) / GRBM_GUI_ACTIVE) / $numCU)) + tips: + Branch Utilization: + value: AVG((((100 * SQ_ACTIVE_INST_MISC) / GRBM_GUI_ACTIVE) / $numCU)) + unit: pct + peak: 100 + pop: AVG((((100 * SQ_ACTIVE_INST_MISC) / GRBM_GUI_ACTIVE) / $numCU)) + tips: + VALU Active Threads: value: AVG(((SQ_THREAD_CYCLES_VALU / SQ_ACTIVE_INST_VALU) if (SQ_ACTIVE_INST_VALU != 0) else None)) unit: Threads @@ -111,25 +123,29 @@ Panel Config: pop: (AVG(((SQ_THREAD_CYCLES_VALU / SQ_ACTIVE_INST_VALU) if (SQ_ACTIVE_INST_VALU != 0) else None)) * 1.5625) tips: - IPC - Issue: - value: AVG(((((((((SQ_INSTS_VALU + SQ_INSTS_VMEM) + SQ_INSTS_SALU) + SQ_INSTS_SMEM) - + SQ_INSTS_GDS) + SQ_INSTS_BRANCH) + SQ_INSTS_SENDMSG) + SQ_INSTS_VSKIPPED) - / SQ_ACTIVE_INST_ANY)) + IPC: + value: AVG((SQ_INSTS / SQ_BUSY_CU_CYCLES)) unit: Instr/cycle peak: 5 - pop: ((100 * AVG(((((((((SQ_INSTS_VALU + SQ_INSTS_VMEM) + SQ_INSTS_SALU) + SQ_INSTS_SMEM) - + SQ_INSTS_GDS) + SQ_INSTS_BRANCH) + SQ_INSTS_SENDMSG) + SQ_INSTS_VSKIPPED) - / SQ_ACTIVE_INST_ANY))) / 5) + pop: ((100 * AVG((SQ_INSTS / SQ_BUSY_CU_CYCLES))) / 5) tips: - LDS BW: + Wavefront Occupancy: + value: AVG((SQ_ACCUM_PREV_HIRES / GRBM_GUI_ACTIVE)) + unit: Wavefronts + peak: ($maxWavesPerCU * $numCU) + pop: (100 * AVG(((SQ_ACCUM_PREV_HIRES / GRBM_GUI_ACTIVE) / ($maxWavesPerCU + * $numCU)))) + coll_level: SQ_LEVEL_WAVES + tips: + Theoretical LDS Bandwidth: value: AVG(((((SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT) * 4) * TO_INT($LDSBanks)) / (End_Timestamp - Start_Timestamp))) - unit: GB/sec + unit: GB/s peak: (($sclk * $numCU) * 0.128) pop: AVG((((((SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT) * 4) * TO_INT($LDSBanks)) / (End_Timestamp - Start_Timestamp)) / (($sclk * $numCU) * 0.00128))) tips: - LDS Bank Conflict: + LDS Bank Conflicts/Access: value: AVG(((SQ_LDS_BANK_CONFLICT / (SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT)) if ((SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT) != 0) else None)) unit: Conflicts/access @@ -137,35 +153,7 @@ Panel Config: pop: ((100 * AVG(((SQ_LDS_BANK_CONFLICT / (SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT)) if ((SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT) != 0) else None))) / 32) tips: - Instr Cache Hit Rate: - value: AVG(((100 * SQC_ICACHE_HITS) / (SQC_ICACHE_HITS + SQC_ICACHE_MISSES))) - unit: pct - peak: 100 - pop: AVG(((100 * SQC_ICACHE_HITS) / (SQC_ICACHE_HITS + SQC_ICACHE_MISSES))) - tips: - Instr Cache BW: - value: AVG(((SQC_ICACHE_REQ / (End_Timestamp - Start_Timestamp)) * 64)) - unit: GB/s - peak: ((($sclk / 1000) * 64) * $numSQC) - pop: ((100 * AVG(((SQC_ICACHE_REQ / (End_Timestamp - Start_Timestamp)) * 64))) / ((($sclk - / 1000) * 64) * $numSQC)) - tips: - Scalar L1D Cache Hit Rate: - value: AVG((((100 * SQC_DCACHE_HITS) / (SQC_DCACHE_HITS + SQC_DCACHE_MISSES)) - if ((SQC_DCACHE_HITS + SQC_DCACHE_MISSES) != 0) else None)) - unit: pct - peak: 100 - pop: AVG((((100 * SQC_DCACHE_HITS) / (SQC_DCACHE_HITS + SQC_DCACHE_MISSES)) - if ((SQC_DCACHE_HITS + SQC_DCACHE_MISSES) != 0) else None)) - tips: - Scalar L1D Cache BW: - value: AVG(((SQC_DCACHE_REQ / (End_Timestamp - Start_Timestamp)) * 64)) - unit: GB/s - peak: ((($sclk / 1000) * 64) * $numSQC) - pop: ((100 * AVG(((SQC_DCACHE_REQ / (End_Timestamp - Start_Timestamp)) * 64))) / ((($sclk - / 1000) * 64) * $numSQC)) - tips: - Vector L1D Cache Hit Rate: + vL1D Cache Hit Rate: value: AVG(((100 - ((100 * (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + TCP_TCC_ATOMIC_WITH_RET_REQ_sum) + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum)) / TCP_TOTAL_CACHE_ACCESSES_sum)) if (TCP_TOTAL_CACHE_ACCESSES_sum != 0) else @@ -177,7 +165,7 @@ Panel Config: TCP_TOTAL_CACHE_ACCESSES_sum)) if (TCP_TOTAL_CACHE_ACCESSES_sum != 0) else None)) tips: - Vector L1D Cache BW: + vL1D Cache BW: value: AVG(((TCP_TOTAL_CACHE_ACCESSES_sum * 64) / (End_Timestamp - Start_Timestamp))) unit: GB/s peak: ((($sclk / 1000) * 64) * $numCU) @@ -192,6 +180,13 @@ Panel Config: pop: AVG((((100 * TCC_HIT_sum) / (TCC_HIT_sum + TCC_MISS_sum)) if ((TCC_HIT_sum + TCC_MISS_sum) != 0) else None)) tips: + L2 Cache BW: + value: AVG(((TCC_REQ_sum * 128) / (End_Timestamp - Start_Timestamp))) + unit: GB/s + peak: ((($sclk / 1000) * 128) * TO_INT($L2Banks)) + pop: ((100 * AVG(((TCC_REQ_sum * 128) / (End_Timestamp - Start_Timestamp)))) + / ((($sclk / 1000) * 128) * TO_INT($L2Banks))) + tips: L2-Fabric Read BW: value: AVG((((TCC_EA0_RDREQ_32B_sum * 32) + ((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_32B_sum) * 64)) / (End_Timestamp - Start_Timestamp))) @@ -212,36 +207,48 @@ Panel Config: value: AVG(((TCC_EA0_RDREQ_LEVEL_sum / TCC_EA0_RDREQ_sum) if (TCC_EA0_RDREQ_sum != 0) else None)) unit: Cycles - peak: '' - pop: '' + peak: None + pop: None tips: L2-Fabric Write Latency: value: AVG(((TCC_EA0_WRREQ_LEVEL_sum / TCC_EA0_WRREQ_sum) if (TCC_EA0_WRREQ_sum != 0) else None)) unit: Cycles - peak: '' - pop: '' + peak: None + pop: None tips: - Wave Occupancy: - value: AVG((SQ_ACCUM_PREV_HIRES / GRBM_GUI_ACTIVE)) - unit: Wavefronts - peak: ($maxWavesPerCU * $numCU) - pop: (100 * AVG(((SQ_ACCUM_PREV_HIRES / GRBM_GUI_ACTIVE) / ($maxWavesPerCU - * $numCU)))) - coll_level: SQ_LEVEL_WAVES + sL1D Cache Hit Rate: + value: AVG((((100 * SQC_DCACHE_HITS) / (SQC_DCACHE_HITS + SQC_DCACHE_MISSES)) + if ((SQC_DCACHE_HITS + SQC_DCACHE_MISSES) != 0) else None)) + unit: pct + peak: 100 + pop: AVG((((100 * SQC_DCACHE_HITS) / (SQC_DCACHE_HITS + SQC_DCACHE_MISSES)) + if ((SQC_DCACHE_HITS + SQC_DCACHE_MISSES) != 0) else None)) tips: - Instr Fetch BW: - value: AVG(((SQ_IFETCH / (End_Timestamp - Start_Timestamp)) * 32)) + sL1D Cache BW: + value: AVG(((SQC_DCACHE_REQ / (End_Timestamp - Start_Timestamp)) * 64)) unit: GB/s - peak: ((($sclk / 1000) * 32) * $numSQC) - pop: ((100 * AVG(((SQ_IFETCH / (End_Timestamp - Start_Timestamp)) * 32))) / ($numSQC - * (($sclk / 1000) * 32))) - coll_level: SQ_IFETCH_LEVEL + peak: ((($sclk / 1000) * 64) * $numSQC) + pop: ((100 * AVG(((SQC_DCACHE_REQ / (End_Timestamp - Start_Timestamp)) * 64))) / ((($sclk + / 1000) * 64) * $numSQC)) tips: - Instr Fetch Latency: + L1I Hit Rate: + value: AVG(((100 * SQC_ICACHE_HITS) / (SQC_ICACHE_HITS + SQC_ICACHE_MISSES))) + unit: pct + peak: 100 + pop: AVG(((100 * SQC_ICACHE_HITS) / (SQC_ICACHE_HITS + SQC_ICACHE_MISSES))) + tips: + L1I BW: + value: AVG(((SQC_ICACHE_REQ / (End_Timestamp - Start_Timestamp)) * 64)) + unit: GB/s + peak: ((($sclk / 1000) * 64) * $numSQC) + pop: ((100 * AVG(((SQC_ICACHE_REQ / (End_Timestamp - Start_Timestamp)) * 64))) / ((($sclk + / 1000) * 64) * $numSQC)) + tips: + L1I Fetch Latency: value: AVG((SQ_ACCUM_PREV_HIRES / SQ_IFETCH)) unit: Cycles - peak: '' - pop: '' + peak: None + pop: None coll_level: SQ_IFETCH_LEVEL tips: diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx940/0500_command-processor.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx940/0500_command-processor.yaml index d954f61625..1a9082258d 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx940/0500_command-processor.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx940/0500_command-processor.yaml @@ -19,19 +19,7 @@ Panel Config: unit: Unit tips: Tips metric: - GPU Busy Cycles: - avg: AVG(GRBM_GUI_ACTIVE) - min: MIN(GRBM_GUI_ACTIVE) - max: MAX(GRBM_GUI_ACTIVE) - unit: Cycles/Kernel - tips: - CPF Busy: - avg: AVG(CPF_CPF_STAT_BUSY) - min: MIN(CPF_CPF_STAT_BUSY) - max: MAX(CPF_CPF_STAT_BUSY) - unit: Cycles/Kernel - tips: - CPF Util: + CPF Utilization: avg: AVG((((100 * CPF_CPF_STAT_BUSY) / (CPF_CPF_STAT_BUSY + CPF_CPF_STAT_IDLE)) if ((CPF_CPF_STAT_BUSY + CPF_CPF_STAT_IDLE) != 0) else None)) min: MIN((((100 * CPF_CPF_STAT_BUSY) / (CPF_CPF_STAT_BUSY + CPF_CPF_STAT_IDLE)) @@ -47,15 +35,9 @@ Panel Config: != 0) else None)) max: MAX((((100 * CPF_CPF_STAT_STALL) / CPF_CPF_STAT_BUSY) if (CPF_CPF_STAT_BUSY != 0) else None)) - unit: Cycles/Kernel + unit: pct tips: - L2Cache Intf Busy: - avg: AVG(CPF_CPF_TCIU_BUSY) - min: MIN(CPF_CPF_TCIU_BUSY) - max: MAX(CPF_CPF_TCIU_BUSY) - unit: Cycles/Kernel - tips: - L2Cache Intf Util: + CPF-L2 Utilization: avg: AVG((((100 * CPF_CPF_TCIU_BUSY) / (CPF_CPF_TCIU_BUSY + CPF_CPF_TCIU_IDLE)) if ((CPF_CPF_TCIU_BUSY + CPF_CPF_TCIU_IDLE) != 0) else None)) min: MIN((((100 * CPF_CPF_TCIU_BUSY) / (CPF_CPF_TCIU_BUSY + CPF_CPF_TCIU_IDLE)) @@ -64,7 +46,7 @@ Panel Config: if ((CPF_CPF_TCIU_BUSY + CPF_CPF_TCIU_IDLE) != 0) else None)) unit: pct tips: - L2Cache Intf Stall: + CPF-L2 Stall: avg: AVG((((100 * CPF_CPF_TCIU_STALL) / CPF_CPF_TCIU_BUSY) if (CPF_CPF_TCIU_BUSY != 0) else None)) min: MIN((((100 * CPF_CPF_TCIU_STALL) / CPF_CPF_TCIU_BUSY) if (CPF_CPF_TCIU_BUSY @@ -73,16 +55,19 @@ Panel Config: != 0) else None)) unit: pct tips: - UTCL1 Stall: - avg: AVG(CPF_CMP_UTCL1_STALL_ON_TRANSLATION) - min: MIN(CPF_CMP_UTCL1_STALL_ON_TRANSLATION) - max: MAX(CPF_CMP_UTCL1_STALL_ON_TRANSLATION) - unit: Cycles/Kernel - tips: + CPF-UTCL1 Stall: + avg: AVG(((100 * CPF_CMP_UTCL1_STALL_ON_TRANSLATION) / CPF_CPF_STAT_BUSY) if (CPF_CPF_STAT_BUSY + != 0) else None) + min: MIN(((100 * CPF_CMP_UTCL1_STALL_ON_TRANSLATION) / CPF_CPF_STAT_BUSY) if (CPF_CPF_STAT_BUSY + != 0) else None) + max: MAX(((100 * CPF_CMP_UTCL1_STALL_ON_TRANSLATION) / CPF_CPF_STAT_BUSY) if (CPF_CPF_STAT_BUSY + != 0) else None) + unit: pct + tips: - metric_table: id: 502 - title: Command Processor Compute + title: Packet Processor header: metric: Metric avg: Avg @@ -91,19 +76,7 @@ Panel Config: unit: Unit tips: Tips metric: - GPU Busy Cycles: - avg: AVG(GRBM_GUI_ACTIVE) - min: MIN(GRBM_GUI_ACTIVE) - max: MAX(GRBM_GUI_ACTIVE) - unit: Cycles - tips: - CPC Busy Cycles: - avg: AVG(CPC_CPC_STAT_BUSY) - min: MIN(CPC_CPC_STAT_BUSY) - max: MAX(CPC_CPC_STAT_BUSY) - unit: Cycles - tips: - CPC Util: + CPC Utilization: avg: AVG((((100 * CPC_CPC_STAT_BUSY) / (CPC_CPC_STAT_BUSY + CPC_CPC_STAT_IDLE)) if ((CPC_CPC_STAT_BUSY + CPC_CPC_STAT_IDLE) != 0) else None)) min: MIN((((100 * CPC_CPC_STAT_BUSY) / (CPC_CPC_STAT_BUSY + CPC_CPC_STAT_IDLE)) @@ -112,12 +85,6 @@ Panel Config: if ((CPC_CPC_STAT_BUSY + CPC_CPC_STAT_IDLE) != 0) else None)) unit: pct tips: - CPC Stall Cycles: - avg: AVG(CPC_CPC_STAT_STALL) - min: MIN(CPC_CPC_STAT_STALL) - max: MAX(CPC_CPC_STAT_STALL) - unit: Cycles - tips: CPC Stall Rate: avg: AVG((((100 * CPC_CPC_STAT_STALL) / CPC_CPC_STAT_BUSY) if (CPC_CPC_STAT_BUSY != 0) else None)) @@ -127,28 +94,19 @@ Panel Config: != 0) else None)) unit: pct tips: - CPC Packet Decoding: - avg: AVG(CPC_ME1_BUSY_FOR_PACKET_DECODE) - min: MIN(CPC_ME1_BUSY_FOR_PACKET_DECODE) - max: MAX(CPC_ME1_BUSY_FOR_PACKET_DECODE) - unit: Cycles - tips: - SPI Intf Busy Cycles: - avg: AVG(CPC_ME1_DC0_SPI_BUSY) - min: MIN(CPC_ME1_DC0_SPI_BUSY) - max: MAX(CPC_ME1_DC0_SPI_BUSY) - unit: Cycles - tips: - SPI Intf Util: - avg: AVG((((100 * CPC_ME1_DC0_SPI_BUSY) / CPC_CPC_STAT_BUSY) if (CPC_CPC_STAT_BUSY - != 0) else None)) - min: MIN((((100 * CPC_ME1_DC0_SPI_BUSY) / CPC_CPC_STAT_BUSY) if (CPC_CPC_STAT_BUSY - != 0) else None)) - max: MAX((((100 * CPC_ME1_DC0_SPI_BUSY) / CPC_CPC_STAT_BUSY) if (CPC_CPC_STAT_BUSY - != 0) else None)) + CPC Packet Decoding Utilization: + avg: AVG((100 * CPC_ME1_BUSY_FOR_PACKET_DECODE) / CPC_CPC_STAT_BUSY if (CPC_CPC_STAT_BUSY != 0) else None) + min: MIN((100 * CPC_ME1_BUSY_FOR_PACKET_DECODE) / CPC_CPC_STAT_BUSY if (CPC_CPC_STAT_BUSY != 0) else None) + max: MAX((100 * CPC_ME1_BUSY_FOR_PACKET_DECODE) / CPC_CPC_STAT_BUSY if (CPC_CPC_STAT_BUSY != 0) else None) unit: pct tips: - L2Cache Intf Util: + CPC-Workgroup Manager Utilization: + avg: AVG((100 * CPC_ME1_DC0_SPI_BUSY) / CPC_CPC_STAT_BUSY if (CPC_CPC_STAT_BUSY != 0) else None) + min: MIN((100 * CPC_ME1_DC0_SPI_BUSY) / CPC_CPC_STAT_BUSY if (CPC_CPC_STAT_BUSY != 0) else None) + max: MAX((100 * CPC_ME1_DC0_SPI_BUSY) / CPC_CPC_STAT_BUSY if (CPC_CPC_STAT_BUSY != 0) else None) + unit: Pct + tips: + CPC-L2 Utilization: avg: AVG((((100 * CPC_CPC_TCIU_BUSY) / (CPC_CPC_TCIU_BUSY + CPC_CPC_TCIU_IDLE)) if ((CPC_CPC_TCIU_BUSY + CPC_CPC_TCIU_IDLE) != 0) else None)) min: MIN((((100 * CPC_CPC_TCIU_BUSY) / (CPC_CPC_TCIU_BUSY + CPC_CPC_TCIU_IDLE)) @@ -157,19 +115,16 @@ Panel Config: if ((CPC_CPC_TCIU_BUSY + CPC_CPC_TCIU_IDLE) != 0) else None)) unit: pct tips: - UTCL1 Stall Cycles: - avg: AVG(CPC_UTCL1_STALL_ON_TRANSLATION) - min: MIN(CPC_UTCL1_STALL_ON_TRANSLATION) - max: MAX(CPC_UTCL1_STALL_ON_TRANSLATION) - unit: Cycles + CPC-UTCL1 Stall: + avg: AVG(((100 * CPC_UTCL1_STALL_ON_TRANSLATION) / CPC_CPC_STAT_BUSY) if (CPC_CPC_STAT_BUSY + != 0) else None) + min: MIN(((100 * CPC_UTCL1_STALL_ON_TRANSLATION) / CPC_CPC_STAT_BUSY) if (CPC_CPC_STAT_BUSY + != 0) else None) + max: MAX(((100 * CPC_UTCL1_STALL_ON_TRANSLATION) / CPC_CPC_STAT_BUSY) if (CPC_CPC_STAT_BUSY + != 0) else None) + unit: pct tips: - UTCL2 Intf Busy Cycles: - avg: AVG(CPC_CPC_UTCL2IU_BUSY) - min: MIN(CPC_CPC_UTCL2IU_BUSY) - max: MAX(CPC_CPC_UTCL2IU_BUSY) - unit: Cycles - tips: - UTCL2 Intf Util: + CPC-UTCL2 Utilization: avg: AVG((((100 * CPC_CPC_UTCL2IU_BUSY) / (CPC_CPC_UTCL2IU_BUSY + CPC_CPC_UTCL2IU_IDLE)) if ((CPC_CPC_UTCL2IU_BUSY + CPC_CPC_UTCL2IU_IDLE) != 0) else None)) min: MIN((((100 * CPC_CPC_UTCL2IU_BUSY) / (CPC_CPC_UTCL2IU_BUSY + CPC_CPC_UTCL2IU_IDLE)) @@ -177,4 +132,4 @@ Panel Config: max: MAX((((100 * CPC_CPC_UTCL2IU_BUSY) / (CPC_CPC_UTCL2IU_BUSY + CPC_CPC_UTCL2IU_IDLE)) if ((CPC_CPC_UTCL2IU_BUSY + CPC_CPC_UTCL2IU_IDLE) != 0) else None)) unit: pct - tips: + tips: \ No newline at end of file diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx940/0600_shader-processor-input.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx940/0600_shader-processor-input.yaml index bab48700ac..7a6d5e004d 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx940/0600_shader-processor-input.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx940/0600_shader-processor-input.yaml @@ -6,11 +6,11 @@ Metric Description: # Define the panel properties and properties of each metric in the panel. Panel Config: id: 600 - title: Shader Processor Input (SPI) + title: Workgroup Manager (SPI) data source: - metric_table: id: 601 - title: SPI Stats + title: Workgroup Manager Utilizations header: metric: Metric avg: Avg @@ -19,29 +19,35 @@ Panel Config: unit: Unit tips: Tips metric: - GPU Busy: - avg: AVG(GRBM_GUI_ACTIVE) - min: MIN(GRBM_GUI_ACTIVE) - max: MAX(GRBM_GUI_ACTIVE) - unit: Cycles + Accelerator Utilization: + avg: AVG(100 * GRBM_GUI_ACTIVE / GRBM_COUNT) + min: MIN(100 * GRBM_GUI_ACTIVE / GRBM_COUNT) + max: MAX(100 * GRBM_GUI_ACTIVE / GRBM_COUNT) + unit: Pct tips: - CS Busy: - avg: AVG(SPI_CSN_BUSY) - min: MIN(SPI_CSN_BUSY) - max: MAX(SPI_CSN_BUSY) - unit: Cycles + Scheduler-Pipe Utilization: + avg: AVG(100 * SPI_CSN_BUSY / (GRBM_GUI_ACTIVE * $numPipes * $numSE)) + min: MIN(100 * SPI_CSN_BUSY / (GRBM_GUI_ACTIVE * $numPipes * $numSE)) + max: MAX(100 * SPI_CSN_BUSY / (GRBM_GUI_ACTIVE * $numPipes * $numSE)) + unit: Pct tips: - SPI Busy: - avg: AVG(GRBM_SPI_BUSY) - min: MIN(GRBM_SPI_BUSY) - max: MAX(GRBM_SPI_BUSY) - unit: Cycles + Workgroup Manager Utilization: + avg: AVG(100 * GRBM_SPI_BUSY / GRBM_GUI_ACTIVE) + min: MIN(100 * GRBM_SPI_BUSY / GRBM_GUI_ACTIVE) + max: MAX(100 * GRBM_SPI_BUSY / GRBM_GUI_ACTIVE) + unit: Pct tips: - SQ Busy: - avg: AVG(SQ_BUSY_CYCLES) - min: MIN(SQ_BUSY_CYCLES) - max: MAX(SQ_BUSY_CYCLES) - unit: Cycles + Shader Engine Utilization: + avg: AVG(100 * SQ_BUSY_CYCLES / (GRBM_GUI_ACTIVE * $numSE)) + min: MIN(100 * SQ_BUSY_CYCLES / (GRBM_GUI_ACTIVE * $numSE)) + max: MAX(100 * SQ_BUSY_CYCLES / (GRBM_GUI_ACTIVE * $numSE)) + unit: Pct + tips: + SIMD Utilization: + avg: AVG(100 * SQ_BUSY_CU_CYCLES / (GRBM_GUI_ACTIVE * $numCU)) + min: MIN(100 * SQ_BUSY_CU_CYCLES / (GRBM_GUI_ACTIVE * $numCU)) + max: MAX(100 * SQ_BUSY_CU_CYCLES / (GRBM_GUI_ACTIVE * $numCU)) + unit: Pct tips: Dispatched Workgroups: avg: AVG(SPI_CSN_NUM_THREADGROUPS) @@ -55,105 +61,6 @@ Panel Config: max: MAX(SPI_CSN_WAVE) unit: Wavefronts tips: - Wave Alloc Failed: - avg: AVG(SPI_RA_REQ_NO_ALLOC) - min: MIN(SPI_RA_REQ_NO_ALLOC) - max: MAX(SPI_RA_REQ_NO_ALLOC) - unit: Cycles - tips: - Wave Alloc Failed - CS: - avg: AVG(SPI_RA_REQ_NO_ALLOC_CSN) - min: MIN(SPI_RA_REQ_NO_ALLOC_CSN) - max: MAX(SPI_RA_REQ_NO_ALLOC_CSN) - unit: Cycles - tips: - - - metric_table: - id: 602 - title: SPI Resource Allocation - header: - metric: Metric - avg: Avg - min: Min - max: Max - unit: Unit - tips: Tips - metric: - Wave request Failed (CS): - avg: AVG(SPI_RA_REQ_NO_ALLOC_CSN) - min: MIN(SPI_RA_REQ_NO_ALLOC_CSN) - max: MAX(SPI_RA_REQ_NO_ALLOC_CSN) - unit: Cycles - tips: - CS Stall: - avg: AVG(SPI_RA_RES_STALL_CSN) - min: MIN(SPI_RA_RES_STALL_CSN) - max: MAX(SPI_RA_RES_STALL_CSN) - unit: Cycles - tips: - CS Stall Rate: - avg: AVG((((100 * SPI_RA_RES_STALL_CSN) / GRBM_SPI_BUSY) if (GRBM_SPI_BUSY != - 0) else None)) - min: MIN((((100 * SPI_RA_RES_STALL_CSN) / GRBM_SPI_BUSY) if (GRBM_SPI_BUSY != - 0) else None)) - max: MAX((((100 * SPI_RA_RES_STALL_CSN) / GRBM_SPI_BUSY) if (GRBM_SPI_BUSY != - 0) else None)) - unit: pct - tips: - Scratch Stall: - avg: AVG(SPI_RA_TMP_STALL_CSN) - min: MIN(SPI_RA_TMP_STALL_CSN) - max: MAX(SPI_RA_TMP_STALL_CSN) - unit: Cycles - tips: - Insufficient SIMD Waveslots: - avg: AVG(SPI_RA_WAVE_SIMD_FULL_CSN) - min: MIN(SPI_RA_WAVE_SIMD_FULL_CSN) - max: MAX(SPI_RA_WAVE_SIMD_FULL_CSN) - unit: SIMD - tips: - Insufficient SIMD VGPRs: - avg: AVG(SPI_RA_VGPR_SIMD_FULL_CSN) - min: MIN(SPI_RA_VGPR_SIMD_FULL_CSN) - max: MAX(SPI_RA_VGPR_SIMD_FULL_CSN) - unit: SIMD - tips: - Insufficient SIMD SGPRs: - avg: AVG(SPI_RA_SGPR_SIMD_FULL_CSN) - min: MIN(SPI_RA_SGPR_SIMD_FULL_CSN) - max: MAX(SPI_RA_SGPR_SIMD_FULL_CSN) - unit: SIMD - tips: - Insufficient CU LDS: - avg: AVG(SPI_RA_LDS_CU_FULL_CSN) - min: MIN(SPI_RA_LDS_CU_FULL_CSN) - max: MAX(SPI_RA_LDS_CU_FULL_CSN) - unit: CU - tips: - Insufficient CU Barries: - avg: AVG(SPI_RA_BAR_CU_FULL_CSN) - min: MIN(SPI_RA_BAR_CU_FULL_CSN) - max: MAX(SPI_RA_BAR_CU_FULL_CSN) - unit: CU - tips: - Insufficient Bulky Resource: - avg: AVG(SPI_RA_BULKY_CU_FULL_CSN) - min: MIN(SPI_RA_BULKY_CU_FULL_CSN) - max: MAX(SPI_RA_BULKY_CU_FULL_CSN) - unit: CU - tips: - Reach CU Threadgroups Limit: - avg: AVG(SPI_RA_TGLIM_CU_FULL_CSN) - min: MIN(SPI_RA_TGLIM_CU_FULL_CSN) - max: MAX(SPI_RA_TGLIM_CU_FULL_CSN) - unit: Cycles - tips: - Reach CU Wave Limit: - avg: AVG(SPI_RA_WVLIM_STALL_CSN) - min: MIN(SPI_RA_WVLIM_STALL_CSN) - max: MAX(SPI_RA_WVLIM_STALL_CSN) - unit: Cycles - tips: VGPR Writes: avg: AVG((((4 * SPI_VWC_CSC_WR) / SPI_CSN_WAVE) if (SPI_CSN_WAVE != 0) else None)) @@ -172,3 +79,89 @@ Panel Config: None)) unit: Cycles/wave tips: + - metric_table: + id: 602 + title: Workgroup Manager - Resource Allocation + header: + metric: Metric + avg: Avg + min: Min + max: Max + unit: Unit + tips: Tips + metric: + Not-scheduled Rate (Workgroup Manager): + avg: AVG((100 * SPI_RA_REQ_NO_ALLOC_CSN / (GRBM_SPI_BUSY * $numSE)) if (GRBM_SPI_BUSY != + 0) else None) + min: MIN((100 * SPI_RA_REQ_NO_ALLOC_CSN / (GRBM_SPI_BUSY * $numSE)) if (GRBM_SPI_BUSY != + 0) else None) + max: MAX((100 * SPI_RA_REQ_NO_ALLOC_CSN / (GRBM_SPI_BUSY * $numSE)) if (GRBM_SPI_BUSY != + 0) else None) + unit: Pct + tips: + Not-scheduled Rate (Scheduler-Pipe): + avg: AVG((100 * SPI_RA_REQ_NO_ALLOC / (GRBM_SPI_BUSY * $numSE)) if (GRBM_SPI_BUSY != + 0) else None) + min: MIN((100 * SPI_RA_REQ_NO_ALLOC / (GRBM_SPI_BUSY * $numSE)) if (GRBM_SPI_BUSY != + 0) else None) + max: MAX((100 * SPI_RA_REQ_NO_ALLOC / (GRBM_SPI_BUSY * $numSE)) if (GRBM_SPI_BUSY != + 0) else None) + unit: Pct + tips: + Scheduler-Pipe Stall Rate: + avg: AVG((((100 * SPI_RA_RES_STALL_CSN) / (GRBM_SPI_BUSY * $numSE)) if (GRBM_SPI_BUSY != + 0) else None)) + min: MIN((((100 * SPI_RA_RES_STALL_CSN) / (GRBM_SPI_BUSY * $numSE)) if (GRBM_SPI_BUSY != + 0) else None)) + max: MAX((((100 * SPI_RA_RES_STALL_CSN) / (GRBM_SPI_BUSY * $numSE)) if (GRBM_SPI_BUSY != + 0) else None)) + unit: Pct + tips: + Scratch Stall Rate: + avg: AVG((100 * SPI_RA_TMP_STALL_CSN / (GRBM_SPI_BUSY * $numSE)) if (GRBM_SPI_BUSY != 0) else None) + min: MIN((100 * SPI_RA_TMP_STALL_CSN / (GRBM_SPI_BUSY * $numSE)) if (GRBM_SPI_BUSY != 0) else None) + max: MAX((100 * SPI_RA_TMP_STALL_CSN / (GRBM_SPI_BUSY * $numSE)) if (GRBM_SPI_BUSY != 0) else None) + unit: Pct + tips: + Insufficient SIMD Waveslots: + avg: AVG(100 * SPI_RA_WAVE_SIMD_FULL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + min: MIN(100 * SPI_RA_WAVE_SIMD_FULL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + max: MAX(100 * SPI_RA_WAVE_SIMD_FULL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + unit: Pct + tips: + Insufficient SIMD VGPRs: + avg: AVG(100 * SPI_RA_VGPR_SIMD_FULL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + min: MIN(100 * SPI_RA_VGPR_SIMD_FULL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + max: MAX(100 * SPI_RA_VGPR_SIMD_FULL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + unit: Pct + tips: + Insufficient SIMD SGPRs: + avg: AVG(100 * SPI_RA_SGPR_SIMD_FULL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + min: MIN(100 * SPI_RA_SGPR_SIMD_FULL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + max: MAX(100 * SPI_RA_SGPR_SIMD_FULL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + unit: Pct + tips: + Insufficient CU LDS: + avg: AVG(400 * SPI_RA_LDS_CU_FULL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + min: MIN(400 * SPI_RA_LDS_CU_FULL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + max: MAX(400 * SPI_RA_LDS_CU_FULL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + unit: Pct + tips: + Insufficient CU Barriers: + avg: AVG(400 * SPI_RA_BAR_CU_FULL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + min: MIN(400 * SPI_RA_BAR_CU_FULL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + max: MAX(400 * SPI_RA_BAR_CU_FULL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + unit: Pct + tips: + Reached CU Workgroup Limit: + avg: AVG(400 * SPI_RA_TGLIM_CU_FULL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + min: MIN(400 * SPI_RA_TGLIM_CU_FULL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + max: MAX(400 * SPI_RA_TGLIM_CU_FULL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + unit: Pct + tips: + Reached CU Wavefront Limit: + avg: AVG(400 * SPI_RA_WVLIM_STALL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + min: MIN(400 * SPI_RA_WVLIM_STALL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + max: MAX(400 * SPI_RA_WVLIM_STALL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + unit: Pct + tips: \ No newline at end of file diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx940/0700_wavefront-launch.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx940/0700_wavefront-launch.yaml index ba8398e5cb..d4b60fe398 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx940/0700_wavefront-launch.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx940/0700_wavefront-launch.yaml @@ -26,9 +26,9 @@ Panel Config: unit: Work Items tips: Workgroup Size: - avg: AVG(LDS_Per_Workgroup) - min: MIN(LDS_Per_Workgroup) - max: MAX(LDS_Per_Workgroup) + avg: AVG(Workgroup_Size) + min: MIN(Workgroup_Size) + max: MAX(Workgroup_Size) unit: Work Items tips: Total Wavefronts: @@ -77,7 +77,7 @@ Panel Config: avg: AVG(Scratch_Per_Workitem) min: MIN(Scratch_Per_Workitem) max: MAX(Scratch_Per_Workitem) - unit: Bytes + unit: Bytes/Workitem tips: - metric_table: @@ -103,7 +103,7 @@ Panel Config: max: MAX(GRBM_GUI_ACTIVE) unit: Cycle tips: - Instr/wavefront: + Instructions per wavefront: avg: AVG((SQ_INSTS / SQ_WAVES)) min: MIN((SQ_INSTS / SQ_WAVES)) max: MAX((SQ_INSTS / SQ_WAVES)) diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx940/1000_compute-unit-instruction-mix.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx940/1000_compute-unit-instruction-mix.yaml index b6ed293940..64769ecd81 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx940/1000_compute-unit-instruction-mix.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx940/1000_compute-unit-instruction-mix.yaml @@ -10,7 +10,7 @@ Panel Config: data source: - metric_table: id: 1001 - title: Instruction Mix + title: Overall Instruction Mix header: metric: Metric avg: Avg @@ -19,7 +19,7 @@ Panel Config: unit: Unit tips: Tips metric: - VALU - Vector: + VALU: avg: AVG(((SQ_INSTS_VALU - SQ_INSTS_MFMA) / $denom)) min: MIN(((SQ_INSTS_VALU - SQ_INSTS_MFMA) / $denom)) max: MAX(((SQ_INSTS_VALU - SQ_INSTS_MFMA) / $denom)) @@ -37,7 +37,7 @@ Panel Config: max: MAX((SQ_INSTS_LDS / $denom)) unit: (instr + $normUnit) tips: - VALU - MFMA: + MFMA: avg: AVG((SQ_INSTS_MFMA / $denom)) min: MIN((SQ_INSTS_MFMA / $denom)) max: MAX((SQ_INSTS_MFMA / $denom)) @@ -61,12 +61,6 @@ Panel Config: max: MAX((SQ_INSTS_BRANCH / $denom)) unit: (instr + $normUnit) tips: - GDS: - avg: AVG((SQ_INSTS_GDS / $denom)) - min: MIN((SQ_INSTS_GDS / $denom)) - max: MAX((SQ_INSTS_GDS / $denom)) - unit: (instr + $normUnit) - tips: - metric_table: id: 1002 @@ -174,55 +168,100 @@ Panel Config: id: 1003 title: VMEM Instr Mix header: - type: type - count: Count + metric: Metric + avg: Avg + min: Min + max: Max + unit: Unit tips: Tips metric: - Buffer Instr: - count: AVG((TA_BUFFER_WAVEFRONTS_sum / $denom)) - tips: - Buffer Read: - count: AVG((TA_BUFFER_READ_WAVEFRONTS_sum / $denom)) - tips: - Buffer Write: - count: AVG((TA_BUFFER_WRITE_WAVEFRONTS_sum / $denom)) - tips: - Buffer Atomic: - count: AVG((TA_BUFFER_ATOMIC_WAVEFRONTS_sum / $denom)) - tips: - Flat Instr: - count: AVG((TA_FLAT_WAVEFRONTS_sum / $denom)) - tips: - Flat Read: - count: AVG((TA_FLAT_READ_WAVEFRONTS_sum / $denom)) - tips: - Flat Write: - count: AVG((TA_FLAT_WRITE_WAVEFRONTS_sum / $denom)) - tips: - Flat Atomic: - count: AVG((TA_FLAT_ATOMIC_WAVEFRONTS_sum / $denom)) - tips: + Global/Generic Instr: + avg: AVG((TA_FLAT_WAVEFRONTS_sum / $denom)) + min: MIN((TA_FLAT_WAVEFRONTS_sum / $denom)) + max: MAX((TA_FLAT_WAVEFRONTS_sum / $denom)) + unit: (instr + $normUnit) + tips: + Global/Generic Read: + avg: AVG((TA_FLAT_READ_WAVEFRONTS_sum / $denom)) + min: MIN((TA_FLAT_READ_WAVEFRONTS_sum / $denom)) + max: MAX((TA_FLAT_READ_WAVEFRONTS_sum / $denom)) + unit: (instr + $normUnit) + tips: + Global/Generic Write: + avg: AVG((TA_FLAT_WRITE_WAVEFRONTS_sum / $denom)) + min: MIN((TA_FLAT_WRITE_WAVEFRONTS_sum / $denom)) + max: MAX((TA_FLAT_WRITE_WAVEFRONTS_sum / $denom)) + unit: (instr + $normUnit) + tips: + Global/Generic Atomic: + avg: AVG((TA_FLAT_ATOMIC_WAVEFRONTS_sum / $denom)) + min: MIN((TA_FLAT_ATOMIC_WAVEFRONTS_sum / $denom)) + max: MAX((TA_FLAT_ATOMIC_WAVEFRONTS_sum / $denom)) + unit: (instr + $normUnit) + tips: + Spill/Stack Instr: + avg: AVG((TA_BUFFER_WAVEFRONTS_sum / $denom)) + min: MIN((TA_BUFFER_WAVEFRONTS_sum / $denom)) + max: MAX((TA_BUFFER_WAVEFRONTS_sum / $denom)) + unit: (instr + $normUnit) + tips: + Spill/Stack Read: + avg: AVG((TA_BUFFER_READ_WAVEFRONTS_sum / $denom)) + min: MIN((TA_BUFFER_READ_WAVEFRONTS_sum / $denom)) + max: MAX((TA_BUFFER_READ_WAVEFRONTS_sum / $denom)) + unit: (instr + $normUnit) + tips: + Spill/Stack Write: + avg: AVG((TA_BUFFER_WRITE_WAVEFRONTS_sum / $denom)) + min: MIN((TA_BUFFER_WRITE_WAVEFRONTS_sum / $denom)) + max: MAX((TA_BUFFER_WRITE_WAVEFRONTS_sum / $denom)) + unit: (instr + $normUnit) + tips: + Spill/Stack Atomic: + avg: AVG((TA_BUFFER_ATOMIC_WAVEFRONTS_sum / $denom)) + min: MIN((TA_BUFFER_ATOMIC_WAVEFRONTS_sum / $denom)) + max: MAX((TA_BUFFER_ATOMIC_WAVEFRONTS_sum / $denom)) + unit: (instr + $normUnit) + tips: - metric_table: id: 1004 title: MFMA Arithmetic Instr Mix header: - type: type - count: Count + metric: Metric + avg: Avg + min: Min + max: Max + unit: Unit tips: Tips metric: MFMA-I8: - count: AVG((SQ_INSTS_VALU_MFMA_I8 / $denom)) + avg: AVG((SQ_INSTS_VALU_MFMA_I8 / $denom)) + min: MIN((SQ_INSTS_VALU_MFMA_I8 / $denom)) + max: MAX((SQ_INSTS_VALU_MFMA_I8 / $denom)) + unit: (instr + $normUnit) tips: MFMA-F16: - count: AVG((SQ_INSTS_VALU_MFMA_F16 / $denom)) + avg: AVG((SQ_INSTS_VALU_MFMA_F16 / $denom)) + min: MIN((SQ_INSTS_VALU_MFMA_F16 / $denom)) + max: MAX((SQ_INSTS_VALU_MFMA_F16 / $denom)) + unit: (instr + $normUnit) tips: MFMA-BF16: - count: AVG((SQ_INSTS_VALU_MFMA_BF16 / $denom)) + avg: AVG((SQ_INSTS_VALU_MFMA_BF16 / $denom)) + min: MIN((SQ_INSTS_VALU_MFMA_BF16 / $denom)) + max: MAX((SQ_INSTS_VALU_MFMA_BF16 / $denom)) + unit: (instr + $normUnit) tips: MFMA-F32: - count: AVG((SQ_INSTS_VALU_MFMA_F32 / $denom)) + avg: AVG((SQ_INSTS_VALU_MFMA_F32 / $denom)) + min: MIN((SQ_INSTS_VALU_MFMA_F32 / $denom)) + max: MAX((SQ_INSTS_VALU_MFMA_F32 / $denom)) + unit: (instr + $normUnit) tips: MFMA-F64: - count: AVG((SQ_INSTS_VALU_MFMA_F64 / $denom)) + avg: AVG((SQ_INSTS_VALU_MFMA_F64 / $denom)) + min: MIN((SQ_INSTS_VALU_MFMA_F64 / $denom)) + max: MAX((SQ_INSTS_VALU_MFMA_F64 / $denom)) + unit: (instr + $normUnit) tips: diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx940/1100_compute-unit-compute-pipeline.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx940/1100_compute-unit-compute-pipeline.yaml index 0119b4caf9..53d49b2059 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx940/1100_compute-unit-compute-pipeline.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx940/1100_compute-unit-compute-pipeline.yaml @@ -13,43 +13,68 @@ Panel Config: title: Speed-of-Light header: metric: Metric - value: Value + value: Avg unit: Unit + peak: Peak + pop: Pct of Peak tips: Tips metric: - valu_flops_pop: - value: ((100 * AVG(((((64 * (((SQ_INSTS_VALU_ADD_F16 + SQ_INSTS_VALU_MUL_F16) + VALU FLOPs: + value: 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)))) + / (End_Timestamp - Start_Timestamp))) + unit: GFLOP + peak: (((($sclk * $numCU) * 64) * 2) / 1000) + pop: ((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)))) / (End_Timestamp - Start_Timestamp)))) / (((($sclk * $numCU) * 64) * 2) / 1000)) - unit: Pct of Peak tips: - mfma_flops_bf16_pop: - value: ((100 * AVG(((SQ_INSTS_VALU_MFMA_MOPS_BF16 * 512) / (End_Timestamp - Start_Timestamp)))) - / ((($sclk * $numCU) * 512) / 1000)) - unit: Pct of Peak + VALU IOPs: + value: AVG(((64 * (SQ_INSTS_VALU_INT32 + SQ_INSTS_VALU_INT64)) / (End_Timestamp - Start_Timestamp))) + unit: GIOP + peak: (((($sclk * $numCU) * 64) * 2) / 1000) + pop: ((100 * AVG(((64 * (SQ_INSTS_VALU_INT32 + SQ_INSTS_VALU_INT64)) / (End_Timestamp + - Start_Timestamp)))) / (((($sclk * $numCU) * 64) * 2) / 1000)) tips: - mfma_flops_f16_pop: - value: ((100 * AVG(((SQ_INSTS_VALU_MFMA_MOPS_F16 * 512) / (End_Timestamp - Start_Timestamp)))) + MFMA FLOPs (BF16): + value: AVG(((SQ_INSTS_VALU_MFMA_MOPS_BF16 * 512) / (End_Timestamp - Start_Timestamp))) + unit: GFLOP + peak: ((($sclk * $numCU) * 1024) / 1000) + pop: ((100 * AVG(((SQ_INSTS_VALU_MFMA_MOPS_BF16 * 512) / (End_Timestamp - Start_Timestamp)))) / ((($sclk * $numCU) * 1024) / 1000)) - unit: Pct of Peak tips: - mfma_flops_f32_pop: - value: ((100 * AVG(((SQ_INSTS_VALU_MFMA_MOPS_F32 * 512) / (End_Timestamp - Start_Timestamp)))) - / ((($sclk * $numCU) * 256) / 1000)) - unit: Pct of Peak - tips: - mfma_flops_f64_pop: - value: ((100 * AVG(((SQ_INSTS_VALU_MFMA_MOPS_F64 * 512) / (End_Timestamp - Start_Timestamp)))) - / ((($sclk * $numCU) * 256) / 1000)) - unit: Pct of Peak - tips: - mfma_flops_i8_pop: - value: ((100 * AVG(((SQ_INSTS_VALU_MFMA_MOPS_I8 * 512) / (End_Timestamp - Start_Timestamp)))) + MFMA FLOPs (F16): + value: AVG(((SQ_INSTS_VALU_MFMA_MOPS_F16 * 512) / (End_Timestamp - Start_Timestamp))) + unit: GFLOP + peak: ((($sclk * $numCU) * 1024) / 1000) + pop: ((100 * AVG(((SQ_INSTS_VALU_MFMA_MOPS_F16 * 512) / (End_Timestamp - Start_Timestamp)))) + / ((($sclk * $numCU) * 1024) / 1000)) + tips: + MFMA FLOPs (F32): + value: AVG(((SQ_INSTS_VALU_MFMA_MOPS_F32 * 512) / (End_Timestamp - Start_Timestamp))) + unit: GFLOP + peak: ((($sclk * $numCU) * 256) / 1000) + pop: ((100 * AVG(((SQ_INSTS_VALU_MFMA_MOPS_F32 * 512) / (End_Timestamp - Start_Timestamp)))) + / ((($sclk * $numCU) * 256) / 1000)) + tips: + MFMA FLOPs (F64): + value: AVG(((SQ_INSTS_VALU_MFMA_MOPS_F64 * 512) / (End_Timestamp - Start_Timestamp))) + unit: GFLOP + peak: ((($sclk * $numCU) * 256) / 1000) + pop: ((100 * AVG(((SQ_INSTS_VALU_MFMA_MOPS_F64 * 512) / (End_Timestamp - Start_Timestamp)))) + / ((($sclk * $numCU) * 256) / 1000)) + tips: + MFMA IOPs (INT8): + value: AVG(((SQ_INSTS_VALU_MFMA_MOPS_I8 * 512) / (End_Timestamp - Start_Timestamp))) + unit: GIOP + peak: ((($sclk * $numCU) * 1024) / 1000) + pop: ((100 * AVG(((SQ_INSTS_VALU_MFMA_MOPS_I8 * 512) / (End_Timestamp - Start_Timestamp)))) / ((($sclk * $numCU) * 1024) / 1000)) - unit: Pct of Peak tips: - metric_table: @@ -63,36 +88,48 @@ Panel Config: unit: Unit tips: Tips metric: - IPC (Avg): + IPC: avg: AVG((SQ_INSTS / SQ_BUSY_CU_CYCLES)) min: MIN((SQ_INSTS / SQ_BUSY_CU_CYCLES)) max: MAX((SQ_INSTS / SQ_BUSY_CU_CYCLES)) unit: Instr/cycle tips: - IPC (Issue): - avg: AVG(((((((((SQ_INSTS_VALU + SQ_INSTS_VMEM) + SQ_INSTS_SALU) + SQ_INSTS_SMEM) - + SQ_INSTS_GDS) + SQ_INSTS_BRANCH) + SQ_INSTS_SENDMSG) + SQ_INSTS_VSKIPPED) + IPC (Issued): + avg: AVG(((((((((SQ_INSTS_VALU + SQ_INSTS_VMEM) + SQ_INSTS_SALU) + SQ_INSTS_SMEM)) + + SQ_INSTS_BRANCH) + SQ_INSTS_SENDMSG) + SQ_INSTS_VSKIPPED + SQ_INSTS_LDS) / SQ_ACTIVE_INST_ANY)) - min: MIN(((((((((SQ_INSTS_VALU + SQ_INSTS_VMEM) + SQ_INSTS_SALU) + SQ_INSTS_SMEM) - + SQ_INSTS_GDS) + SQ_INSTS_BRANCH) + SQ_INSTS_SENDMSG) + SQ_INSTS_VSKIPPED) + min: MIN(((((((((SQ_INSTS_VALU + SQ_INSTS_VMEM) + SQ_INSTS_SALU) + SQ_INSTS_SMEM)) + + SQ_INSTS_BRANCH) + SQ_INSTS_SENDMSG) + SQ_INSTS_VSKIPPED + SQ_INSTS_LDS) / SQ_ACTIVE_INST_ANY)) - max: MAX(((((((((SQ_INSTS_VALU + SQ_INSTS_VMEM) + SQ_INSTS_SALU) + SQ_INSTS_SMEM) - + SQ_INSTS_GDS) + SQ_INSTS_BRANCH) + SQ_INSTS_SENDMSG) + SQ_INSTS_VSKIPPED) + max: MAX(((((((((SQ_INSTS_VALU + SQ_INSTS_VMEM) + SQ_INSTS_SALU) + SQ_INSTS_SMEM)) + + SQ_INSTS_BRANCH) + SQ_INSTS_SENDMSG) + SQ_INSTS_VSKIPPED + SQ_INSTS_LDS) / SQ_ACTIVE_INST_ANY)) unit: Instr/cycle tips: - SALU Util: + SALU Utilization: avg: AVG((((100 * SQ_ACTIVE_INST_SCA) / GRBM_GUI_ACTIVE) / $numCU)) min: MIN((((100 * SQ_ACTIVE_INST_SCA) / GRBM_GUI_ACTIVE) / $numCU)) max: MAX((((100 * SQ_ACTIVE_INST_SCA) / GRBM_GUI_ACTIVE) / $numCU)) unit: pct tips: - VALU Util: + VALU Utilization: avg: AVG((((100 * SQ_ACTIVE_INST_VALU) / GRBM_GUI_ACTIVE) / $numCU)) min: MIN((((100 * SQ_ACTIVE_INST_VALU) / GRBM_GUI_ACTIVE) / $numCU)) max: MAX((((100 * SQ_ACTIVE_INST_VALU) / GRBM_GUI_ACTIVE) / $numCU)) unit: pct tips: + VMEM Utilization: + avg: AVG((((100 * (SQ_ACTIVE_INST_FLAT+SQ_ACTIVE_INST_VMEM)) / GRBM_GUI_ACTIVE) / $numCU)) + min: MIN((((100 * (SQ_ACTIVE_INST_FLAT+SQ_ACTIVE_INST_VMEM)) / GRBM_GUI_ACTIVE) / $numCU)) + max: MAX((((100 * (SQ_ACTIVE_INST_FLAT+SQ_ACTIVE_INST_VMEM)) / GRBM_GUI_ACTIVE) / $numCU)) + unit: pct + tips: + Branch Utilization: + avg: AVG((((100 * SQ_ACTIVE_INST_MISC) / GRBM_GUI_ACTIVE) / $numCU)) + min: MIN((((100 * SQ_ACTIVE_INST_MISC) / GRBM_GUI_ACTIVE) / $numCU)) + max: MAX((((100 * SQ_ACTIVE_INST_MISC) / GRBM_GUI_ACTIVE) / $numCU)) + unit: pct + tips: VALU Active Threads: avg: AVG(((SQ_THREAD_CYCLES_VALU / SQ_ACTIVE_INST_VALU) if (SQ_ACTIVE_INST_VALU != 0) else None)) @@ -102,7 +139,7 @@ Panel Config: != 0) else None)) unit: Threads tips: - MFMA Util: + MFMA Utilization: avg: AVG(((100 * SQ_VALU_MFMA_BUSY_CYCLES) / ((4 * $numCU) * GRBM_GUI_ACTIVE))) min: MIN(((100 * SQ_VALU_MFMA_BUSY_CYCLES) / ((4 * $numCU) * GRBM_GUI_ACTIVE))) max: MAX(((100 * SQ_VALU_MFMA_BUSY_CYCLES) / ((4 * $numCU) * GRBM_GUI_ACTIVE))) @@ -117,6 +154,26 @@ Panel Config: else None)) unit: cycles/instr tips: + VMEM Latency: + avg: AVG(((SQ_ACCUM_PREV_HIRES / SQ_INSTS_VMEM) if (SQ_INSTS_VMEM != 0) + else None)) + min: MIN(((SQ_ACCUM_PREV_HIRES / SQ_INSTS_VMEM) if (SQ_INSTS_VMEM != 0) + else None)) + max: MAX(((SQ_ACCUM_PREV_HIRES / SQ_INSTS_VMEM) if (SQ_INSTS_VMEM != 0) + else None)) + unit: Cycles + coll_level: SQ_INST_LEVEL_VMEM + tips: + SMEM Latency: + avg: AVG(((SQ_ACCUM_PREV_HIRES / SQ_INSTS_SMEM) if (SQ_INSTS_SMEM != 0) + else None)) + min: MIN(((SQ_ACCUM_PREV_HIRES / SQ_INSTS_SMEM) if (SQ_INSTS_SMEM != 0) + else None)) + max: MAX(((SQ_ACCUM_PREV_HIRES / SQ_INSTS_SMEM) if (SQ_INSTS_SMEM != 0) + else None)) + unit: Cycles + coll_level: SQ_INST_LEVEL_SMEM + tips: - metric_table: id: 1103 @@ -153,10 +210,10 @@ Panel Config: $denom)) unit: (OPs + $normUnit) tips: - INT8 OPs: - avg: AVG(((SQ_INSTS_VALU_MFMA_MOPS_I8 * 512) / $denom)) - min: MIN(((SQ_INSTS_VALU_MFMA_MOPS_I8 * 512) / $denom)) - max: MAX(((SQ_INSTS_VALU_MFMA_MOPS_I8 * 512) / $denom)) + IOPs (Total): + avg: AVG(((64 * (SQ_INSTS_VALU_INT32 + SQ_INSTS_VALU_INT64)) + (SQ_INSTS_VALU_MFMA_MOPS_I8 * 512)) / $denom) + min: MIN(((64 * (SQ_INSTS_VALU_INT32 + SQ_INSTS_VALU_INT64)) + (SQ_INSTS_VALU_MFMA_MOPS_I8 * 512)) / $denom) + max: MAX(((64 * (SQ_INSTS_VALU_INT32 + SQ_INSTS_VALU_INT64)) + (SQ_INSTS_VALU_MFMA_MOPS_I8 * 512)) / $denom) unit: (OPs + $normUnit) tips: F16 OPs: @@ -195,4 +252,9 @@ Panel Config: + (SQ_INSTS_VALU_FMA_F64 * 2))) + (512 * SQ_INSTS_VALU_MFMA_MOPS_F64)) / $denom)) unit: (OPs + $normUnit) tips: - + INT8 OPs: + avg: AVG(((SQ_INSTS_VALU_MFMA_MOPS_I8 * 512) / $denom)) + min: MIN(((SQ_INSTS_VALU_MFMA_MOPS_I8 * 512) / $denom)) + max: MAX(((SQ_INSTS_VALU_MFMA_MOPS_I8 * 512) / $denom)) + unit: (OPs + $normUnit) + tips: \ No newline at end of file diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx940/1200_lds.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx940/1200_lds.yaml index c765733051..dd049c6c78 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx940/1200_lds.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx940/1200_lds.yaml @@ -13,24 +13,27 @@ Panel Config: title: Speed-of-Light header: metric: Metric - value: Value + value: Avg + unit: Unit tips: Tips metric: Utilization: value: AVG(((100 * SQ_LDS_IDX_ACTIVE) / (GRBM_GUI_ACTIVE * $numCU))) + unit: Pct of Peak tips: Access Rate: value: AVG(((200 * SQ_ACTIVE_INST_LDS) / (GRBM_GUI_ACTIVE * $numCU))) + unit: Pct of Peak tips: - Bandwidth (Pct-of-Peak): - value: - AVG((((((SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT) * 4) * TO_INT($LDSBanks)) + Theoretical Bandwidth (% of Peak): + value: AVG((((((SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT) * 4) * TO_INT($LDSBanks)) / (End_Timestamp - Start_Timestamp)) / (($sclk * $numCU) * 0.00128))) + unit: Pct of Peak tips: Bank Conflict Rate: - value: - AVG((((SQ_LDS_BANK_CONFLICT * 3.125) / (SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT)) + value: AVG((((SQ_LDS_BANK_CONFLICT * 3.125) / (SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT)) if ((SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT) != 0) else None)) + unit: Pct of Peak tips: comparable: false # for now cli_style: simple_bar @@ -52,27 +55,28 @@ Panel Config: max: MAX((SQ_INSTS_LDS / $denom)) unit: (Instr + $normUnit) tips: - Bandwidth: - avg: - AVG(((((SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT) * 4) * TO_INT($LDSBanks)) + Theoretical Bandwidth: + avg: AVG(((((SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT) * 4) * TO_INT($LDSBanks)) / $denom)) - min: - MIN(((((SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT) * 4) * TO_INT($LDSBanks)) + min: MIN(((((SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT) * 4) * TO_INT($LDSBanks)) / $denom)) - max: - MAX(((((SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT) * 4) * TO_INT($LDSBanks)) + max: MAX(((((SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT) * 4) * TO_INT($LDSBanks)) / $denom)) unit: (Bytes + $normUnit) tips: - Bank Conficts/Access: - avg: - AVG(((SQ_LDS_BANK_CONFLICT / (SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT)) + LDS Latency: + avg: AVG(((SQ_ACCUM_PREV_HIRES / SQ_INSTS_LDS) if (SQ_INSTS_LDS != 0) else None)) + min: MIN(((SQ_ACCUM_PREV_HIRES / SQ_INSTS_LDS) if (SQ_INSTS_LDS != 0) else None)) + max: MAX(((SQ_ACCUM_PREV_HIRES / SQ_INSTS_LDS) if (SQ_INSTS_LDS != 0) else None)) + unit: Cycles + coll_level: SQ_INST_LEVEL_LDS + tips: + Bank Conflicts/Access: + avg: AVG(((SQ_LDS_BANK_CONFLICT / (SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT)) if ((SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT) != 0) else None)) - min: - MIN(((SQ_LDS_BANK_CONFLICT / (SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT)) + min: MIN(((SQ_LDS_BANK_CONFLICT / (SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT)) if ((SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT) != 0) else None)) - max: - MAX(((SQ_LDS_BANK_CONFLICT / (SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT)) + max: MAX(((SQ_LDS_BANK_CONFLICT / (SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT)) if ((SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT) != 0) else None)) unit: Conflicts/Access tips: @@ -82,7 +86,7 @@ Panel Config: max: MAX((SQ_LDS_IDX_ACTIVE / $denom)) unit: (Cycles + $normUnit) tips: - Atomic Cycles: + Atomic Return Cycles: avg: AVG((SQ_LDS_ATOMIC_RETURN / $denom)) min: MIN((SQ_LDS_ATOMIC_RETURN / $denom)) max: MAX((SQ_LDS_ATOMIC_RETURN / $denom)) @@ -110,12 +114,5 @@ Panel Config: avg: AVG((SQ_LDS_MEM_VIOLATIONS / $denom)) min: MIN((SQ_LDS_MEM_VIOLATIONS / $denom)) max: MAX((SQ_LDS_MEM_VIOLATIONS / $denom)) - unit: ( + $normUnit) + unit: (Accesses + $normUnit) tips: - LDS Latency: - avg: AVG(((SQ_ACCUM_PREV_HIRES / SQ_INSTS_LDS) if (SQ_INSTS_LDS != 0) else None)) - min: MIN(((SQ_ACCUM_PREV_HIRES / SQ_INSTS_LDS) if (SQ_INSTS_LDS != 0) else None)) - max: MAX(((SQ_ACCUM_PREV_HIRES / SQ_INSTS_LDS) if (SQ_INSTS_LDS != 0) else None)) - unit: Cycles - coll_level: SQ_INST_LEVEL_LDS - tips: diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx940/1300_instruction-cache.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx940/1300_instruction-cache.yaml index bb69b4dfcb..109e545543 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx940/1300_instruction-cache.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx940/1300_instruction-cache.yaml @@ -13,17 +13,24 @@ Panel Config: title: Speed-of-Light header: metric: Metric - value: Value + value: Avg + unit: Unit tips: Tips metric: Bandwidth: value: AVG(((SQC_ICACHE_REQ * 100000) / (($sclk * $numSQC) * (End_Timestamp - Start_Timestamp)))) + unit: Pct of Peak tips: - Cache Hit: - value: - AVG(((SQC_ICACHE_HITS * 100) / ((SQC_ICACHE_HITS + SQC_ICACHE_MISSES) + Cache Hit Rate: + value: AVG(((SQC_ICACHE_HITS * 100) / ((SQC_ICACHE_HITS + SQC_ICACHE_MISSES) + SQC_ICACHE_MISSES_DUPLICATE))) + unit: Pct of Peak + tips: + L1I-L2 Bandwidth: + value: AVG(((SQC_TC_INST_REQ * 100000) / (2 * ($sclk * $numSQC) + * (End_Timestamp - Start_Timestamp)))) + unit: Pct of Peak tips: comparable: false # for now cli_style: simple_bar @@ -63,15 +70,36 @@ Panel Config: max: MAX((SQC_ICACHE_MISSES_DUPLICATE / $denom)) unit: (Misses + $normUnit) tips: - Cache Hit: - avg: - AVG(((100 * SQC_ICACHE_HITS) / ((SQC_ICACHE_HITS + SQC_ICACHE_MISSES) + Cache Hit Rate: + avg: AVG(((100 * SQC_ICACHE_HITS) / ((SQC_ICACHE_HITS + SQC_ICACHE_MISSES) + + SQC_ICACHE_MISSES_DUPLICATE))) + min: MIN(((100 * SQC_ICACHE_HITS) / ((SQC_ICACHE_HITS + SQC_ICACHE_MISSES) + + SQC_ICACHE_MISSES_DUPLICATE))) + max: MAX(((100 * SQC_ICACHE_HITS) / ((SQC_ICACHE_HITS + SQC_ICACHE_MISSES) + SQC_ICACHE_MISSES_DUPLICATE))) - min: - MIN(((100 * SQC_ICACHE_HITS) / ((SQC_ICACHE_HITS + SQC_ICACHE_MISSES) + - SQC_ICACHE_MISSES_DUPLICATE))) - max: - MAX(((100 * SQC_ICACHE_HITS) / ((SQC_ICACHE_HITS + SQC_ICACHE_MISSES) + - SQC_ICACHE_MISSES_DUPLICATE))) unit: pct tips: + Instruction Fetch Latency: + avg: AVG((SQ_ACCUM_PREV_HIRES / SQ_IFETCH)) + min: MIN((SQ_ACCUM_PREV_HIRES / SQ_IFETCH)) + max: MAX((SQ_ACCUM_PREV_HIRES / SQ_IFETCH)) + unit: Cycles + coll_level: SQ_IFETCH_LEVEL + tips: + - metric_table: + id: 1303 + title: Instruction Cache - L2 Interface + header: + metric: Metric + mean: Mean + min: Min + max: Max + unit: Unit + tips: Tips + metric: + L1I-L2 Bandwidth: + mean: AVG(((SQC_TC_INST_REQ * 64) / $denom)) + min: MIN(((SQC_TC_INST_REQ * 64) / $denom)) + max: MAX(((SQC_TC_INST_REQ * 64) / $denom)) + unit: (Bytes + $normUnit) + tips: diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx940/1400_constant-cache.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx940/1400_constant-cache.yaml index 8e49b66757..312a760834 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx940/1400_constant-cache.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx940/1400_constant-cache.yaml @@ -12,18 +12,25 @@ Panel Config: id: 1401 title: Speed-of-Light header: - mertic: Metric - value: Value + metric: Metric + value: Avg + unit: Unit tips: Tips metric: Bandwidth: value: AVG(((SQC_DCACHE_REQ * 100000) / (($sclk * $numSQC) * (End_Timestamp - Start_Timestamp)))) + unit: Pct of Peak tips: - Cache Hit: - value: - AVG((((SQC_DCACHE_HITS * 100) / (SQC_DCACHE_HITS + SQC_DCACHE_MISSES + SQC_DCACHE_MISSES_DUPLICATE)) + Cache Hit Rate: + value: AVG((((SQC_DCACHE_HITS * 100) / (SQC_DCACHE_HITS + SQC_DCACHE_MISSES + SQC_DCACHE_MISSES_DUPLICATE)) if ((SQC_DCACHE_HITS + SQC_DCACHE_MISSES + SQC_DCACHE_MISSES_DUPLICATE) != 0) else None)) + unit: Pct of Peak + tips: + sL1D-L2 BW: + value: AVG(((SQC_TC_DATA_READ_REQ + SQC_TC_DATA_WRITE_REQ + SQC_TC_DATA_ATOMIC_REQ) * 100000) + / (2 * ($sclk * $numSQC) * (End_Timestamp - Start_Timestamp))) + unit: Pct of Peak tips: comparable: false # for now cli_style: simple_bar @@ -63,30 +70,24 @@ Panel Config: max: MAX((SQC_DCACHE_MISSES_DUPLICATE / $denom)) unit: (Req + $normUnit) tips: - Cache Hit: - avg: - AVG((((100 * SQC_DCACHE_HITS) / ((SQC_DCACHE_HITS + SQC_DCACHE_MISSES) + Cache Hit Rate: + avg: AVG((((100 * SQC_DCACHE_HITS) / ((SQC_DCACHE_HITS + SQC_DCACHE_MISSES) + SQC_DCACHE_MISSES_DUPLICATE)) if (((SQC_DCACHE_HITS + SQC_DCACHE_MISSES) + SQC_DCACHE_MISSES_DUPLICATE) != 0) else None)) - min: - MIN((((100 * SQC_DCACHE_HITS) / ((SQC_DCACHE_HITS + SQC_DCACHE_MISSES) + min: MIN((((100 * SQC_DCACHE_HITS) / ((SQC_DCACHE_HITS + SQC_DCACHE_MISSES) + SQC_DCACHE_MISSES_DUPLICATE)) if (((SQC_DCACHE_HITS + SQC_DCACHE_MISSES) + SQC_DCACHE_MISSES_DUPLICATE) != 0) else None)) - max: - MAX((((100 * SQC_DCACHE_HITS) / ((SQC_DCACHE_HITS + SQC_DCACHE_MISSES) + max: MAX((((100 * SQC_DCACHE_HITS) / ((SQC_DCACHE_HITS + SQC_DCACHE_MISSES) + SQC_DCACHE_MISSES_DUPLICATE)) if (((SQC_DCACHE_HITS + SQC_DCACHE_MISSES) + SQC_DCACHE_MISSES_DUPLICATE) != 0) else None)) unit: pct tips: Read Req (Total): - avg: - AVG((((((SQC_DCACHE_REQ_READ_1 + SQC_DCACHE_REQ_READ_2) + SQC_DCACHE_REQ_READ_4) + avg: AVG((((((SQC_DCACHE_REQ_READ_1 + SQC_DCACHE_REQ_READ_2) + SQC_DCACHE_REQ_READ_4) + SQC_DCACHE_REQ_READ_8) + SQC_DCACHE_REQ_READ_16) / $denom)) - min: - MIN((((((SQC_DCACHE_REQ_READ_1 + SQC_DCACHE_REQ_READ_2) + SQC_DCACHE_REQ_READ_4) + min: MIN((((((SQC_DCACHE_REQ_READ_1 + SQC_DCACHE_REQ_READ_2) + SQC_DCACHE_REQ_READ_4) + SQC_DCACHE_REQ_READ_8) + SQC_DCACHE_REQ_READ_16) / $denom)) - max: - MAX((((((SQC_DCACHE_REQ_READ_1 + SQC_DCACHE_REQ_READ_2) + SQC_DCACHE_REQ_READ_4) + max: MAX((((((SQC_DCACHE_REQ_READ_1 + SQC_DCACHE_REQ_READ_2) + SQC_DCACHE_REQ_READ_4) + SQC_DCACHE_REQ_READ_8) + SQC_DCACHE_REQ_READ_16) / $denom)) unit: (Req + $normUnit) tips: @@ -138,6 +139,12 @@ Panel Config: unit: Unit tips: Tips metric: + sL1D-L2 BW: + avg: AVG(((((SQC_TC_DATA_READ_REQ + SQC_TC_DATA_WRITE_REQ + SQC_TC_DATA_ATOMIC_REQ) * 64)) / $denom)) + min: MIN(((((SQC_TC_DATA_READ_REQ + SQC_TC_DATA_WRITE_REQ + SQC_TC_DATA_ATOMIC_REQ) * 64)) / $denom)) + max: MAX(((((SQC_TC_DATA_READ_REQ + SQC_TC_DATA_WRITE_REQ + SQC_TC_DATA_ATOMIC_REQ) * 64)) / $denom)) + unit: (Bytes + $normUnit) + tips: Read Req: avg: AVG((SQC_TC_DATA_READ_REQ / $denom)) min: MIN((SQC_TC_DATA_READ_REQ / $denom)) @@ -156,7 +163,7 @@ Panel Config: max: MAX((SQC_TC_DATA_ATOMIC_REQ / $denom)) unit: (Req + $normUnit) tips: - Stall: + Stall Cycles: avg: AVG((SQC_TC_STALL / $denom)) min: MIN((SQC_TC_STALL / $denom)) max: MAX((SQC_TC_STALL / $denom)) diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx940/1500_TA_and_TD.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx940/1500_TA_and_TD.yaml index 03af854976..08993f38c9 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx940/1500_TA_and_TD.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx940/1500_TA_and_TD.yaml @@ -6,11 +6,11 @@ Metric Description: # Define the panel properties and properties of each metric in the panel. Panel Config: id: 1500 - title: Texture Addresser and Texture Data (TA/TD) + title: Address Processing Unit and Data Return Path (TA/TD) data source: - metric_table: id: 1501 - title: TA + title: Address Processing Unit header: metric: Metric avg: Avg @@ -19,25 +19,25 @@ Panel Config: unit: Unit tips: Tips metric: - TA Busy: + Address Processing Unit Busy: avg: AVG(((100 * TA_TA_BUSY_sum) / (GRBM_GUI_ACTIVE * $numCU))) min: MIN(((100 * TA_TA_BUSY_sum) / (GRBM_GUI_ACTIVE * $numCU))) max: MAX(((100 * TA_TA_BUSY_sum) / (GRBM_GUI_ACTIVE * $numCU))) unit: pct tips: - TC2TA Addr Stall: + Address Stall: avg: AVG(((100 * TA_ADDR_STALLED_BY_TC_CYCLES_sum) / (GRBM_GUI_ACTIVE * $numCU))) min: MIN(((100 * TA_ADDR_STALLED_BY_TC_CYCLES_sum) / (GRBM_GUI_ACTIVE * $numCU))) max: MAX(((100 * TA_ADDR_STALLED_BY_TC_CYCLES_sum) / (GRBM_GUI_ACTIVE * $numCU))) unit: pct tips: - TC2TA Data Stall: + Data Stall: avg: AVG(((100 * TA_DATA_STALLED_BY_TC_CYCLES_sum) / (GRBM_GUI_ACTIVE * $numCU))) min: MIN(((100 * TA_DATA_STALLED_BY_TC_CYCLES_sum) / (GRBM_GUI_ACTIVE * $numCU))) max: MAX(((100 * TA_DATA_STALLED_BY_TC_CYCLES_sum) / (GRBM_GUI_ACTIVE * $numCU))) unit: pct tips: - TD2TA Addr Stall: + Data-Processor → Address Stall: avg: AVG(((100 * TA_ADDR_STALLED_BY_TD_CYCLES_sum) / (GRBM_GUI_ACTIVE * $numCU))) min: MIN(((100 * TA_ADDR_STALLED_BY_TD_CYCLES_sum) / (GRBM_GUI_ACTIVE * $numCU))) max: MAX(((100 * TA_ADDR_STALLED_BY_TD_CYCLES_sum) / (GRBM_GUI_ACTIVE * $numCU))) @@ -47,69 +47,69 @@ Panel Config: avg: AVG((TA_TOTAL_WAVEFRONTS_sum / $denom)) min: MIN((TA_TOTAL_WAVEFRONTS_sum / $denom)) max: MAX((TA_TOTAL_WAVEFRONTS_sum / $denom)) - unit: (Instr + $normUnit) + unit: (Instructions + $normUnit) tips: - Flat Instr: + Global/Generic Instructions: avg: AVG((TA_FLAT_WAVEFRONTS_sum / $denom)) min: MIN((TA_FLAT_WAVEFRONTS_sum / $denom)) max: MAX((TA_FLAT_WAVEFRONTS_sum / $denom)) - unit: (Instr + $normUnit) + unit: (Instructions + $normUnit) tips: - Flat Read Instr: + Global/Generic Read Instructions: avg: AVG((TA_FLAT_READ_WAVEFRONTS_sum / $denom)) min: MIN((TA_FLAT_READ_WAVEFRONTS_sum / $denom)) max: MAX((TA_FLAT_READ_WAVEFRONTS_sum / $denom)) - unit: (Instr + $normUnit) + unit: (Instructions + $normUnit) tips: - Flat Write Instr: + Global/Generic Write Instructions: avg: AVG((TA_FLAT_WRITE_WAVEFRONTS_sum / $denom)) min: MIN((TA_FLAT_WRITE_WAVEFRONTS_sum / $denom)) max: MAX((TA_FLAT_WRITE_WAVEFRONTS_sum / $denom)) - unit: (Instr + $normUnit) + unit: (Instructions + $normUnit) tips: - Flat Atomic Instr: + Global/Generic Atomic Instructions: avg: AVG((TA_FLAT_ATOMIC_WAVEFRONTS_sum / $denom)) min: MIN((TA_FLAT_ATOMIC_WAVEFRONTS_sum / $denom)) max: MAX((TA_FLAT_ATOMIC_WAVEFRONTS_sum / $denom)) - unit: (Instr + $normUnit) + unit: (Instructions + $normUnit) tips: - Buffer Instr: + Spill/Stack Instructions: avg: AVG((TA_BUFFER_WAVEFRONTS_sum / $denom)) min: MIN((TA_BUFFER_WAVEFRONTS_sum / $denom)) max: MAX((TA_BUFFER_WAVEFRONTS_sum / $denom)) - unit: (Instr + $normUnit) + unit: (Instructions + $normUnit) tips: - Buffer Read Instr: + Spill/Stack Read Instructions: avg: AVG((TA_BUFFER_READ_WAVEFRONTS_sum / $denom)) min: MIN((TA_BUFFER_READ_WAVEFRONTS_sum / $denom)) max: MAX((TA_BUFFER_READ_WAVEFRONTS_sum / $denom)) - unit: (Instr + $normUnit) + unit: (Instructions + $normUnit) tips: - Buffer Write Instr: + Spill/Stack Write Instructions: avg: AVG((TA_BUFFER_WRITE_WAVEFRONTS_sum / $denom)) min: MIN((TA_BUFFER_WRITE_WAVEFRONTS_sum / $denom)) max: MAX((TA_BUFFER_WRITE_WAVEFRONTS_sum / $denom)) - unit: (Instr + $normUnit) + unit: (Instructions + $normUnit) tips: - Buffer Atomic Instr: + Spill/Stack Atomic Instructions: avg: AVG((TA_BUFFER_ATOMIC_WAVEFRONTS_sum / $denom)) min: MIN((TA_BUFFER_ATOMIC_WAVEFRONTS_sum / $denom)) max: MAX((TA_BUFFER_ATOMIC_WAVEFRONTS_sum / $denom)) - unit: (Instr + $normUnit) + unit: (Instructions + $normUnit) tips: - Buffer Total Cylces: + Spill/Stack Total Cycles: avg: AVG((TA_BUFFER_TOTAL_CYCLES_sum / $denom)) min: MIN((TA_BUFFER_TOTAL_CYCLES_sum / $denom)) max: MAX((TA_BUFFER_TOTAL_CYCLES_sum / $denom)) unit: (Cycles + $normUnit) tips: - Buffer Coalesced Read: + Spill/Stack Coalesced Read: avg: AVG((TA_BUFFER_COALESCED_READ_CYCLES_sum / $denom)) min: MIN((TA_BUFFER_COALESCED_READ_CYCLES_sum / $denom)) max: MAX((TA_BUFFER_COALESCED_READ_CYCLES_sum / $denom)) unit: (Cycles + $normUnit) tips: - Buffer Coalesced Write: + Spill/Stack Coalesced Write: avg: AVG((TA_BUFFER_COALESCED_WRITE_CYCLES_sum / $denom)) min: MIN((TA_BUFFER_COALESCED_WRITE_CYCLES_sum / $denom)) max: MAX((TA_BUFFER_COALESCED_WRITE_CYCLES_sum / $denom)) @@ -118,7 +118,7 @@ Panel Config: - metric_table: id: 1502 - title: TD + title: Data-Return Path header: metric: Metric avg: Avg @@ -127,48 +127,48 @@ Panel Config: unit: Unit tips: Tips metric: - TD Busy: + Data-Return Busy: avg: AVG(((100 * TD_TD_BUSY_sum) / (GRBM_GUI_ACTIVE * $numCU))) min: MIN(((100 * TD_TD_BUSY_sum) / (GRBM_GUI_ACTIVE * $numCU))) max: MAX(((100 * TD_TD_BUSY_sum) / (GRBM_GUI_ACTIVE * $numCU))) unit: pct tips: - TC2TD Stall: + Cache RAM → Data-Return Stall: avg: AVG(((100 * TD_TC_STALL_sum) / (GRBM_GUI_ACTIVE * $numCU))) min: MIN(((100 * TD_TC_STALL_sum) / (GRBM_GUI_ACTIVE * $numCU))) max: MAX(((100 * TD_TC_STALL_sum) / (GRBM_GUI_ACTIVE * $numCU))) unit: pct tips: - SPI2TD Stall: + Workgroup manager → Data-Return Stall: avg: AVG(((100 * TD_SPI_STALL_sum) / (GRBM_GUI_ACTIVE * $numCU))) min: MIN(((100 * TD_SPI_STALL_sum) / (GRBM_GUI_ACTIVE * $numCU))) max: MAX(((100 * TD_SPI_STALL_sum) / (GRBM_GUI_ACTIVE * $numCU))) unit: pct tips: - Coalescable Instr: + Coalescable Instructions: avg: AVG((TD_COALESCABLE_WAVEFRONT_sum / $denom)) min: MIN((TD_COALESCABLE_WAVEFRONT_sum / $denom)) max: MAX((TD_COALESCABLE_WAVEFRONT_sum / $denom)) - unit: (Instr + $normUnit) + unit: (Instructions + $normUnit) tips: - Load Instr: + Read Instructions: avg: AVG((((TD_LOAD_WAVEFRONT_sum - TD_STORE_WAVEFRONT_sum) - TD_ATOMIC_WAVEFRONT_sum) / $denom)) min: MIN((((TD_LOAD_WAVEFRONT_sum - TD_STORE_WAVEFRONT_sum) - TD_ATOMIC_WAVEFRONT_sum) / $denom)) max: MAX((((TD_LOAD_WAVEFRONT_sum - TD_STORE_WAVEFRONT_sum) - TD_ATOMIC_WAVEFRONT_sum) / $denom)) - unit: (Instr + $normUnit) + unit: (Instructions + $normUnit) tips: - Store Instr: + Write Instructions: avg: AVG((TD_STORE_WAVEFRONT_sum / $denom)) min: MIN((TD_STORE_WAVEFRONT_sum / $denom)) max: MAX((TD_STORE_WAVEFRONT_sum / $denom)) - unit: (Instr + $normUnit) + unit: (Instructions + $normUnit) tips: - Atomic Instr: + Atomic Instructions: avg: AVG((TD_ATOMIC_WAVEFRONT_sum / $denom)) min: MIN((TD_ATOMIC_WAVEFRONT_sum / $denom)) max: MAX((TD_ATOMIC_WAVEFRONT_sum / $denom)) - unit: (Instr + $normUnit) - tips: + unit: (Instructions + $normUnit) + tips: \ No newline at end of file diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx940/1600_L1_cache.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx940/1600_L1_cache.yaml index 4fe54909b0..2d1b3a133b 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx940/1600_L1_cache.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx940/1600_L1_cache.yaml @@ -13,31 +13,32 @@ Panel Config: title: Speed-of-Light header: metric: Metric - value: Value + value: Avg + unit: Unit tips: Tips metric: - Buffer Coalescing: - value: - AVG(((((TA_TOTAL_WAVEFRONTS_sum * 64) * 100) / (TCP_TOTAL_ACCESSES_sum - * 4)) if (TCP_TOTAL_ACCESSES_sum != 0) else None)) - tips: - Cache Util: - value: - AVG((((TCP_GATE_EN2_sum * 100) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum - != 0) else None)) - tips: - Cache BW: - value: - ((100 * AVG(((TCP_TOTAL_CACHE_ACCESSES_sum * 64) / (End_Timestamp - Start_Timestamp)))) - / ((($sclk / 1000) * 64) * $numCU)) - tips: - Cache Hit: - value: - AVG(((100 - ((100 * (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + Hit rate: + value: AVG(((100 - ((100 * (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + TCP_TCC_ATOMIC_WITH_RET_REQ_sum) + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum)) / TCP_TOTAL_CACHE_ACCESSES_sum)) if (TCP_TOTAL_CACHE_ACCESSES_sum != 0) else None)) + unit: Pct of Peak tips: + Bandwidth: + value: ((100 * AVG(((TCP_TOTAL_CACHE_ACCESSES_sum * 64) / (End_Timestamp - Start_Timestamp)))) + / ((($sclk / 1000) * 64) * $numCU)) + unit: Pct of Peak + tips: + Utilization: + value: AVG((((TCP_GATE_EN2_sum * 100) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum + != 0) else None)) + unit: Pct of Peak + tips: + Coalescing: + value: AVG(((((TA_TOTAL_WAVEFRONTS_sum * 64) * 100) / (TCP_TOTAL_ACCESSES_sum + * 4)) if (TCP_TOTAL_ACCESSES_sum != 0) else None)) + unit: Pct of Peak + tips: comparable: false # for now cli_style: simple_bar @@ -106,23 +107,35 @@ Panel Config: unit: (Req + $normUnit) tips: Atomic Req: - avg: - AVG(((TCP_TOTAL_ATOMIC_WITH_RET_sum + TCP_TOTAL_ATOMIC_WITHOUT_RET_sum) + avg: AVG(((TCP_TOTAL_ATOMIC_WITH_RET_sum + TCP_TOTAL_ATOMIC_WITHOUT_RET_sum) / $denom)) - min: - MIN(((TCP_TOTAL_ATOMIC_WITH_RET_sum + TCP_TOTAL_ATOMIC_WITHOUT_RET_sum) + min: MIN(((TCP_TOTAL_ATOMIC_WITH_RET_sum + TCP_TOTAL_ATOMIC_WITHOUT_RET_sum) / $denom)) - max: - MAX(((TCP_TOTAL_ATOMIC_WITH_RET_sum + TCP_TOTAL_ATOMIC_WITHOUT_RET_sum) + max: MAX(((TCP_TOTAL_ATOMIC_WITH_RET_sum + TCP_TOTAL_ATOMIC_WITHOUT_RET_sum) / $denom)) unit: (Req + $normUnit) tips: Cache BW: - avg: AVG(((TCP_TOTAL_CACHE_ACCESSES_sum * 64) / (End_Timestamp - Start_Timestamp))) - min: MIN(((TCP_TOTAL_CACHE_ACCESSES_sum * 64) / (End_Timestamp - Start_Timestamp))) - max: MAX(((TCP_TOTAL_CACHE_ACCESSES_sum * 64) / (End_Timestamp - Start_Timestamp))) - unit: GB/s + avg: AVG(((TCP_TOTAL_CACHE_ACCESSES_sum * 64) / $denom)) + min: MIN(((TCP_TOTAL_CACHE_ACCESSES_sum * 64) / $denom)) + max: MAX(((TCP_TOTAL_CACHE_ACCESSES_sum * 64) / $denom)) + unit: (Bytes + $normUnit) tips: + Cache Hit Rate: + avg: AVG(((100 - ((100 * (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + + TCP_TCC_ATOMIC_WITH_RET_REQ_sum) + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum)) / + TCP_TOTAL_CACHE_ACCESSES_sum)) if (TCP_TOTAL_CACHE_ACCESSES_sum != 0) else + None)) + min: MIN(((100 - ((100 * (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + + TCP_TCC_ATOMIC_WITH_RET_REQ_sum) + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum)) / + TCP_TOTAL_CACHE_ACCESSES_sum)) if (TCP_TOTAL_CACHE_ACCESSES_sum != 0) else + None)) + max: MAX(((100 - ((100 * (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + + TCP_TCC_ATOMIC_WITH_RET_REQ_sum) + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum)) / + TCP_TOTAL_CACHE_ACCESSES_sum)) if (TCP_TOTAL_CACHE_ACCESSES_sum != 0) else + None)) + unit: pct + tips: Cache Accesses: avg: AVG((TCP_TOTAL_CACHE_ACCESSES_sum / $denom)) min: MIN((TCP_TOTAL_CACHE_ACCESSES_sum / $denom)) @@ -130,53 +143,29 @@ Panel Config: unit: (Req + $normUnit) tips: Cache Hits: - avg: - AVG(((TCP_TOTAL_CACHE_ACCESSES_sum - (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + avg: AVG(((TCP_TOTAL_CACHE_ACCESSES_sum - (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + TCP_TCC_ATOMIC_WITH_RET_REQ_sum) + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum)) / $denom)) - min: - MIN(((TCP_TOTAL_CACHE_ACCESSES_sum - (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + min: MIN(((TCP_TOTAL_CACHE_ACCESSES_sum - (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + TCP_TCC_ATOMIC_WITH_RET_REQ_sum) + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum)) / $denom)) - max: - MAX(((TCP_TOTAL_CACHE_ACCESSES_sum - (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + max: MAX(((TCP_TOTAL_CACHE_ACCESSES_sum - (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + TCP_TCC_ATOMIC_WITH_RET_REQ_sum) + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum)) / $denom)) unit: (Req + $normUnit) tips: - Cache Hit Rate: - avg: - AVG(((100 - ((100 * (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + - TCP_TCC_ATOMIC_WITH_RET_REQ_sum) + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum)) / - TCP_TOTAL_CACHE_ACCESSES_sum)) if (TCP_TOTAL_CACHE_ACCESSES_sum != 0) else - None)) - min: - MIN(((100 - ((100 * (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + - TCP_TCC_ATOMIC_WITH_RET_REQ_sum) + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum)) / - TCP_TOTAL_CACHE_ACCESSES_sum)) if (TCP_TOTAL_CACHE_ACCESSES_sum != 0) else - None)) - max: - MAX(((100 - ((100 * (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + - TCP_TCC_ATOMIC_WITH_RET_REQ_sum) + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum)) / - TCP_TOTAL_CACHE_ACCESSES_sum)) if (TCP_TOTAL_CACHE_ACCESSES_sum != 0) else - None)) - unit: pct - tips: - Invalidate: + Invalidations: avg: AVG((TCP_TOTAL_WRITEBACK_INVALIDATES_sum / $denom)) min: MIN((TCP_TOTAL_WRITEBACK_INVALIDATES_sum / $denom)) max: MAX((TCP_TOTAL_WRITEBACK_INVALIDATES_sum / $denom)) unit: (Req + $normUnit) tips: L1-L2 BW: - avg: - AVG(((64 * (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + TCP_TCC_ATOMIC_WITH_RET_REQ_sum) + avg: AVG(((64 * (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + TCP_TCC_ATOMIC_WITH_RET_REQ_sum) + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum)) / $denom)) - min: - AVG(((64 * (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + TCP_TCC_ATOMIC_WITH_RET_REQ_sum) + min: MIN(((64 * (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + TCP_TCC_ATOMIC_WITH_RET_REQ_sum) + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum)) / $denom)) - max: - AVG(((64 * (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + TCP_TCC_ATOMIC_WITH_RET_REQ_sum) + max: MAX(((64 * (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + TCP_TCC_ATOMIC_WITH_RET_REQ_sum) + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum)) / $denom)) unit: (Bytes + $normUnit) tips: @@ -193,54 +182,30 @@ Panel Config: unit: (Req + $normUnit) tips: L1-L2 Atomic: - avg: - AVG(((TCP_TCC_ATOMIC_WITH_RET_REQ_sum + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum) + avg: AVG(((TCP_TCC_ATOMIC_WITH_RET_REQ_sum + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum) / $denom)) - min: - MIN(((TCP_TCC_ATOMIC_WITH_RET_REQ_sum + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum) + min: MIN(((TCP_TCC_ATOMIC_WITH_RET_REQ_sum + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum) / $denom)) - max: - MAX(((TCP_TCC_ATOMIC_WITH_RET_REQ_sum + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum) + max: MAX(((TCP_TCC_ATOMIC_WITH_RET_REQ_sum + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum) / $denom)) unit: (Req + $normUnit) tips: L1 Access Latency: - avg: - # AVG(((TCP_TCP_LATENCY_sum / TCP_TA_TCP_STATE_READ_sum) if (TCP_TA_TCP_STATE_READ_sum - # != 0) else None)) - min: - # MIN(((TCP_TCP_LATENCY_sum / TCP_TA_TCP_STATE_READ_sum) if (TCP_TA_TCP_STATE_READ_sum - # != 0) else None)) - max: - # MAX(((TCP_TCP_LATENCY_sum / TCP_TA_TCP_STATE_READ_sum) if (TCP_TA_TCP_STATE_READ_sum - # != 0) else None)) + avg: None # Missing perfmon + min: None # Missing perfmon + max: None # Missing perfmon unit: Cycles tips: L1-L2 Read Latency: - avg: - # AVG(((TCP_TCC_READ_REQ_LATENCY_sum / (TCP_TCC_READ_REQ_sum + TCP_TCC_ATOMIC_WITH_RET_REQ_sum)) - # if ((TCP_TCC_READ_REQ_sum + TCP_TCC_ATOMIC_WITH_RET_REQ_sum) != 0) else None)) - min: - # MIN(((TCP_TCC_READ_REQ_LATENCY_sum / (TCP_TCC_READ_REQ_sum + TCP_TCC_ATOMIC_WITH_RET_REQ_sum)) - # if ((TCP_TCC_READ_REQ_sum + TCP_TCC_ATOMIC_WITH_RET_REQ_sum) != 0) else None)) - max: - # MAX(((TCP_TCC_READ_REQ_LATENCY_sum / (TCP_TCC_READ_REQ_sum + TCP_TCC_ATOMIC_WITH_RET_REQ_sum)) - # if ((TCP_TCC_READ_REQ_sum + TCP_TCC_ATOMIC_WITH_RET_REQ_sum) != 0) else None)) + avg: None # Missing perfmon + min: None # Missing perfmon + max: None # Missing perfmon unit: Cycles tips: L1-L2 Write Latency: - avg: - # AVG(((TCP_TCC_WRITE_REQ_LATENCY_sum / (TCP_TCC_WRITE_REQ_sum + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum)) - # if ((TCP_TCC_WRITE_REQ_sum + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum) != 0) else - # None)) - min: - # MIN(((TCP_TCC_WRITE_REQ_LATENCY_sum / (TCP_TCC_WRITE_REQ_sum + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum)) - # if ((TCP_TCC_WRITE_REQ_sum + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum) != 0) else - # None)) - max: - # MAX(((TCP_TCC_WRITE_REQ_LATENCY_sum / (TCP_TCC_WRITE_REQ_sum + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum)) - # if ((TCP_TCC_WRITE_REQ_sum + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum) != 0) else - # None)) + avg: None # Missing perfmon + min: None # Missing perfmon + max: None # Missing perfmon unit: Cycles tips: @@ -369,17 +334,14 @@ Panel Config: avg: AVG((TCP_UTCL1_REQUEST_sum / $denom)) min: MIN((TCP_UTCL1_REQUEST_sum / $denom)) max: MAX((TCP_UTCL1_REQUEST_sum / $denom)) - units: ( + $normUnit) + units: (Req + $normUnit) tips: Hit Ratio: - avg: - AVG((((100 * TCP_UTCL1_TRANSLATION_HIT_sum) / TCP_UTCL1_REQUEST_sum) if + avg: AVG((((100 * TCP_UTCL1_TRANSLATION_HIT_sum) / TCP_UTCL1_REQUEST_sum) if (TCP_UTCL1_REQUEST_sum != 0) else None)) - min: - MIN((((100 * TCP_UTCL1_TRANSLATION_HIT_sum) / TCP_UTCL1_REQUEST_sum) if + min: MIN((((100 * TCP_UTCL1_TRANSLATION_HIT_sum) / TCP_UTCL1_REQUEST_sum) if (TCP_UTCL1_REQUEST_sum != 0) else None)) - max: - MAX((((100 * TCP_UTCL1_TRANSLATION_HIT_sum) / TCP_UTCL1_REQUEST_sum) if + max: MAX((((100 * TCP_UTCL1_TRANSLATION_HIT_sum) / TCP_UTCL1_REQUEST_sum) if (TCP_UTCL1_REQUEST_sum != 0) else None)) units: pct tips: @@ -387,17 +349,17 @@ Panel Config: avg: AVG((TCP_UTCL1_TRANSLATION_HIT_sum / $denom)) min: MIN((TCP_UTCL1_TRANSLATION_HIT_sum / $denom)) max: MAX((TCP_UTCL1_TRANSLATION_HIT_sum / $denom)) - units: ( + $normUnit) + units: (Req + $normUnit) tips: - Misses (Translation): + Translation Misses: avg: AVG((TCP_UTCL1_TRANSLATION_MISS_sum / $denom)) min: MIN((TCP_UTCL1_TRANSLATION_MISS_sum / $denom)) max: MAX((TCP_UTCL1_TRANSLATION_MISS_sum / $denom)) - units: ( + $normUnit) + units: (Req + $normUnit) tips: - Misses (Permission): + Permission Misses: avg: AVG((TCP_UTCL1_PERMISSION_MISS_sum / $denom)) min: MIN((TCP_UTCL1_PERMISSION_MISS_sum / $denom)) max: MAX((TCP_UTCL1_PERMISSION_MISS_sum / $denom)) - units: ( + $normUnit) + units: (Req + $normUnit) tips: diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx940/1700_L2_cache.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx940/1700_L2_cache.yaml index 64644851dd..09c7c67d2a 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx940/1700_L2_cache.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx940/1700_L2_cache.yaml @@ -13,29 +13,30 @@ Panel Config: title: Speed-of-Light header: metric: Metric - value: Value + value: Avg unit: Unit tips: Tips metric: - L2 Util: + Utilization: value: AVG(((TCC_BUSY_sum * 100) / (TO_INT($L2Banks) * GRBM_GUI_ACTIVE))) unit: pct tips: - Cache Hit: - value: - AVG((((100 * TCC_HIT_sum) / (TCC_HIT_sum + TCC_MISS_sum)) if ((TCC_HIT_sum + Bandwidth: + value: ((100 * AVG(((TCC_REQ_sum * 128) / (End_Timestamp - Start_Timestamp)))) / ((($sclk / 1000) * 128) * TO_INT($L2Banks))) + unit: pct + tips: + Hit Rate: + value: AVG((((100 * TCC_HIT_sum) / (TCC_HIT_sum + TCC_MISS_sum)) if ((TCC_HIT_sum + TCC_MISS_sum) != 0) else 0)) unit: pct tips: - L2-EA Rd BW: - value: - AVG((((TCC_EA0_RDREQ_32B_sum * 32) + ((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_32B_sum) + L2-Fabric Read BW: + value: AVG((((TCC_EA0_RDREQ_32B_sum * 32) + ((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_32B_sum) * 64)) / (End_Timestamp - Start_Timestamp))) unit: GB/s tips: - L2-EA Wr BW: - value: - AVG((((TCC_EA0_WRREQ_64B_sum * 64) + ((TCC_EA0_WRREQ_sum - TCC_EA0_WRREQ_64B_sum) + L2-Fabric Write and Atomic BW: + value: AVG((((TCC_EA0_WRREQ_64B_sum * 64) + ((TCC_EA0_WRREQ_sum - TCC_EA0_WRREQ_64B_sum) * 32)) / (End_Timestamp - Start_Timestamp))) unit: GB/s tips: @@ -51,19 +52,34 @@ Panel Config: unit: Unit tips: Tips metric: - Read BW: - avg: - AVG((((TCC_EA0_RDREQ_32B_sum * 32) + ((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_32B_sum) + L2-Fabric Read BW: + avg: AVG((((TCC_EA0_RDREQ_32B_sum * 32) + ((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_32B_sum) * 64)) / $denom)) - min: - MIN((((TCC_EA0_RDREQ_32B_sum * 32) + ((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_32B_sum) + min: MIN((((TCC_EA0_RDREQ_32B_sum * 32) + ((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_32B_sum) * 64)) / $denom)) - max: - MAX((((TCC_EA0_RDREQ_32B_sum * 32) + ((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_32B_sum) + max: MAX((((TCC_EA0_RDREQ_32B_sum * 32) + ((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_32B_sum) * 64)) / $denom)) unit: (Bytes + $normUnit) tips: - Write BW: + HBM Read Traffic: + avg: AVG((100 * (TCC_EA0_RDREQ_DRAM_sum / TCC_EA0_RDREQ_sum) if (TCC_EA0_RDREQ_sum != 0) else None)) + min: MIN((100 * (TCC_EA0_RDREQ_DRAM_sum / TCC_EA0_RDREQ_sum) if (TCC_EA0_RDREQ_sum != 0) else None)) + max: MAX((100 * (TCC_EA0_RDREQ_DRAM_sum / TCC_EA0_RDREQ_sum) if (TCC_EA0_RDREQ_sum != 0) else None)) + unit: pct + tips: + Remote Read Traffic: + avg: AVG((100 * ((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_DRAM_sum) / TCC_EA0_RDREQ_sum) if (TCC_EA0_RDREQ_sum != 0) else None)) + min: MIN((100 * ((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_DRAM_sum) / TCC_EA0_RDREQ_sum) if (TCC_EA0_RDREQ_sum != 0) else None)) + max: MAX((100 * ((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_DRAM_sum) / TCC_EA0_RDREQ_sum) if (TCC_EA0_RDREQ_sum != 0) else None)) + unit: pct + tips: + Uncached Read Traffic: + avg: AVG((100 * (TCC_EA0_RD_UNCACHED_32B_sum / TCC_EA0_RDREQ_sum) if (TCC_EA0_RDREQ_sum != 0) else None)) + min: MIN((100 * (TCC_EA0_RD_UNCACHED_32B_sum / TCC_EA0_RDREQ_sum) if (TCC_EA0_RDREQ_sum != 0) else None)) + max: MAX((100 * (TCC_EA0_RD_UNCACHED_32B_sum / TCC_EA0_RDREQ_sum) if (TCC_EA0_RDREQ_sum != 0) else None)) + unit: pct + tips: + L2-Fabric Write and Atomic BW: avg: AVG((((TCC_EA0_WRREQ_64B_sum * 64) + ((TCC_EA0_WRREQ_sum - TCC_EA0_WRREQ_64B_sum) * 32)) / $denom)) @@ -75,118 +91,67 @@ Panel Config: * 32)) / $denom)) unit: (Bytes + $normUnit) tips: - Read (32B): - avg: AVG((TCC_EA0_RDREQ_32B_sum / $denom)) - min: MIN((TCC_EA0_RDREQ_32B_sum / $denom)) - max: MAX((TCC_EA0_RDREQ_32B_sum / $denom)) - unit: (Req + $normUnit) + HBM Write and Atomic Traffic: + avg: AVG((100 * (TCC_EA0_WRREQ_DRAM_sum / TCC_EA0_WRREQ_sum) if (TCC_EA0_WRREQ_sum != 0) else None)) + min: MIN((100 * (TCC_EA0_WRREQ_DRAM_sum / TCC_EA0_WRREQ_sum) if (TCC_EA0_WRREQ_sum != 0) else None)) + max: MAX((100 * (TCC_EA0_WRREQ_DRAM_sum / TCC_EA0_WRREQ_sum) if (TCC_EA0_WRREQ_sum != 0) else None)) + unit: pct tips: - Read (Uncached 32B): - avg: AVG((TCC_EA0_RD_UNCACHED_32B_sum / $denom)) - min: MIN((TCC_EA0_RD_UNCACHED_32B_sum / $denom)) - max: MAX((TCC_EA0_RD_UNCACHED_32B_sum / $denom)) - unit: (Req + $normUnit) + Remote Write and Atomic Traffic: + avg: AVG((100 * ((TCC_EA0_WRREQ_sum - TCC_EA0_WRREQ_DRAM_sum) / TCC_EA0_WRREQ_sum) if (TCC_EA0_WRREQ_sum != 0) else None)) + min: MIN((100 * ((TCC_EA0_WRREQ_sum - TCC_EA0_WRREQ_DRAM_sum) / TCC_EA0_WRREQ_sum) if (TCC_EA0_WRREQ_sum != 0) else None)) + max: MAX((100 * ((TCC_EA0_WRREQ_sum - TCC_EA0_WRREQ_DRAM_sum) / TCC_EA0_WRREQ_sum) if (TCC_EA0_WRREQ_sum != 0) else None)) + unit: pct tips: - Read (64B): - avg: AVG(((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_32B_sum) / $denom)) - min: MIN(((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_32B_sum) / $denom)) - max: MAX(((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_32B_sum) / $denom)) - unit: (Req + $normUnit) + Atomic Traffic: + avg: AVG((100 * (TCC_EA0_ATOMIC_sum / TCC_EA0_WRREQ_sum) if (TCC_EA0_WRREQ_sum != 0) else None)) + min: MIN((100 * (TCC_EA0_ATOMIC_sum / TCC_EA0_WRREQ_sum) if (TCC_EA0_WRREQ_sum != 0) else None)) + max: MAX((100 * (TCC_EA0_ATOMIC_sum / TCC_EA0_WRREQ_sum) if (TCC_EA0_WRREQ_sum != 0) else None)) + unit: pct tips: - HBM Read: - avg: AVG((TCC_EA0_RDREQ_DRAM_sum / $denom)) - min: MIN((TCC_EA0_RDREQ_DRAM_sum / $denom)) - max: MAX((TCC_EA0_RDREQ_DRAM_sum / $denom)) - unit: (Req + $normUnit) - tips: - Write (32B): - avg: AVG(((TCC_EA0_WRREQ_sum - TCC_EA0_WRREQ_64B_sum) / $denom)) - min: MIN(((TCC_EA0_WRREQ_sum - TCC_EA0_WRREQ_64B_sum) / $denom)) - max: MAX(((TCC_EA0_WRREQ_sum - TCC_EA0_WRREQ_64B_sum) / $denom)) - unit: (Req + $normUnit) - tips: - Write (Uncached 32B): - avg: AVG((TCC_EA0_WR_UNCACHED_32B_sum / $denom)) - min: MIN((TCC_EA0_WR_UNCACHED_32B_sum / $denom)) - max: MAX((TCC_EA0_WR_UNCACHED_32B_sum / $denom)) - unit: (Req + $normUnit) - tips: - Write (64B): - avg: AVG((TCC_EA0_WRREQ_64B_sum / $denom)) - min: MIN((TCC_EA0_WRREQ_64B_sum / $denom)) - max: MAX((TCC_EA0_WRREQ_64B_sum / $denom)) - unit: (Req + $normUnit) - tips: - HBM Write: - avg: AVG((TCC_EA0_WRREQ_DRAM_sum / $denom)) - min: MIN((TCC_EA0_WRREQ_DRAM_sum / $denom)) - max: MAX((TCC_EA0_WRREQ_DRAM_sum / $denom)) - unit: (Req + $normUnit) + Uncached Write and Atomic Traffic: + avg: AVG((100 * (TCC_EA0_WR_UNCACHED_32B_sum / TCC_EA0_WRREQ_sum) if (TCC_EA0_WRREQ_sum != 0) else None)) + min: MIN((100 * (TCC_EA0_WR_UNCACHED_32B_sum / TCC_EA0_WRREQ_sum) if (TCC_EA0_WRREQ_sum != 0) else None)) + max: MAX((100 * (TCC_EA0_WR_UNCACHED_32B_sum / TCC_EA0_WRREQ_sum) if (TCC_EA0_WRREQ_sum != 0) else None)) + unit: pct tips: Read Latency: - avg: - AVG(((TCC_EA0_RDREQ_LEVEL_sum / TCC_EA0_RDREQ_sum) if (TCC_EA0_RDREQ_sum != + avg: AVG(((TCC_EA0_RDREQ_LEVEL_sum / TCC_EA0_RDREQ_sum) if (TCC_EA0_RDREQ_sum != 0) else None)) - min: - MIN(((TCC_EA0_RDREQ_LEVEL_sum / TCC_EA0_RDREQ_sum) if (TCC_EA0_RDREQ_sum != + min: MIN(((TCC_EA0_RDREQ_LEVEL_sum / TCC_EA0_RDREQ_sum) if (TCC_EA0_RDREQ_sum != 0) else None)) - max: - MAX(((TCC_EA0_RDREQ_LEVEL_sum / TCC_EA0_RDREQ_sum) if (TCC_EA0_RDREQ_sum != + max: MAX(((TCC_EA0_RDREQ_LEVEL_sum / TCC_EA0_RDREQ_sum) if (TCC_EA0_RDREQ_sum != 0) else None)) unit: Cycles tips: Write Latency: - avg: - AVG(((TCC_EA0_WRREQ_LEVEL_sum / TCC_EA0_WRREQ_sum) if (TCC_EA0_WRREQ_sum != + avg: AVG(((TCC_EA0_WRREQ_LEVEL_sum / TCC_EA0_WRREQ_sum) if (TCC_EA0_WRREQ_sum != 0) else None)) - min: - MIN(((TCC_EA0_WRREQ_LEVEL_sum / TCC_EA0_WRREQ_sum) if (TCC_EA0_WRREQ_sum != + min: MIN(((TCC_EA0_WRREQ_LEVEL_sum / TCC_EA0_WRREQ_sum) if (TCC_EA0_WRREQ_sum != 0) else None)) - max: - MAX(((TCC_EA0_WRREQ_LEVEL_sum / TCC_EA0_WRREQ_sum) if (TCC_EA0_WRREQ_sum != + max: MAX(((TCC_EA0_WRREQ_LEVEL_sum / TCC_EA0_WRREQ_sum) if (TCC_EA0_WRREQ_sum != 0) else None)) unit: Cycles tips: Atomic Latency: - avg: - AVG(((TCC_EA0_ATOMIC_LEVEL_sum / TCC_EA0_ATOMIC_sum) if (TCC_EA0_ATOMIC_sum + avg: AVG(((TCC_EA0_ATOMIC_LEVEL_sum / TCC_EA0_ATOMIC_sum) if (TCC_EA0_ATOMIC_sum != 0) else None)) - min: - MIN(((TCC_EA0_ATOMIC_LEVEL_sum / TCC_EA0_ATOMIC_sum) if (TCC_EA0_ATOMIC_sum + min: MIN(((TCC_EA0_ATOMIC_LEVEL_sum / TCC_EA0_ATOMIC_sum) if (TCC_EA0_ATOMIC_sum != 0) else None)) - max: - MAX(((TCC_EA0_ATOMIC_LEVEL_sum / TCC_EA0_ATOMIC_sum) if (TCC_EA0_ATOMIC_sum + max: MAX(((TCC_EA0_ATOMIC_LEVEL_sum / TCC_EA0_ATOMIC_sum) if (TCC_EA0_ATOMIC_sum != 0) else None)) unit: Cycles tips: Read Stall: - avg: - # AVG((((100 * ((TCC_EA0_RDREQ_IO_CREDIT_STALL_sum + TCC_EA0_RDREQ_GMI_CREDIT_STALL_sum) - # + TCC_EA0_RDREQ_DRAM_CREDIT_STALL_sum)) / TCC_BUSY_sum) if (TCC_BUSY_sum != - # 0) else None)) - min: - # MIN((((100 * ((TCC_EA0_RDREQ_IO_CREDIT_STALL_sum + TCC_EA0_RDREQ_GMI_CREDIT_STALL_sum) - # + TCC_EA0_RDREQ_DRAM_CREDIT_STALL_sum)) / TCC_BUSY_sum) if (TCC_BUSY_sum != - # 0) else None)) - max: - # MAX((((100 * ((TCC_EA0_RDREQ_IO_CREDIT_STALL_sum + TCC_EA0_RDREQ_GMI_CREDIT_STALL_sum) - # + TCC_EA0_RDREQ_DRAM_CREDIT_STALL_sum)) / TCC_BUSY_sum) if (TCC_BUSY_sum != - # 0) else None)) + avg: None # Missing perfmon + min: None # Missing perfmon + max: None # Missing perfmon unit: pct tips: Write Stall: - avg: - # AVG((((100 * ((TCC_EA0_WRREQ_IO_CREDIT_STALL_sum + TCC_EA0_WRREQ_GMI_CREDIT_STALL_sum) - # + TCC_EA0_WRREQ_DRAM_CREDIT_STALL_sum)) / TCC_BUSY_sum) if (TCC_BUSY_sum != - # 0) else None)) - min: - # MIN((((100 * ((TCC_EA0_WRREQ_IO_CREDIT_STALL_sum + TCC_EA0_WRREQ_GMI_CREDIT_STALL_sum) - # + TCC_EA0_WRREQ_DRAM_CREDIT_STALL_sum)) / TCC_BUSY_sum) if (TCC_BUSY_sum != - # 0) else None)) - max: - # MAX((((100 * ((TCC_EA0_WRREQ_IO_CREDIT_STALL_sum + TCC_EA0_WRREQ_GMI_CREDIT_STALL_sum) - # + TCC_EA0_WRREQ_DRAM_CREDIT_STALL_sum)) / TCC_BUSY_sum) if (TCC_BUSY_sum != - # 0) else None)) + avg: None # Missing perfmon + min: None # Missing perfmon + max: None # Missing perfmon unit: pct tips: @@ -201,18 +166,18 @@ Panel Config: unit: Unit tips: Tips metric: + Bandwidth: + avg: AVG((TCC_REQ_sum * 128) / $denom) + min: MIN((TCC_REQ_sum * 128) / $denom) + max: MAX((TCC_REQ_sum * 128) / $denom) + unit: (Bytes + $normUnit) + tips: Req: avg: AVG((TCC_REQ_sum / $denom)) min: MIN((TCC_REQ_sum / $denom)) max: MAX((TCC_REQ_sum / $denom)) unit: (Req + $normUnit) tips: - Streaming Req: - avg: AVG((TCC_STREAMING_REQ_sum / $denom)) - min: MIN((TCC_STREAMING_REQ_sum / $denom)) - max: MAX((TCC_STREAMING_REQ_sum / $denom)) - unit: (Req + $normUnit) - tips: Read Req: avg: AVG((TCC_READ_sum / $denom)) min: MIN((TCC_READ_sum / $denom)) @@ -231,12 +196,27 @@ Panel Config: max: MAX((TCC_ATOMIC_sum / $denom)) unit: (Req + $normUnit) tips: + Streaming Req: + avg: AVG((TCC_STREAMING_REQ_sum / $denom)) + min: MIN((TCC_STREAMING_REQ_sum / $denom)) + max: MAX((TCC_STREAMING_REQ_sum / $denom)) + unit: (Req + $normUnit) + tips: Probe Req: avg: AVG((TCC_PROBE_sum / $denom)) min: MIN((TCC_PROBE_sum / $denom)) max: MAX((TCC_PROBE_sum / $denom)) unit: (Req + $normUnit) tips: + Cache Hit: + avg: AVG((((100 * TCC_HIT_sum) / (TCC_HIT_sum + TCC_MISS_sum)) if ((TCC_HIT_sum + + TCC_MISS_sum) != 0) else None)) + min: MIN((((100 * TCC_HIT_sum) / (TCC_HIT_sum + TCC_MISS_sum)) if ((TCC_HIT_sum + + TCC_MISS_sum) != 0) else None)) + max: MAX((((100 * TCC_HIT_sum) / (TCC_HIT_sum + TCC_MISS_sum)) if ((TCC_HIT_sum + + TCC_MISS_sum) != 0) else None)) + unit: pct + tips: Hits: avg: AVG((TCC_HIT_sum / $denom)) min: MIN((TCC_HIT_sum / $denom)) @@ -249,23 +229,35 @@ Panel Config: max: MAX((TCC_MISS_sum / $denom)) unit: (Misses + $normUnit) tips: - Cache Hit: - avg: - AVG((((100 * TCC_HIT_sum) / (TCC_HIT_sum + TCC_MISS_sum)) if ((TCC_HIT_sum - + TCC_MISS_sum) != 0) else None)) - min: - MIN((((100 * TCC_HIT_sum) / (TCC_HIT_sum + TCC_MISS_sum)) if ((TCC_HIT_sum - + TCC_MISS_sum) != 0) else None)) - max: - MAX((((100 * TCC_HIT_sum) / (TCC_HIT_sum + TCC_MISS_sum)) if ((TCC_HIT_sum - + TCC_MISS_sum) != 0) else None)) - unit: pct - tips: Writeback: avg: AVG((TCC_WRITEBACK_sum / $denom)) min: MIN((TCC_WRITEBACK_sum / $denom)) max: MAX((TCC_WRITEBACK_sum / $denom)) - unit: ( + $normUnit) + unit: (Cachelines + $normUnit) + tips: + Writeback (Internal): + avg: AVG((TCC_NORMAL_WRITEBACK_sum / $denom)) + min: MIN((TCC_NORMAL_WRITEBACK_sum / $denom)) + max: MAX((TCC_NORMAL_WRITEBACK_sum / $denom)) + unit: (Cachelines + $normUnit) + tips: + Writeback (vL1D Req): + avg: AVG((TCC_ALL_TC_OP_WB_WRITEBACK_sum / $denom)) + min: MIN((TCC_ALL_TC_OP_WB_WRITEBACK_sum / $denom)) + max: MAX((TCC_ALL_TC_OP_WB_WRITEBACK_sum / $denom)) + unit: (Cachelines + $normUnit) + tips: + Evict (Internal): + avg: AVG((TCC_NORMAL_EVICT_sum / $denom)) + min: MIN((TCC_NORMAL_EVICT_sum / $denom)) + max: MAX((TCC_NORMAL_EVICT_sum / $denom)) + unit: (Cachelines + $normUnit) + tips: + Evict (vL1D Req): + avg: AVG((TCC_ALL_TC_OP_INV_EVICT_sum / $denom)) + min: MIN((TCC_ALL_TC_OP_INV_EVICT_sum / $denom)) + max: MAX((TCC_ALL_TC_OP_INV_EVICT_sum / $denom)) + unit: (Cachelines + $normUnit) tips: NC Req: avg: AVG((TCC_NC_REQ_sum / $denom)) @@ -291,30 +283,6 @@ Panel Config: max: MAX((TCC_RW_REQ_sum / $denom)) unit: (Req + $normUnit) tips: - Writeback (Normal): - avg: AVG((TCC_NORMAL_WRITEBACK_sum / $denom)) - min: MIN((TCC_NORMAL_WRITEBACK_sum / $denom)) - max: MAX((TCC_NORMAL_WRITEBACK_sum / $denom)) - unit: ( + $normUnit) - tips: - Writeback (TC Req): - avg: AVG((TCC_ALL_TC_OP_WB_WRITEBACK_sum / $denom)) - min: MIN((TCC_ALL_TC_OP_WB_WRITEBACK_sum / $denom)) - max: MAX((TCC_ALL_TC_OP_WB_WRITEBACK_sum / $denom)) - unit: ( + $normUnit) - tips: - Evict (Normal): - avg: AVG((TCC_NORMAL_EVICT_sum / $denom)) - min: MIN((TCC_NORMAL_EVICT_sum / $denom)) - max: MAX((TCC_NORMAL_EVICT_sum / $denom)) - unit: ( + $normUnit) - tips: - Evict (TC Req): - avg: AVG((TCC_ALL_TC_OP_INV_EVICT_sum / $denom)) - min: MIN((TCC_ALL_TC_OP_INV_EVICT_sum / $denom)) - max: MAX((TCC_ALL_TC_OP_INV_EVICT_sum / $denom)) - unit: ( + $normUnit) - tips: - metric_table: id: 1704 @@ -328,60 +296,140 @@ Panel Config: max: Max unit: Unit tips: Tips + style: + type: simple_multi_bar metric: - Read - Remote Socket Stall: - type: Remote Socket Stall + Read - PCIe Stall: + type: PCIe Stall transaction: Read - avg: # AVG((TCC_EA0_RDREQ_IO_CREDIT_STALL_sum / $denom)) - min: # MIN((TCC_EA0_RDREQ_IO_CREDIT_STALL_sum / $denom)) - max: # MAX((TCC_EA0_RDREQ_IO_CREDIT_STALL_sum / $denom)) - unit: (Req + $normUnit) + avg: None # Missing perfmon + min: None # Missing perfmon + max: None # Missing perfmon + unit: pct tips: - Read - Peer GCD Stall: - type: Peer GCD Stall + Read - Infinity Fabric™ Stall: + type: Infinity Fabric™ Stall transaction: Read - avg: # AVG((TCC_EA0_RDREQ_GMI_CREDIT_STALL_sum / $denom)) - min: # MIN((TCC_EA0_RDREQ_GMI_CREDIT_STALL_sum / $denom)) - max: # MAX((TCC_EA0_RDREQ_GMI_CREDIT_STALL_sum / $denom)) - unit: (Req + $normUnit) + avg: None # Missing perfmon + min: None # Missing perfmon + max: None # Missing perfmon + unit: pct tips: Read - HBM Stall: type: HBM Stall transaction: Read - avg: # AVG((TCC_EA0_RDREQ_DRAM_CREDIT_STALL_sum / $denom)) - min: # MIN((TCC_EA0_RDREQ_DRAM_CREDIT_STALL_sum / $denom)) - max: # MAX((TCC_EA0_RDREQ_DRAM_CREDIT_STALL_sum / $denom)) - unit: (Req + $normUnit) + avg: None # Missing perfmon + min: None # Missing perfmon + max: None # Missing perfmon + unit: pct tips: - Write - Remote Socket Stall: - type: Remote Socket Stall + Write - PCIe Stall: + type: PCIe Stall transaction: Write - avg: # AVG((TCC_EA0_WRREQ_IO_CREDIT_STALL_sum / $denom)) - min: # MIN((TCC_EA0_WRREQ_IO_CREDIT_STALL_sum / $denom)) - max: # MAX((TCC_EA0_WRREQ_IO_CREDIT_STALL_sum / $denom)) - unit: (Req + $normUnit) + avg: None # Missing perfmon + min: None # Missing perfmon + max: None # Missing perfmon + unit: pct tips: - Write - Peer GCD Stall: - type: Peer GCD Stall + Write - Infinity Fabric™ Stall: + type: Infinity Fabric™ Stall transaction: Write - avg: # AVG((TCC_EA0_WRREQ_GMI_CREDIT_STALL_sum / $denom)) - min: # MIN((TCC_EA0_WRREQ_GMI_CREDIT_STALL_sum / $denom)) - max: # MAX((TCC_EA0_WRREQ_GMI_CREDIT_STALL_sum / $denom)) - unit: (Req + $normUnit) + avg: None # Missing perfmon + min: None # Missing perfmon + max: None # Missing perfmon + unit: pct tips: Write - HBM Stall: type: HBM Stall transaction: Write - avg: # AVG((TCC_EA0_WRREQ_DRAM_CREDIT_STALL_sum / $denom)) - min: # MIN((TCC_EA0_WRREQ_DRAM_CREDIT_STALL_sum / $denom)) - max: # MAX((TCC_EA0_WRREQ_DRAM_CREDIT_STALL_sum / $denom)) - unit: (Req + $normUnit) + avg: None # Missing perfmon + min: None # Missing perfmon + max: None # Missing perfmon + unit: pct tips: Write - Credit Starvation: type: Credit Starvation transaction: Write - avg: AVG((TCC_TOO_MANY_EA_WRREQS_STALL_sum / $denom)) - min: MIN((TCC_TOO_MANY_EA_WRREQS_STALL_sum / $denom)) - max: MAX((TCC_TOO_MANY_EA_WRREQS_STALL_sum / $denom)) + avg: AVG(((100 * (TCC_TOO_MANY_EA_WRREQS_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) + min: MIN(((100 * (TCC_TOO_MANY_EA_WRREQS_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) + max: MAX(((100 * (TCC_TOO_MANY_EA_WRREQS_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) + unit: pct + tips: + + - metric_table: + id: 1705 + title: L2 - Fabric Detailed Transaction Breakdown + header: + metric: Metric + avg: Avg + min: Min + max: Max + unit: Unit + tips: Tips + metric: + Read (32B): + avg: AVG((TCC_EA0_RDREQ_32B_sum / $denom)) + min: MIN((TCC_EA0_RDREQ_32B_sum / $denom)) + max: MAX((TCC_EA0_RDREQ_32B_sum / $denom)) + unit: (Req + $normUnit) + tips: + Read (Uncached): + avg: AVG((TCC_EA0_RD_UNCACHED_32B_sum / $denom)) + min: MIN((TCC_EA0_RD_UNCACHED_32B_sum / $denom)) + max: MAX((TCC_EA0_RD_UNCACHED_32B_sum / $denom)) + unit: (Req + $normUnit) + tips: + Read (64B): + avg: AVG(((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_32B_sum) / $denom)) + min: MIN(((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_32B_sum) / $denom)) + max: MAX(((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_32B_sum) / $denom)) + unit: (Req + $normUnit) + tips: + HBM Read: + avg: AVG((TCC_EA0_RDREQ_DRAM_sum / $denom)) + min: MIN((TCC_EA0_RDREQ_DRAM_sum / $denom)) + max: MAX((TCC_EA0_RDREQ_DRAM_sum / $denom)) + unit: (Req + $normUnit) + tips: + Remote Read: + avg: AVG((MAX((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_DRAM_sum), 0) / $denom)) + min: MIN((MAX((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_DRAM_sum), 0) / $denom)) + max: MAX((MAX((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_DRAM_sum), 0) / $denom)) + unit: (Req + $normUnit) + tips: + Write and Atomic (32B): + avg: AVG(((TCC_EA0_WRREQ_sum - TCC_EA0_WRREQ_64B_sum) / $denom)) + min: MIN(((TCC_EA0_WRREQ_sum - TCC_EA0_WRREQ_64B_sum) / $denom)) + max: MAX(((TCC_EA0_WRREQ_sum - TCC_EA0_WRREQ_64B_sum) / $denom)) + unit: (Req + $normUnit) + tips: + Write and Atomic (Uncached): + avg: AVG((TCC_EA0_WR_UNCACHED_32B_sum / $denom)) + min: MIN((TCC_EA0_WR_UNCACHED_32B_sum / $denom)) + max: MAX((TCC_EA0_WR_UNCACHED_32B_sum / $denom)) + unit: (Req + $normUnit) + tips: + Write and Atomic (64B): + avg: AVG((TCC_EA0_WRREQ_64B_sum / $denom)) + min: MIN((TCC_EA0_WRREQ_64B_sum / $denom)) + max: MAX((TCC_EA0_WRREQ_64B_sum / $denom)) + unit: (Req + $normUnit) + tips: + HBM Write and Atomic: + avg: AVG((TCC_EA0_WRREQ_DRAM_sum / $denom)) + min: MIN((TCC_EA0_WRREQ_DRAM_sum / $denom)) + max: MAX((TCC_EA0_WRREQ_DRAM_sum / $denom)) + unit: (Req + $normUnit) + tips: + Remote Write and Atomic: + avg: AVG((MAX((TCC_EA0_WRREQ_sum - TCC_EA0_WRREQ_DRAM_sum), 0) / $denom)) + min: MIN((MAX((TCC_EA0_WRREQ_sum - TCC_EA0_WRREQ_DRAM_sum), 0) / $denom)) + max: MAX((MAX((TCC_EA0_WRREQ_sum - TCC_EA0_WRREQ_DRAM_sum), 0) / $denom)) + unit: (Req + $normUnit) + tips: + Atomic: + avg: AVG((TCC_EA0_ATOMIC_sum / $denom)) + min: MIN((TCC_EA0_ATOMIC_sum / $denom)) + max: MAX((TCC_EA0_ATOMIC_sum / $denom)) unit: (Req + $normUnit) tips: diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx940/1800_L2_cache_per_channel.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx940/1800_L2_cache_per_channel.yaml index 9a0e038745..75d91e25c4 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx940/1800_L2_cache_per_channel.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx940/1800_L2_cache_per_channel.yaml @@ -244,9 +244,9 @@ Panel Config: ea read stall - dram: L2-EA Read Stall - DRAM metric: "::_1": - ea read stall - io: AVG((TO_INT(TCC_EA0_RDREQ_IO_CREDIT_STALL[::_1]) / $denom)) - ea read stall - gmi: AVG((TO_INT(TCC_EA0_RDREQ_GMI_CREDIT_STALL[::_1]) / $denom)) - ea read stall - dram: AVG((TO_INT(TCC_EA0_RDREQ_DRAM_CREDIT_STALL[::_1]) / $denom)) + ea read stall - io: None # Missing perfmon + ea read stall - gmi: None # Missing perfmon + ea read stall - dram: None # Missing perfmon placeholder_range: "::_1": $totalL2Banks cli_style: simple_multiple_bar @@ -262,10 +262,10 @@ Panel Config: ea write stall - starve: L2-EA Write Stall - Starve metric: "::_1": - ea write stall - io: AVG((TO_INT(TCC_EA0_WRREQ_IO_CREDIT_STALL[::_1]) / $denom)) - ea write stall - gmi: AVG((TO_INT(TCC_EA0_WRREQ_GMI_CREDIT_STALL[::_1]) / $denom)) - ea write stall - dram: AVG((TO_INT(TCC_EA0_WRREQ_DRAM_CREDIT_STALL[::_1]) / $denom)) - ea write stall - starve: AVG((TO_INT(TCC_TOO_MANY_EA0_WRREQS_STALL[::_1]) / $denom)) + ea write stall - io: None # Missing perfmon + ea write stall - gmi: None # Missing perfmon + ea write stall - dram: None # Missing perfmon + ea write stall - starve: AVG((TO_INT(TCC_TOO_MANY_EA_WRREQS_STALL[::_1]) / $denom)) placeholder_range: "::_1": $totalL2Banks cli_style: simple_multiple_bar diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx941/0200_system-speed-of-light.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx941/0200_system-speed-of-light.yaml index e25b9f66e3..be43d46d61 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx941/0200_system-speed-of-light.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx941/0200_system-speed-of-light.yaml @@ -14,10 +14,10 @@ Panel Config: title: Speed-of-Light header: metric: Metric - value: Value + value: Avg unit: Unit peak: Peak - pop: PoP + pop: Pct of Peak tips: Tips metric: VALU FLOPs: @@ -83,19 +83,19 @@ Panel Config: peak: $numCU pop: ((100 * $numActiveCUs) / $numCU) tips: - SALU Util: + SALU Utilization: value: AVG(((100 * SQ_ACTIVE_INST_SCA) / (GRBM_GUI_ACTIVE * $numCU))) unit: pct peak: 100 pop: AVG(((100 * SQ_ACTIVE_INST_SCA) / (GRBM_GUI_ACTIVE * $numCU))) tips: - VALU Util: + VALU Utilization: value: AVG(((100 * SQ_ACTIVE_INST_VALU) / (GRBM_GUI_ACTIVE * $numCU))) unit: pct peak: 100 pop: AVG(((100 * SQ_ACTIVE_INST_VALU) / (GRBM_GUI_ACTIVE * $numCU))) tips: - MFMA Util: + MFMA Utilization: value: AVG(((100 * SQ_VALU_MFMA_BUSY_CYCLES) / ((GRBM_GUI_ACTIVE * $numCU) * 4))) unit: pct @@ -103,7 +103,19 @@ Panel Config: pop: AVG(((100 * SQ_VALU_MFMA_BUSY_CYCLES) / ((GRBM_GUI_ACTIVE * $numCU) * 4))) tips: - VALU Active Threads/Wave: + VMEM Utilization: + value: AVG((((100 * (SQ_ACTIVE_INST_FLAT+SQ_ACTIVE_INST_VMEM)) / GRBM_GUI_ACTIVE) / $numCU)) + unit: pct + peak: 100 + pop: AVG((((100 * (SQ_ACTIVE_INST_FLAT+SQ_ACTIVE_INST_VMEM)) / GRBM_GUI_ACTIVE) / $numCU)) + tips: + Branch Utilization: + value: AVG((((100 * SQ_ACTIVE_INST_MISC) / GRBM_GUI_ACTIVE) / $numCU)) + unit: pct + peak: 100 + pop: AVG((((100 * SQ_ACTIVE_INST_MISC) / GRBM_GUI_ACTIVE) / $numCU)) + tips: + VALU Active Threads: value: AVG(((SQ_THREAD_CYCLES_VALU / SQ_ACTIVE_INST_VALU) if (SQ_ACTIVE_INST_VALU != 0) else None)) unit: Threads @@ -111,25 +123,29 @@ Panel Config: pop: (AVG(((SQ_THREAD_CYCLES_VALU / SQ_ACTIVE_INST_VALU) if (SQ_ACTIVE_INST_VALU != 0) else None)) * 1.5625) tips: - IPC - Issue: - value: AVG(((((((((SQ_INSTS_VALU + SQ_INSTS_VMEM) + SQ_INSTS_SALU) + SQ_INSTS_SMEM) - + SQ_INSTS_GDS) + SQ_INSTS_BRANCH) + SQ_INSTS_SENDMSG) + SQ_INSTS_VSKIPPED) - / SQ_ACTIVE_INST_ANY)) + IPC: + value: AVG((SQ_INSTS / SQ_BUSY_CU_CYCLES)) unit: Instr/cycle peak: 5 - pop: ((100 * AVG(((((((((SQ_INSTS_VALU + SQ_INSTS_VMEM) + SQ_INSTS_SALU) + SQ_INSTS_SMEM) - + SQ_INSTS_GDS) + SQ_INSTS_BRANCH) + SQ_INSTS_SENDMSG) + SQ_INSTS_VSKIPPED) - / SQ_ACTIVE_INST_ANY))) / 5) + pop: ((100 * AVG((SQ_INSTS / SQ_BUSY_CU_CYCLES))) / 5) tips: - LDS BW: + Wavefront Occupancy: + value: AVG((SQ_ACCUM_PREV_HIRES / GRBM_GUI_ACTIVE)) + unit: Wavefronts + peak: ($maxWavesPerCU * $numCU) + pop: (100 * AVG(((SQ_ACCUM_PREV_HIRES / GRBM_GUI_ACTIVE) / ($maxWavesPerCU + * $numCU)))) + coll_level: SQ_LEVEL_WAVES + tips: + Theoretical LDS Bandwidth: value: AVG(((((SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT) * 4) * TO_INT($LDSBanks)) / (End_Timestamp - Start_Timestamp))) - unit: GB/sec + unit: GB/s peak: (($sclk * $numCU) * 0.128) pop: AVG((((((SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT) * 4) * TO_INT($LDSBanks)) / (End_Timestamp - Start_Timestamp)) / (($sclk * $numCU) * 0.00128))) tips: - LDS Bank Conflict: + LDS Bank Conflicts/Access: value: AVG(((SQ_LDS_BANK_CONFLICT / (SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT)) if ((SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT) != 0) else None)) unit: Conflicts/access @@ -137,35 +153,7 @@ Panel Config: pop: ((100 * AVG(((SQ_LDS_BANK_CONFLICT / (SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT)) if ((SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT) != 0) else None))) / 32) tips: - Instr Cache Hit Rate: - value: AVG(((100 * SQC_ICACHE_HITS) / (SQC_ICACHE_HITS + SQC_ICACHE_MISSES))) - unit: pct - peak: 100 - pop: AVG(((100 * SQC_ICACHE_HITS) / (SQC_ICACHE_HITS + SQC_ICACHE_MISSES))) - tips: - Instr Cache BW: - value: AVG(((SQC_ICACHE_REQ / (End_Timestamp - Start_Timestamp)) * 64)) - unit: GB/s - peak: ((($sclk / 1000) * 64) * $numSQC) - pop: ((100 * AVG(((SQC_ICACHE_REQ / (End_Timestamp - Start_Timestamp)) * 64))) / ((($sclk - / 1000) * 64) * $numSQC)) - tips: - Scalar L1D Cache Hit Rate: - value: AVG((((100 * SQC_DCACHE_HITS) / (SQC_DCACHE_HITS + SQC_DCACHE_MISSES)) - if ((SQC_DCACHE_HITS + SQC_DCACHE_MISSES) != 0) else None)) - unit: pct - peak: 100 - pop: AVG((((100 * SQC_DCACHE_HITS) / (SQC_DCACHE_HITS + SQC_DCACHE_MISSES)) - if ((SQC_DCACHE_HITS + SQC_DCACHE_MISSES) != 0) else None)) - tips: - Scalar L1D Cache BW: - value: AVG(((SQC_DCACHE_REQ / (End_Timestamp - Start_Timestamp)) * 64)) - unit: GB/s - peak: ((($sclk / 1000) * 64) * $numSQC) - pop: ((100 * AVG(((SQC_DCACHE_REQ / (End_Timestamp - Start_Timestamp)) * 64))) / ((($sclk - / 1000) * 64) * $numSQC)) - tips: - Vector L1D Cache Hit Rate: + vL1D Cache Hit Rate: value: AVG(((100 - ((100 * (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + TCP_TCC_ATOMIC_WITH_RET_REQ_sum) + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum)) / TCP_TOTAL_CACHE_ACCESSES_sum)) if (TCP_TOTAL_CACHE_ACCESSES_sum != 0) else @@ -177,7 +165,7 @@ Panel Config: TCP_TOTAL_CACHE_ACCESSES_sum)) if (TCP_TOTAL_CACHE_ACCESSES_sum != 0) else None)) tips: - Vector L1D Cache BW: + vL1D Cache BW: value: AVG(((TCP_TOTAL_CACHE_ACCESSES_sum * 64) / (End_Timestamp - Start_Timestamp))) unit: GB/s peak: ((($sclk / 1000) * 64) * $numCU) @@ -192,6 +180,13 @@ Panel Config: pop: AVG((((100 * TCC_HIT_sum) / (TCC_HIT_sum + TCC_MISS_sum)) if ((TCC_HIT_sum + TCC_MISS_sum) != 0) else None)) tips: + L2 Cache BW: + value: AVG(((TCC_REQ_sum * 128) / (End_Timestamp - Start_Timestamp))) + unit: GB/s + peak: ((($sclk / 1000) * 128) * TO_INT($L2Banks)) + pop: ((100 * AVG(((TCC_REQ_sum * 128) / (End_Timestamp - Start_Timestamp)))) + / ((($sclk / 1000) * 128) * TO_INT($L2Banks))) + tips: L2-Fabric Read BW: value: AVG((((TCC_EA0_RDREQ_32B_sum * 32) + ((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_32B_sum) * 64)) / (End_Timestamp - Start_Timestamp))) @@ -212,36 +207,48 @@ Panel Config: value: AVG(((TCC_EA0_RDREQ_LEVEL_sum / TCC_EA0_RDREQ_sum) if (TCC_EA0_RDREQ_sum != 0) else None)) unit: Cycles - peak: '' - pop: '' + peak: None + pop: None tips: L2-Fabric Write Latency: value: AVG(((TCC_EA0_WRREQ_LEVEL_sum / TCC_EA0_WRREQ_sum) if (TCC_EA0_WRREQ_sum != 0) else None)) unit: Cycles - peak: '' - pop: '' + peak: None + pop: None tips: - Wave Occupancy: - value: AVG((SQ_ACCUM_PREV_HIRES / GRBM_GUI_ACTIVE)) - unit: Wavefronts - peak: ($maxWavesPerCU * $numCU) - pop: (100 * AVG(((SQ_ACCUM_PREV_HIRES / GRBM_GUI_ACTIVE) / ($maxWavesPerCU - * $numCU)))) - coll_level: SQ_LEVEL_WAVES + sL1D Cache Hit Rate: + value: AVG((((100 * SQC_DCACHE_HITS) / (SQC_DCACHE_HITS + SQC_DCACHE_MISSES)) + if ((SQC_DCACHE_HITS + SQC_DCACHE_MISSES) != 0) else None)) + unit: pct + peak: 100 + pop: AVG((((100 * SQC_DCACHE_HITS) / (SQC_DCACHE_HITS + SQC_DCACHE_MISSES)) + if ((SQC_DCACHE_HITS + SQC_DCACHE_MISSES) != 0) else None)) tips: - Instr Fetch BW: - value: AVG(((SQ_IFETCH / (End_Timestamp - Start_Timestamp)) * 32)) + sL1D Cache BW: + value: AVG(((SQC_DCACHE_REQ / (End_Timestamp - Start_Timestamp)) * 64)) unit: GB/s - peak: ((($sclk / 1000) * 32) * $numSQC) - pop: ((100 * AVG(((SQ_IFETCH / (End_Timestamp - Start_Timestamp)) * 32))) / ($numSQC - * (($sclk / 1000) * 32))) - coll_level: SQ_IFETCH_LEVEL + peak: ((($sclk / 1000) * 64) * $numSQC) + pop: ((100 * AVG(((SQC_DCACHE_REQ / (End_Timestamp - Start_Timestamp)) * 64))) / ((($sclk + / 1000) * 64) * $numSQC)) tips: - Instr Fetch Latency: + L1I Hit Rate: + value: AVG(((100 * SQC_ICACHE_HITS) / (SQC_ICACHE_HITS + SQC_ICACHE_MISSES))) + unit: pct + peak: 100 + pop: AVG(((100 * SQC_ICACHE_HITS) / (SQC_ICACHE_HITS + SQC_ICACHE_MISSES))) + tips: + L1I BW: + value: AVG(((SQC_ICACHE_REQ / (End_Timestamp - Start_Timestamp)) * 64)) + unit: GB/s + peak: ((($sclk / 1000) * 64) * $numSQC) + pop: ((100 * AVG(((SQC_ICACHE_REQ / (End_Timestamp - Start_Timestamp)) * 64))) / ((($sclk + / 1000) * 64) * $numSQC)) + tips: + L1I Fetch Latency: value: AVG((SQ_ACCUM_PREV_HIRES / SQ_IFETCH)) unit: Cycles - peak: '' - pop: '' + peak: None + pop: None coll_level: SQ_IFETCH_LEVEL tips: diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx941/0500_command-processor.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx941/0500_command-processor.yaml index d954f61625..1a9082258d 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx941/0500_command-processor.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx941/0500_command-processor.yaml @@ -19,19 +19,7 @@ Panel Config: unit: Unit tips: Tips metric: - GPU Busy Cycles: - avg: AVG(GRBM_GUI_ACTIVE) - min: MIN(GRBM_GUI_ACTIVE) - max: MAX(GRBM_GUI_ACTIVE) - unit: Cycles/Kernel - tips: - CPF Busy: - avg: AVG(CPF_CPF_STAT_BUSY) - min: MIN(CPF_CPF_STAT_BUSY) - max: MAX(CPF_CPF_STAT_BUSY) - unit: Cycles/Kernel - tips: - CPF Util: + CPF Utilization: avg: AVG((((100 * CPF_CPF_STAT_BUSY) / (CPF_CPF_STAT_BUSY + CPF_CPF_STAT_IDLE)) if ((CPF_CPF_STAT_BUSY + CPF_CPF_STAT_IDLE) != 0) else None)) min: MIN((((100 * CPF_CPF_STAT_BUSY) / (CPF_CPF_STAT_BUSY + CPF_CPF_STAT_IDLE)) @@ -47,15 +35,9 @@ Panel Config: != 0) else None)) max: MAX((((100 * CPF_CPF_STAT_STALL) / CPF_CPF_STAT_BUSY) if (CPF_CPF_STAT_BUSY != 0) else None)) - unit: Cycles/Kernel + unit: pct tips: - L2Cache Intf Busy: - avg: AVG(CPF_CPF_TCIU_BUSY) - min: MIN(CPF_CPF_TCIU_BUSY) - max: MAX(CPF_CPF_TCIU_BUSY) - unit: Cycles/Kernel - tips: - L2Cache Intf Util: + CPF-L2 Utilization: avg: AVG((((100 * CPF_CPF_TCIU_BUSY) / (CPF_CPF_TCIU_BUSY + CPF_CPF_TCIU_IDLE)) if ((CPF_CPF_TCIU_BUSY + CPF_CPF_TCIU_IDLE) != 0) else None)) min: MIN((((100 * CPF_CPF_TCIU_BUSY) / (CPF_CPF_TCIU_BUSY + CPF_CPF_TCIU_IDLE)) @@ -64,7 +46,7 @@ Panel Config: if ((CPF_CPF_TCIU_BUSY + CPF_CPF_TCIU_IDLE) != 0) else None)) unit: pct tips: - L2Cache Intf Stall: + CPF-L2 Stall: avg: AVG((((100 * CPF_CPF_TCIU_STALL) / CPF_CPF_TCIU_BUSY) if (CPF_CPF_TCIU_BUSY != 0) else None)) min: MIN((((100 * CPF_CPF_TCIU_STALL) / CPF_CPF_TCIU_BUSY) if (CPF_CPF_TCIU_BUSY @@ -73,16 +55,19 @@ Panel Config: != 0) else None)) unit: pct tips: - UTCL1 Stall: - avg: AVG(CPF_CMP_UTCL1_STALL_ON_TRANSLATION) - min: MIN(CPF_CMP_UTCL1_STALL_ON_TRANSLATION) - max: MAX(CPF_CMP_UTCL1_STALL_ON_TRANSLATION) - unit: Cycles/Kernel - tips: + CPF-UTCL1 Stall: + avg: AVG(((100 * CPF_CMP_UTCL1_STALL_ON_TRANSLATION) / CPF_CPF_STAT_BUSY) if (CPF_CPF_STAT_BUSY + != 0) else None) + min: MIN(((100 * CPF_CMP_UTCL1_STALL_ON_TRANSLATION) / CPF_CPF_STAT_BUSY) if (CPF_CPF_STAT_BUSY + != 0) else None) + max: MAX(((100 * CPF_CMP_UTCL1_STALL_ON_TRANSLATION) / CPF_CPF_STAT_BUSY) if (CPF_CPF_STAT_BUSY + != 0) else None) + unit: pct + tips: - metric_table: id: 502 - title: Command Processor Compute + title: Packet Processor header: metric: Metric avg: Avg @@ -91,19 +76,7 @@ Panel Config: unit: Unit tips: Tips metric: - GPU Busy Cycles: - avg: AVG(GRBM_GUI_ACTIVE) - min: MIN(GRBM_GUI_ACTIVE) - max: MAX(GRBM_GUI_ACTIVE) - unit: Cycles - tips: - CPC Busy Cycles: - avg: AVG(CPC_CPC_STAT_BUSY) - min: MIN(CPC_CPC_STAT_BUSY) - max: MAX(CPC_CPC_STAT_BUSY) - unit: Cycles - tips: - CPC Util: + CPC Utilization: avg: AVG((((100 * CPC_CPC_STAT_BUSY) / (CPC_CPC_STAT_BUSY + CPC_CPC_STAT_IDLE)) if ((CPC_CPC_STAT_BUSY + CPC_CPC_STAT_IDLE) != 0) else None)) min: MIN((((100 * CPC_CPC_STAT_BUSY) / (CPC_CPC_STAT_BUSY + CPC_CPC_STAT_IDLE)) @@ -112,12 +85,6 @@ Panel Config: if ((CPC_CPC_STAT_BUSY + CPC_CPC_STAT_IDLE) != 0) else None)) unit: pct tips: - CPC Stall Cycles: - avg: AVG(CPC_CPC_STAT_STALL) - min: MIN(CPC_CPC_STAT_STALL) - max: MAX(CPC_CPC_STAT_STALL) - unit: Cycles - tips: CPC Stall Rate: avg: AVG((((100 * CPC_CPC_STAT_STALL) / CPC_CPC_STAT_BUSY) if (CPC_CPC_STAT_BUSY != 0) else None)) @@ -127,28 +94,19 @@ Panel Config: != 0) else None)) unit: pct tips: - CPC Packet Decoding: - avg: AVG(CPC_ME1_BUSY_FOR_PACKET_DECODE) - min: MIN(CPC_ME1_BUSY_FOR_PACKET_DECODE) - max: MAX(CPC_ME1_BUSY_FOR_PACKET_DECODE) - unit: Cycles - tips: - SPI Intf Busy Cycles: - avg: AVG(CPC_ME1_DC0_SPI_BUSY) - min: MIN(CPC_ME1_DC0_SPI_BUSY) - max: MAX(CPC_ME1_DC0_SPI_BUSY) - unit: Cycles - tips: - SPI Intf Util: - avg: AVG((((100 * CPC_ME1_DC0_SPI_BUSY) / CPC_CPC_STAT_BUSY) if (CPC_CPC_STAT_BUSY - != 0) else None)) - min: MIN((((100 * CPC_ME1_DC0_SPI_BUSY) / CPC_CPC_STAT_BUSY) if (CPC_CPC_STAT_BUSY - != 0) else None)) - max: MAX((((100 * CPC_ME1_DC0_SPI_BUSY) / CPC_CPC_STAT_BUSY) if (CPC_CPC_STAT_BUSY - != 0) else None)) + CPC Packet Decoding Utilization: + avg: AVG((100 * CPC_ME1_BUSY_FOR_PACKET_DECODE) / CPC_CPC_STAT_BUSY if (CPC_CPC_STAT_BUSY != 0) else None) + min: MIN((100 * CPC_ME1_BUSY_FOR_PACKET_DECODE) / CPC_CPC_STAT_BUSY if (CPC_CPC_STAT_BUSY != 0) else None) + max: MAX((100 * CPC_ME1_BUSY_FOR_PACKET_DECODE) / CPC_CPC_STAT_BUSY if (CPC_CPC_STAT_BUSY != 0) else None) unit: pct tips: - L2Cache Intf Util: + CPC-Workgroup Manager Utilization: + avg: AVG((100 * CPC_ME1_DC0_SPI_BUSY) / CPC_CPC_STAT_BUSY if (CPC_CPC_STAT_BUSY != 0) else None) + min: MIN((100 * CPC_ME1_DC0_SPI_BUSY) / CPC_CPC_STAT_BUSY if (CPC_CPC_STAT_BUSY != 0) else None) + max: MAX((100 * CPC_ME1_DC0_SPI_BUSY) / CPC_CPC_STAT_BUSY if (CPC_CPC_STAT_BUSY != 0) else None) + unit: Pct + tips: + CPC-L2 Utilization: avg: AVG((((100 * CPC_CPC_TCIU_BUSY) / (CPC_CPC_TCIU_BUSY + CPC_CPC_TCIU_IDLE)) if ((CPC_CPC_TCIU_BUSY + CPC_CPC_TCIU_IDLE) != 0) else None)) min: MIN((((100 * CPC_CPC_TCIU_BUSY) / (CPC_CPC_TCIU_BUSY + CPC_CPC_TCIU_IDLE)) @@ -157,19 +115,16 @@ Panel Config: if ((CPC_CPC_TCIU_BUSY + CPC_CPC_TCIU_IDLE) != 0) else None)) unit: pct tips: - UTCL1 Stall Cycles: - avg: AVG(CPC_UTCL1_STALL_ON_TRANSLATION) - min: MIN(CPC_UTCL1_STALL_ON_TRANSLATION) - max: MAX(CPC_UTCL1_STALL_ON_TRANSLATION) - unit: Cycles + CPC-UTCL1 Stall: + avg: AVG(((100 * CPC_UTCL1_STALL_ON_TRANSLATION) / CPC_CPC_STAT_BUSY) if (CPC_CPC_STAT_BUSY + != 0) else None) + min: MIN(((100 * CPC_UTCL1_STALL_ON_TRANSLATION) / CPC_CPC_STAT_BUSY) if (CPC_CPC_STAT_BUSY + != 0) else None) + max: MAX(((100 * CPC_UTCL1_STALL_ON_TRANSLATION) / CPC_CPC_STAT_BUSY) if (CPC_CPC_STAT_BUSY + != 0) else None) + unit: pct tips: - UTCL2 Intf Busy Cycles: - avg: AVG(CPC_CPC_UTCL2IU_BUSY) - min: MIN(CPC_CPC_UTCL2IU_BUSY) - max: MAX(CPC_CPC_UTCL2IU_BUSY) - unit: Cycles - tips: - UTCL2 Intf Util: + CPC-UTCL2 Utilization: avg: AVG((((100 * CPC_CPC_UTCL2IU_BUSY) / (CPC_CPC_UTCL2IU_BUSY + CPC_CPC_UTCL2IU_IDLE)) if ((CPC_CPC_UTCL2IU_BUSY + CPC_CPC_UTCL2IU_IDLE) != 0) else None)) min: MIN((((100 * CPC_CPC_UTCL2IU_BUSY) / (CPC_CPC_UTCL2IU_BUSY + CPC_CPC_UTCL2IU_IDLE)) @@ -177,4 +132,4 @@ Panel Config: max: MAX((((100 * CPC_CPC_UTCL2IU_BUSY) / (CPC_CPC_UTCL2IU_BUSY + CPC_CPC_UTCL2IU_IDLE)) if ((CPC_CPC_UTCL2IU_BUSY + CPC_CPC_UTCL2IU_IDLE) != 0) else None)) unit: pct - tips: + tips: \ No newline at end of file diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx941/0600_shader-processor-input.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx941/0600_shader-processor-input.yaml index bab48700ac..7a6d5e004d 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx941/0600_shader-processor-input.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx941/0600_shader-processor-input.yaml @@ -6,11 +6,11 @@ Metric Description: # Define the panel properties and properties of each metric in the panel. Panel Config: id: 600 - title: Shader Processor Input (SPI) + title: Workgroup Manager (SPI) data source: - metric_table: id: 601 - title: SPI Stats + title: Workgroup Manager Utilizations header: metric: Metric avg: Avg @@ -19,29 +19,35 @@ Panel Config: unit: Unit tips: Tips metric: - GPU Busy: - avg: AVG(GRBM_GUI_ACTIVE) - min: MIN(GRBM_GUI_ACTIVE) - max: MAX(GRBM_GUI_ACTIVE) - unit: Cycles + Accelerator Utilization: + avg: AVG(100 * GRBM_GUI_ACTIVE / GRBM_COUNT) + min: MIN(100 * GRBM_GUI_ACTIVE / GRBM_COUNT) + max: MAX(100 * GRBM_GUI_ACTIVE / GRBM_COUNT) + unit: Pct tips: - CS Busy: - avg: AVG(SPI_CSN_BUSY) - min: MIN(SPI_CSN_BUSY) - max: MAX(SPI_CSN_BUSY) - unit: Cycles + Scheduler-Pipe Utilization: + avg: AVG(100 * SPI_CSN_BUSY / (GRBM_GUI_ACTIVE * $numPipes * $numSE)) + min: MIN(100 * SPI_CSN_BUSY / (GRBM_GUI_ACTIVE * $numPipes * $numSE)) + max: MAX(100 * SPI_CSN_BUSY / (GRBM_GUI_ACTIVE * $numPipes * $numSE)) + unit: Pct tips: - SPI Busy: - avg: AVG(GRBM_SPI_BUSY) - min: MIN(GRBM_SPI_BUSY) - max: MAX(GRBM_SPI_BUSY) - unit: Cycles + Workgroup Manager Utilization: + avg: AVG(100 * GRBM_SPI_BUSY / GRBM_GUI_ACTIVE) + min: MIN(100 * GRBM_SPI_BUSY / GRBM_GUI_ACTIVE) + max: MAX(100 * GRBM_SPI_BUSY / GRBM_GUI_ACTIVE) + unit: Pct tips: - SQ Busy: - avg: AVG(SQ_BUSY_CYCLES) - min: MIN(SQ_BUSY_CYCLES) - max: MAX(SQ_BUSY_CYCLES) - unit: Cycles + Shader Engine Utilization: + avg: AVG(100 * SQ_BUSY_CYCLES / (GRBM_GUI_ACTIVE * $numSE)) + min: MIN(100 * SQ_BUSY_CYCLES / (GRBM_GUI_ACTIVE * $numSE)) + max: MAX(100 * SQ_BUSY_CYCLES / (GRBM_GUI_ACTIVE * $numSE)) + unit: Pct + tips: + SIMD Utilization: + avg: AVG(100 * SQ_BUSY_CU_CYCLES / (GRBM_GUI_ACTIVE * $numCU)) + min: MIN(100 * SQ_BUSY_CU_CYCLES / (GRBM_GUI_ACTIVE * $numCU)) + max: MAX(100 * SQ_BUSY_CU_CYCLES / (GRBM_GUI_ACTIVE * $numCU)) + unit: Pct tips: Dispatched Workgroups: avg: AVG(SPI_CSN_NUM_THREADGROUPS) @@ -55,105 +61,6 @@ Panel Config: max: MAX(SPI_CSN_WAVE) unit: Wavefronts tips: - Wave Alloc Failed: - avg: AVG(SPI_RA_REQ_NO_ALLOC) - min: MIN(SPI_RA_REQ_NO_ALLOC) - max: MAX(SPI_RA_REQ_NO_ALLOC) - unit: Cycles - tips: - Wave Alloc Failed - CS: - avg: AVG(SPI_RA_REQ_NO_ALLOC_CSN) - min: MIN(SPI_RA_REQ_NO_ALLOC_CSN) - max: MAX(SPI_RA_REQ_NO_ALLOC_CSN) - unit: Cycles - tips: - - - metric_table: - id: 602 - title: SPI Resource Allocation - header: - metric: Metric - avg: Avg - min: Min - max: Max - unit: Unit - tips: Tips - metric: - Wave request Failed (CS): - avg: AVG(SPI_RA_REQ_NO_ALLOC_CSN) - min: MIN(SPI_RA_REQ_NO_ALLOC_CSN) - max: MAX(SPI_RA_REQ_NO_ALLOC_CSN) - unit: Cycles - tips: - CS Stall: - avg: AVG(SPI_RA_RES_STALL_CSN) - min: MIN(SPI_RA_RES_STALL_CSN) - max: MAX(SPI_RA_RES_STALL_CSN) - unit: Cycles - tips: - CS Stall Rate: - avg: AVG((((100 * SPI_RA_RES_STALL_CSN) / GRBM_SPI_BUSY) if (GRBM_SPI_BUSY != - 0) else None)) - min: MIN((((100 * SPI_RA_RES_STALL_CSN) / GRBM_SPI_BUSY) if (GRBM_SPI_BUSY != - 0) else None)) - max: MAX((((100 * SPI_RA_RES_STALL_CSN) / GRBM_SPI_BUSY) if (GRBM_SPI_BUSY != - 0) else None)) - unit: pct - tips: - Scratch Stall: - avg: AVG(SPI_RA_TMP_STALL_CSN) - min: MIN(SPI_RA_TMP_STALL_CSN) - max: MAX(SPI_RA_TMP_STALL_CSN) - unit: Cycles - tips: - Insufficient SIMD Waveslots: - avg: AVG(SPI_RA_WAVE_SIMD_FULL_CSN) - min: MIN(SPI_RA_WAVE_SIMD_FULL_CSN) - max: MAX(SPI_RA_WAVE_SIMD_FULL_CSN) - unit: SIMD - tips: - Insufficient SIMD VGPRs: - avg: AVG(SPI_RA_VGPR_SIMD_FULL_CSN) - min: MIN(SPI_RA_VGPR_SIMD_FULL_CSN) - max: MAX(SPI_RA_VGPR_SIMD_FULL_CSN) - unit: SIMD - tips: - Insufficient SIMD SGPRs: - avg: AVG(SPI_RA_SGPR_SIMD_FULL_CSN) - min: MIN(SPI_RA_SGPR_SIMD_FULL_CSN) - max: MAX(SPI_RA_SGPR_SIMD_FULL_CSN) - unit: SIMD - tips: - Insufficient CU LDS: - avg: AVG(SPI_RA_LDS_CU_FULL_CSN) - min: MIN(SPI_RA_LDS_CU_FULL_CSN) - max: MAX(SPI_RA_LDS_CU_FULL_CSN) - unit: CU - tips: - Insufficient CU Barries: - avg: AVG(SPI_RA_BAR_CU_FULL_CSN) - min: MIN(SPI_RA_BAR_CU_FULL_CSN) - max: MAX(SPI_RA_BAR_CU_FULL_CSN) - unit: CU - tips: - Insufficient Bulky Resource: - avg: AVG(SPI_RA_BULKY_CU_FULL_CSN) - min: MIN(SPI_RA_BULKY_CU_FULL_CSN) - max: MAX(SPI_RA_BULKY_CU_FULL_CSN) - unit: CU - tips: - Reach CU Threadgroups Limit: - avg: AVG(SPI_RA_TGLIM_CU_FULL_CSN) - min: MIN(SPI_RA_TGLIM_CU_FULL_CSN) - max: MAX(SPI_RA_TGLIM_CU_FULL_CSN) - unit: Cycles - tips: - Reach CU Wave Limit: - avg: AVG(SPI_RA_WVLIM_STALL_CSN) - min: MIN(SPI_RA_WVLIM_STALL_CSN) - max: MAX(SPI_RA_WVLIM_STALL_CSN) - unit: Cycles - tips: VGPR Writes: avg: AVG((((4 * SPI_VWC_CSC_WR) / SPI_CSN_WAVE) if (SPI_CSN_WAVE != 0) else None)) @@ -172,3 +79,89 @@ Panel Config: None)) unit: Cycles/wave tips: + - metric_table: + id: 602 + title: Workgroup Manager - Resource Allocation + header: + metric: Metric + avg: Avg + min: Min + max: Max + unit: Unit + tips: Tips + metric: + Not-scheduled Rate (Workgroup Manager): + avg: AVG((100 * SPI_RA_REQ_NO_ALLOC_CSN / (GRBM_SPI_BUSY * $numSE)) if (GRBM_SPI_BUSY != + 0) else None) + min: MIN((100 * SPI_RA_REQ_NO_ALLOC_CSN / (GRBM_SPI_BUSY * $numSE)) if (GRBM_SPI_BUSY != + 0) else None) + max: MAX((100 * SPI_RA_REQ_NO_ALLOC_CSN / (GRBM_SPI_BUSY * $numSE)) if (GRBM_SPI_BUSY != + 0) else None) + unit: Pct + tips: + Not-scheduled Rate (Scheduler-Pipe): + avg: AVG((100 * SPI_RA_REQ_NO_ALLOC / (GRBM_SPI_BUSY * $numSE)) if (GRBM_SPI_BUSY != + 0) else None) + min: MIN((100 * SPI_RA_REQ_NO_ALLOC / (GRBM_SPI_BUSY * $numSE)) if (GRBM_SPI_BUSY != + 0) else None) + max: MAX((100 * SPI_RA_REQ_NO_ALLOC / (GRBM_SPI_BUSY * $numSE)) if (GRBM_SPI_BUSY != + 0) else None) + unit: Pct + tips: + Scheduler-Pipe Stall Rate: + avg: AVG((((100 * SPI_RA_RES_STALL_CSN) / (GRBM_SPI_BUSY * $numSE)) if (GRBM_SPI_BUSY != + 0) else None)) + min: MIN((((100 * SPI_RA_RES_STALL_CSN) / (GRBM_SPI_BUSY * $numSE)) if (GRBM_SPI_BUSY != + 0) else None)) + max: MAX((((100 * SPI_RA_RES_STALL_CSN) / (GRBM_SPI_BUSY * $numSE)) if (GRBM_SPI_BUSY != + 0) else None)) + unit: Pct + tips: + Scratch Stall Rate: + avg: AVG((100 * SPI_RA_TMP_STALL_CSN / (GRBM_SPI_BUSY * $numSE)) if (GRBM_SPI_BUSY != 0) else None) + min: MIN((100 * SPI_RA_TMP_STALL_CSN / (GRBM_SPI_BUSY * $numSE)) if (GRBM_SPI_BUSY != 0) else None) + max: MAX((100 * SPI_RA_TMP_STALL_CSN / (GRBM_SPI_BUSY * $numSE)) if (GRBM_SPI_BUSY != 0) else None) + unit: Pct + tips: + Insufficient SIMD Waveslots: + avg: AVG(100 * SPI_RA_WAVE_SIMD_FULL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + min: MIN(100 * SPI_RA_WAVE_SIMD_FULL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + max: MAX(100 * SPI_RA_WAVE_SIMD_FULL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + unit: Pct + tips: + Insufficient SIMD VGPRs: + avg: AVG(100 * SPI_RA_VGPR_SIMD_FULL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + min: MIN(100 * SPI_RA_VGPR_SIMD_FULL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + max: MAX(100 * SPI_RA_VGPR_SIMD_FULL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + unit: Pct + tips: + Insufficient SIMD SGPRs: + avg: AVG(100 * SPI_RA_SGPR_SIMD_FULL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + min: MIN(100 * SPI_RA_SGPR_SIMD_FULL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + max: MAX(100 * SPI_RA_SGPR_SIMD_FULL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + unit: Pct + tips: + Insufficient CU LDS: + avg: AVG(400 * SPI_RA_LDS_CU_FULL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + min: MIN(400 * SPI_RA_LDS_CU_FULL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + max: MAX(400 * SPI_RA_LDS_CU_FULL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + unit: Pct + tips: + Insufficient CU Barriers: + avg: AVG(400 * SPI_RA_BAR_CU_FULL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + min: MIN(400 * SPI_RA_BAR_CU_FULL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + max: MAX(400 * SPI_RA_BAR_CU_FULL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + unit: Pct + tips: + Reached CU Workgroup Limit: + avg: AVG(400 * SPI_RA_TGLIM_CU_FULL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + min: MIN(400 * SPI_RA_TGLIM_CU_FULL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + max: MAX(400 * SPI_RA_TGLIM_CU_FULL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + unit: Pct + tips: + Reached CU Wavefront Limit: + avg: AVG(400 * SPI_RA_WVLIM_STALL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + min: MIN(400 * SPI_RA_WVLIM_STALL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + max: MAX(400 * SPI_RA_WVLIM_STALL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + unit: Pct + tips: \ No newline at end of file diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx941/0700_wavefront-launch.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx941/0700_wavefront-launch.yaml index ba8398e5cb..d4b60fe398 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx941/0700_wavefront-launch.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx941/0700_wavefront-launch.yaml @@ -26,9 +26,9 @@ Panel Config: unit: Work Items tips: Workgroup Size: - avg: AVG(LDS_Per_Workgroup) - min: MIN(LDS_Per_Workgroup) - max: MAX(LDS_Per_Workgroup) + avg: AVG(Workgroup_Size) + min: MIN(Workgroup_Size) + max: MAX(Workgroup_Size) unit: Work Items tips: Total Wavefronts: @@ -77,7 +77,7 @@ Panel Config: avg: AVG(Scratch_Per_Workitem) min: MIN(Scratch_Per_Workitem) max: MAX(Scratch_Per_Workitem) - unit: Bytes + unit: Bytes/Workitem tips: - metric_table: @@ -103,7 +103,7 @@ Panel Config: max: MAX(GRBM_GUI_ACTIVE) unit: Cycle tips: - Instr/wavefront: + Instructions per wavefront: avg: AVG((SQ_INSTS / SQ_WAVES)) min: MIN((SQ_INSTS / SQ_WAVES)) max: MAX((SQ_INSTS / SQ_WAVES)) diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx941/1000_compute-unit-instruction-mix.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx941/1000_compute-unit-instruction-mix.yaml index b6ed293940..64769ecd81 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx941/1000_compute-unit-instruction-mix.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx941/1000_compute-unit-instruction-mix.yaml @@ -10,7 +10,7 @@ Panel Config: data source: - metric_table: id: 1001 - title: Instruction Mix + title: Overall Instruction Mix header: metric: Metric avg: Avg @@ -19,7 +19,7 @@ Panel Config: unit: Unit tips: Tips metric: - VALU - Vector: + VALU: avg: AVG(((SQ_INSTS_VALU - SQ_INSTS_MFMA) / $denom)) min: MIN(((SQ_INSTS_VALU - SQ_INSTS_MFMA) / $denom)) max: MAX(((SQ_INSTS_VALU - SQ_INSTS_MFMA) / $denom)) @@ -37,7 +37,7 @@ Panel Config: max: MAX((SQ_INSTS_LDS / $denom)) unit: (instr + $normUnit) tips: - VALU - MFMA: + MFMA: avg: AVG((SQ_INSTS_MFMA / $denom)) min: MIN((SQ_INSTS_MFMA / $denom)) max: MAX((SQ_INSTS_MFMA / $denom)) @@ -61,12 +61,6 @@ Panel Config: max: MAX((SQ_INSTS_BRANCH / $denom)) unit: (instr + $normUnit) tips: - GDS: - avg: AVG((SQ_INSTS_GDS / $denom)) - min: MIN((SQ_INSTS_GDS / $denom)) - max: MAX((SQ_INSTS_GDS / $denom)) - unit: (instr + $normUnit) - tips: - metric_table: id: 1002 @@ -174,55 +168,100 @@ Panel Config: id: 1003 title: VMEM Instr Mix header: - type: type - count: Count + metric: Metric + avg: Avg + min: Min + max: Max + unit: Unit tips: Tips metric: - Buffer Instr: - count: AVG((TA_BUFFER_WAVEFRONTS_sum / $denom)) - tips: - Buffer Read: - count: AVG((TA_BUFFER_READ_WAVEFRONTS_sum / $denom)) - tips: - Buffer Write: - count: AVG((TA_BUFFER_WRITE_WAVEFRONTS_sum / $denom)) - tips: - Buffer Atomic: - count: AVG((TA_BUFFER_ATOMIC_WAVEFRONTS_sum / $denom)) - tips: - Flat Instr: - count: AVG((TA_FLAT_WAVEFRONTS_sum / $denom)) - tips: - Flat Read: - count: AVG((TA_FLAT_READ_WAVEFRONTS_sum / $denom)) - tips: - Flat Write: - count: AVG((TA_FLAT_WRITE_WAVEFRONTS_sum / $denom)) - tips: - Flat Atomic: - count: AVG((TA_FLAT_ATOMIC_WAVEFRONTS_sum / $denom)) - tips: + Global/Generic Instr: + avg: AVG((TA_FLAT_WAVEFRONTS_sum / $denom)) + min: MIN((TA_FLAT_WAVEFRONTS_sum / $denom)) + max: MAX((TA_FLAT_WAVEFRONTS_sum / $denom)) + unit: (instr + $normUnit) + tips: + Global/Generic Read: + avg: AVG((TA_FLAT_READ_WAVEFRONTS_sum / $denom)) + min: MIN((TA_FLAT_READ_WAVEFRONTS_sum / $denom)) + max: MAX((TA_FLAT_READ_WAVEFRONTS_sum / $denom)) + unit: (instr + $normUnit) + tips: + Global/Generic Write: + avg: AVG((TA_FLAT_WRITE_WAVEFRONTS_sum / $denom)) + min: MIN((TA_FLAT_WRITE_WAVEFRONTS_sum / $denom)) + max: MAX((TA_FLAT_WRITE_WAVEFRONTS_sum / $denom)) + unit: (instr + $normUnit) + tips: + Global/Generic Atomic: + avg: AVG((TA_FLAT_ATOMIC_WAVEFRONTS_sum / $denom)) + min: MIN((TA_FLAT_ATOMIC_WAVEFRONTS_sum / $denom)) + max: MAX((TA_FLAT_ATOMIC_WAVEFRONTS_sum / $denom)) + unit: (instr + $normUnit) + tips: + Spill/Stack Instr: + avg: AVG((TA_BUFFER_WAVEFRONTS_sum / $denom)) + min: MIN((TA_BUFFER_WAVEFRONTS_sum / $denom)) + max: MAX((TA_BUFFER_WAVEFRONTS_sum / $denom)) + unit: (instr + $normUnit) + tips: + Spill/Stack Read: + avg: AVG((TA_BUFFER_READ_WAVEFRONTS_sum / $denom)) + min: MIN((TA_BUFFER_READ_WAVEFRONTS_sum / $denom)) + max: MAX((TA_BUFFER_READ_WAVEFRONTS_sum / $denom)) + unit: (instr + $normUnit) + tips: + Spill/Stack Write: + avg: AVG((TA_BUFFER_WRITE_WAVEFRONTS_sum / $denom)) + min: MIN((TA_BUFFER_WRITE_WAVEFRONTS_sum / $denom)) + max: MAX((TA_BUFFER_WRITE_WAVEFRONTS_sum / $denom)) + unit: (instr + $normUnit) + tips: + Spill/Stack Atomic: + avg: AVG((TA_BUFFER_ATOMIC_WAVEFRONTS_sum / $denom)) + min: MIN((TA_BUFFER_ATOMIC_WAVEFRONTS_sum / $denom)) + max: MAX((TA_BUFFER_ATOMIC_WAVEFRONTS_sum / $denom)) + unit: (instr + $normUnit) + tips: - metric_table: id: 1004 title: MFMA Arithmetic Instr Mix header: - type: type - count: Count + metric: Metric + avg: Avg + min: Min + max: Max + unit: Unit tips: Tips metric: MFMA-I8: - count: AVG((SQ_INSTS_VALU_MFMA_I8 / $denom)) + avg: AVG((SQ_INSTS_VALU_MFMA_I8 / $denom)) + min: MIN((SQ_INSTS_VALU_MFMA_I8 / $denom)) + max: MAX((SQ_INSTS_VALU_MFMA_I8 / $denom)) + unit: (instr + $normUnit) tips: MFMA-F16: - count: AVG((SQ_INSTS_VALU_MFMA_F16 / $denom)) + avg: AVG((SQ_INSTS_VALU_MFMA_F16 / $denom)) + min: MIN((SQ_INSTS_VALU_MFMA_F16 / $denom)) + max: MAX((SQ_INSTS_VALU_MFMA_F16 / $denom)) + unit: (instr + $normUnit) tips: MFMA-BF16: - count: AVG((SQ_INSTS_VALU_MFMA_BF16 / $denom)) + avg: AVG((SQ_INSTS_VALU_MFMA_BF16 / $denom)) + min: MIN((SQ_INSTS_VALU_MFMA_BF16 / $denom)) + max: MAX((SQ_INSTS_VALU_MFMA_BF16 / $denom)) + unit: (instr + $normUnit) tips: MFMA-F32: - count: AVG((SQ_INSTS_VALU_MFMA_F32 / $denom)) + avg: AVG((SQ_INSTS_VALU_MFMA_F32 / $denom)) + min: MIN((SQ_INSTS_VALU_MFMA_F32 / $denom)) + max: MAX((SQ_INSTS_VALU_MFMA_F32 / $denom)) + unit: (instr + $normUnit) tips: MFMA-F64: - count: AVG((SQ_INSTS_VALU_MFMA_F64 / $denom)) + avg: AVG((SQ_INSTS_VALU_MFMA_F64 / $denom)) + min: MIN((SQ_INSTS_VALU_MFMA_F64 / $denom)) + max: MAX((SQ_INSTS_VALU_MFMA_F64 / $denom)) + unit: (instr + $normUnit) tips: diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx941/1100_compute-unit-compute-pipeline.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx941/1100_compute-unit-compute-pipeline.yaml index 0119b4caf9..53d49b2059 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx941/1100_compute-unit-compute-pipeline.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx941/1100_compute-unit-compute-pipeline.yaml @@ -13,43 +13,68 @@ Panel Config: title: Speed-of-Light header: metric: Metric - value: Value + value: Avg unit: Unit + peak: Peak + pop: Pct of Peak tips: Tips metric: - valu_flops_pop: - value: ((100 * AVG(((((64 * (((SQ_INSTS_VALU_ADD_F16 + SQ_INSTS_VALU_MUL_F16) + VALU FLOPs: + value: 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)))) + / (End_Timestamp - Start_Timestamp))) + unit: GFLOP + peak: (((($sclk * $numCU) * 64) * 2) / 1000) + pop: ((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)))) / (End_Timestamp - Start_Timestamp)))) / (((($sclk * $numCU) * 64) * 2) / 1000)) - unit: Pct of Peak tips: - mfma_flops_bf16_pop: - value: ((100 * AVG(((SQ_INSTS_VALU_MFMA_MOPS_BF16 * 512) / (End_Timestamp - Start_Timestamp)))) - / ((($sclk * $numCU) * 512) / 1000)) - unit: Pct of Peak + VALU IOPs: + value: AVG(((64 * (SQ_INSTS_VALU_INT32 + SQ_INSTS_VALU_INT64)) / (End_Timestamp - Start_Timestamp))) + unit: GIOP + peak: (((($sclk * $numCU) * 64) * 2) / 1000) + pop: ((100 * AVG(((64 * (SQ_INSTS_VALU_INT32 + SQ_INSTS_VALU_INT64)) / (End_Timestamp + - Start_Timestamp)))) / (((($sclk * $numCU) * 64) * 2) / 1000)) tips: - mfma_flops_f16_pop: - value: ((100 * AVG(((SQ_INSTS_VALU_MFMA_MOPS_F16 * 512) / (End_Timestamp - Start_Timestamp)))) + MFMA FLOPs (BF16): + value: AVG(((SQ_INSTS_VALU_MFMA_MOPS_BF16 * 512) / (End_Timestamp - Start_Timestamp))) + unit: GFLOP + peak: ((($sclk * $numCU) * 1024) / 1000) + pop: ((100 * AVG(((SQ_INSTS_VALU_MFMA_MOPS_BF16 * 512) / (End_Timestamp - Start_Timestamp)))) / ((($sclk * $numCU) * 1024) / 1000)) - unit: Pct of Peak tips: - mfma_flops_f32_pop: - value: ((100 * AVG(((SQ_INSTS_VALU_MFMA_MOPS_F32 * 512) / (End_Timestamp - Start_Timestamp)))) - / ((($sclk * $numCU) * 256) / 1000)) - unit: Pct of Peak - tips: - mfma_flops_f64_pop: - value: ((100 * AVG(((SQ_INSTS_VALU_MFMA_MOPS_F64 * 512) / (End_Timestamp - Start_Timestamp)))) - / ((($sclk * $numCU) * 256) / 1000)) - unit: Pct of Peak - tips: - mfma_flops_i8_pop: - value: ((100 * AVG(((SQ_INSTS_VALU_MFMA_MOPS_I8 * 512) / (End_Timestamp - Start_Timestamp)))) + MFMA FLOPs (F16): + value: AVG(((SQ_INSTS_VALU_MFMA_MOPS_F16 * 512) / (End_Timestamp - Start_Timestamp))) + unit: GFLOP + peak: ((($sclk * $numCU) * 1024) / 1000) + pop: ((100 * AVG(((SQ_INSTS_VALU_MFMA_MOPS_F16 * 512) / (End_Timestamp - Start_Timestamp)))) + / ((($sclk * $numCU) * 1024) / 1000)) + tips: + MFMA FLOPs (F32): + value: AVG(((SQ_INSTS_VALU_MFMA_MOPS_F32 * 512) / (End_Timestamp - Start_Timestamp))) + unit: GFLOP + peak: ((($sclk * $numCU) * 256) / 1000) + pop: ((100 * AVG(((SQ_INSTS_VALU_MFMA_MOPS_F32 * 512) / (End_Timestamp - Start_Timestamp)))) + / ((($sclk * $numCU) * 256) / 1000)) + tips: + MFMA FLOPs (F64): + value: AVG(((SQ_INSTS_VALU_MFMA_MOPS_F64 * 512) / (End_Timestamp - Start_Timestamp))) + unit: GFLOP + peak: ((($sclk * $numCU) * 256) / 1000) + pop: ((100 * AVG(((SQ_INSTS_VALU_MFMA_MOPS_F64 * 512) / (End_Timestamp - Start_Timestamp)))) + / ((($sclk * $numCU) * 256) / 1000)) + tips: + MFMA IOPs (INT8): + value: AVG(((SQ_INSTS_VALU_MFMA_MOPS_I8 * 512) / (End_Timestamp - Start_Timestamp))) + unit: GIOP + peak: ((($sclk * $numCU) * 1024) / 1000) + pop: ((100 * AVG(((SQ_INSTS_VALU_MFMA_MOPS_I8 * 512) / (End_Timestamp - Start_Timestamp)))) / ((($sclk * $numCU) * 1024) / 1000)) - unit: Pct of Peak tips: - metric_table: @@ -63,36 +88,48 @@ Panel Config: unit: Unit tips: Tips metric: - IPC (Avg): + IPC: avg: AVG((SQ_INSTS / SQ_BUSY_CU_CYCLES)) min: MIN((SQ_INSTS / SQ_BUSY_CU_CYCLES)) max: MAX((SQ_INSTS / SQ_BUSY_CU_CYCLES)) unit: Instr/cycle tips: - IPC (Issue): - avg: AVG(((((((((SQ_INSTS_VALU + SQ_INSTS_VMEM) + SQ_INSTS_SALU) + SQ_INSTS_SMEM) - + SQ_INSTS_GDS) + SQ_INSTS_BRANCH) + SQ_INSTS_SENDMSG) + SQ_INSTS_VSKIPPED) + IPC (Issued): + avg: AVG(((((((((SQ_INSTS_VALU + SQ_INSTS_VMEM) + SQ_INSTS_SALU) + SQ_INSTS_SMEM)) + + SQ_INSTS_BRANCH) + SQ_INSTS_SENDMSG) + SQ_INSTS_VSKIPPED + SQ_INSTS_LDS) / SQ_ACTIVE_INST_ANY)) - min: MIN(((((((((SQ_INSTS_VALU + SQ_INSTS_VMEM) + SQ_INSTS_SALU) + SQ_INSTS_SMEM) - + SQ_INSTS_GDS) + SQ_INSTS_BRANCH) + SQ_INSTS_SENDMSG) + SQ_INSTS_VSKIPPED) + min: MIN(((((((((SQ_INSTS_VALU + SQ_INSTS_VMEM) + SQ_INSTS_SALU) + SQ_INSTS_SMEM)) + + SQ_INSTS_BRANCH) + SQ_INSTS_SENDMSG) + SQ_INSTS_VSKIPPED + SQ_INSTS_LDS) / SQ_ACTIVE_INST_ANY)) - max: MAX(((((((((SQ_INSTS_VALU + SQ_INSTS_VMEM) + SQ_INSTS_SALU) + SQ_INSTS_SMEM) - + SQ_INSTS_GDS) + SQ_INSTS_BRANCH) + SQ_INSTS_SENDMSG) + SQ_INSTS_VSKIPPED) + max: MAX(((((((((SQ_INSTS_VALU + SQ_INSTS_VMEM) + SQ_INSTS_SALU) + SQ_INSTS_SMEM)) + + SQ_INSTS_BRANCH) + SQ_INSTS_SENDMSG) + SQ_INSTS_VSKIPPED + SQ_INSTS_LDS) / SQ_ACTIVE_INST_ANY)) unit: Instr/cycle tips: - SALU Util: + SALU Utilization: avg: AVG((((100 * SQ_ACTIVE_INST_SCA) / GRBM_GUI_ACTIVE) / $numCU)) min: MIN((((100 * SQ_ACTIVE_INST_SCA) / GRBM_GUI_ACTIVE) / $numCU)) max: MAX((((100 * SQ_ACTIVE_INST_SCA) / GRBM_GUI_ACTIVE) / $numCU)) unit: pct tips: - VALU Util: + VALU Utilization: avg: AVG((((100 * SQ_ACTIVE_INST_VALU) / GRBM_GUI_ACTIVE) / $numCU)) min: MIN((((100 * SQ_ACTIVE_INST_VALU) / GRBM_GUI_ACTIVE) / $numCU)) max: MAX((((100 * SQ_ACTIVE_INST_VALU) / GRBM_GUI_ACTIVE) / $numCU)) unit: pct tips: + VMEM Utilization: + avg: AVG((((100 * (SQ_ACTIVE_INST_FLAT+SQ_ACTIVE_INST_VMEM)) / GRBM_GUI_ACTIVE) / $numCU)) + min: MIN((((100 * (SQ_ACTIVE_INST_FLAT+SQ_ACTIVE_INST_VMEM)) / GRBM_GUI_ACTIVE) / $numCU)) + max: MAX((((100 * (SQ_ACTIVE_INST_FLAT+SQ_ACTIVE_INST_VMEM)) / GRBM_GUI_ACTIVE) / $numCU)) + unit: pct + tips: + Branch Utilization: + avg: AVG((((100 * SQ_ACTIVE_INST_MISC) / GRBM_GUI_ACTIVE) / $numCU)) + min: MIN((((100 * SQ_ACTIVE_INST_MISC) / GRBM_GUI_ACTIVE) / $numCU)) + max: MAX((((100 * SQ_ACTIVE_INST_MISC) / GRBM_GUI_ACTIVE) / $numCU)) + unit: pct + tips: VALU Active Threads: avg: AVG(((SQ_THREAD_CYCLES_VALU / SQ_ACTIVE_INST_VALU) if (SQ_ACTIVE_INST_VALU != 0) else None)) @@ -102,7 +139,7 @@ Panel Config: != 0) else None)) unit: Threads tips: - MFMA Util: + MFMA Utilization: avg: AVG(((100 * SQ_VALU_MFMA_BUSY_CYCLES) / ((4 * $numCU) * GRBM_GUI_ACTIVE))) min: MIN(((100 * SQ_VALU_MFMA_BUSY_CYCLES) / ((4 * $numCU) * GRBM_GUI_ACTIVE))) max: MAX(((100 * SQ_VALU_MFMA_BUSY_CYCLES) / ((4 * $numCU) * GRBM_GUI_ACTIVE))) @@ -117,6 +154,26 @@ Panel Config: else None)) unit: cycles/instr tips: + VMEM Latency: + avg: AVG(((SQ_ACCUM_PREV_HIRES / SQ_INSTS_VMEM) if (SQ_INSTS_VMEM != 0) + else None)) + min: MIN(((SQ_ACCUM_PREV_HIRES / SQ_INSTS_VMEM) if (SQ_INSTS_VMEM != 0) + else None)) + max: MAX(((SQ_ACCUM_PREV_HIRES / SQ_INSTS_VMEM) if (SQ_INSTS_VMEM != 0) + else None)) + unit: Cycles + coll_level: SQ_INST_LEVEL_VMEM + tips: + SMEM Latency: + avg: AVG(((SQ_ACCUM_PREV_HIRES / SQ_INSTS_SMEM) if (SQ_INSTS_SMEM != 0) + else None)) + min: MIN(((SQ_ACCUM_PREV_HIRES / SQ_INSTS_SMEM) if (SQ_INSTS_SMEM != 0) + else None)) + max: MAX(((SQ_ACCUM_PREV_HIRES / SQ_INSTS_SMEM) if (SQ_INSTS_SMEM != 0) + else None)) + unit: Cycles + coll_level: SQ_INST_LEVEL_SMEM + tips: - metric_table: id: 1103 @@ -153,10 +210,10 @@ Panel Config: $denom)) unit: (OPs + $normUnit) tips: - INT8 OPs: - avg: AVG(((SQ_INSTS_VALU_MFMA_MOPS_I8 * 512) / $denom)) - min: MIN(((SQ_INSTS_VALU_MFMA_MOPS_I8 * 512) / $denom)) - max: MAX(((SQ_INSTS_VALU_MFMA_MOPS_I8 * 512) / $denom)) + IOPs (Total): + avg: AVG(((64 * (SQ_INSTS_VALU_INT32 + SQ_INSTS_VALU_INT64)) + (SQ_INSTS_VALU_MFMA_MOPS_I8 * 512)) / $denom) + min: MIN(((64 * (SQ_INSTS_VALU_INT32 + SQ_INSTS_VALU_INT64)) + (SQ_INSTS_VALU_MFMA_MOPS_I8 * 512)) / $denom) + max: MAX(((64 * (SQ_INSTS_VALU_INT32 + SQ_INSTS_VALU_INT64)) + (SQ_INSTS_VALU_MFMA_MOPS_I8 * 512)) / $denom) unit: (OPs + $normUnit) tips: F16 OPs: @@ -195,4 +252,9 @@ Panel Config: + (SQ_INSTS_VALU_FMA_F64 * 2))) + (512 * SQ_INSTS_VALU_MFMA_MOPS_F64)) / $denom)) unit: (OPs + $normUnit) tips: - + INT8 OPs: + avg: AVG(((SQ_INSTS_VALU_MFMA_MOPS_I8 * 512) / $denom)) + min: MIN(((SQ_INSTS_VALU_MFMA_MOPS_I8 * 512) / $denom)) + max: MAX(((SQ_INSTS_VALU_MFMA_MOPS_I8 * 512) / $denom)) + unit: (OPs + $normUnit) + tips: \ No newline at end of file diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx941/1200_lds.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx941/1200_lds.yaml index c765733051..dd049c6c78 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx941/1200_lds.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx941/1200_lds.yaml @@ -13,24 +13,27 @@ Panel Config: title: Speed-of-Light header: metric: Metric - value: Value + value: Avg + unit: Unit tips: Tips metric: Utilization: value: AVG(((100 * SQ_LDS_IDX_ACTIVE) / (GRBM_GUI_ACTIVE * $numCU))) + unit: Pct of Peak tips: Access Rate: value: AVG(((200 * SQ_ACTIVE_INST_LDS) / (GRBM_GUI_ACTIVE * $numCU))) + unit: Pct of Peak tips: - Bandwidth (Pct-of-Peak): - value: - AVG((((((SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT) * 4) * TO_INT($LDSBanks)) + Theoretical Bandwidth (% of Peak): + value: AVG((((((SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT) * 4) * TO_INT($LDSBanks)) / (End_Timestamp - Start_Timestamp)) / (($sclk * $numCU) * 0.00128))) + unit: Pct of Peak tips: Bank Conflict Rate: - value: - AVG((((SQ_LDS_BANK_CONFLICT * 3.125) / (SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT)) + value: AVG((((SQ_LDS_BANK_CONFLICT * 3.125) / (SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT)) if ((SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT) != 0) else None)) + unit: Pct of Peak tips: comparable: false # for now cli_style: simple_bar @@ -52,27 +55,28 @@ Panel Config: max: MAX((SQ_INSTS_LDS / $denom)) unit: (Instr + $normUnit) tips: - Bandwidth: - avg: - AVG(((((SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT) * 4) * TO_INT($LDSBanks)) + Theoretical Bandwidth: + avg: AVG(((((SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT) * 4) * TO_INT($LDSBanks)) / $denom)) - min: - MIN(((((SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT) * 4) * TO_INT($LDSBanks)) + min: MIN(((((SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT) * 4) * TO_INT($LDSBanks)) / $denom)) - max: - MAX(((((SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT) * 4) * TO_INT($LDSBanks)) + max: MAX(((((SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT) * 4) * TO_INT($LDSBanks)) / $denom)) unit: (Bytes + $normUnit) tips: - Bank Conficts/Access: - avg: - AVG(((SQ_LDS_BANK_CONFLICT / (SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT)) + LDS Latency: + avg: AVG(((SQ_ACCUM_PREV_HIRES / SQ_INSTS_LDS) if (SQ_INSTS_LDS != 0) else None)) + min: MIN(((SQ_ACCUM_PREV_HIRES / SQ_INSTS_LDS) if (SQ_INSTS_LDS != 0) else None)) + max: MAX(((SQ_ACCUM_PREV_HIRES / SQ_INSTS_LDS) if (SQ_INSTS_LDS != 0) else None)) + unit: Cycles + coll_level: SQ_INST_LEVEL_LDS + tips: + Bank Conflicts/Access: + avg: AVG(((SQ_LDS_BANK_CONFLICT / (SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT)) if ((SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT) != 0) else None)) - min: - MIN(((SQ_LDS_BANK_CONFLICT / (SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT)) + min: MIN(((SQ_LDS_BANK_CONFLICT / (SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT)) if ((SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT) != 0) else None)) - max: - MAX(((SQ_LDS_BANK_CONFLICT / (SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT)) + max: MAX(((SQ_LDS_BANK_CONFLICT / (SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT)) if ((SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT) != 0) else None)) unit: Conflicts/Access tips: @@ -82,7 +86,7 @@ Panel Config: max: MAX((SQ_LDS_IDX_ACTIVE / $denom)) unit: (Cycles + $normUnit) tips: - Atomic Cycles: + Atomic Return Cycles: avg: AVG((SQ_LDS_ATOMIC_RETURN / $denom)) min: MIN((SQ_LDS_ATOMIC_RETURN / $denom)) max: MAX((SQ_LDS_ATOMIC_RETURN / $denom)) @@ -110,12 +114,5 @@ Panel Config: avg: AVG((SQ_LDS_MEM_VIOLATIONS / $denom)) min: MIN((SQ_LDS_MEM_VIOLATIONS / $denom)) max: MAX((SQ_LDS_MEM_VIOLATIONS / $denom)) - unit: ( + $normUnit) + unit: (Accesses + $normUnit) tips: - LDS Latency: - avg: AVG(((SQ_ACCUM_PREV_HIRES / SQ_INSTS_LDS) if (SQ_INSTS_LDS != 0) else None)) - min: MIN(((SQ_ACCUM_PREV_HIRES / SQ_INSTS_LDS) if (SQ_INSTS_LDS != 0) else None)) - max: MAX(((SQ_ACCUM_PREV_HIRES / SQ_INSTS_LDS) if (SQ_INSTS_LDS != 0) else None)) - unit: Cycles - coll_level: SQ_INST_LEVEL_LDS - tips: diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx941/1300_instruction-cache.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx941/1300_instruction-cache.yaml index bb69b4dfcb..109e545543 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx941/1300_instruction-cache.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx941/1300_instruction-cache.yaml @@ -13,17 +13,24 @@ Panel Config: title: Speed-of-Light header: metric: Metric - value: Value + value: Avg + unit: Unit tips: Tips metric: Bandwidth: value: AVG(((SQC_ICACHE_REQ * 100000) / (($sclk * $numSQC) * (End_Timestamp - Start_Timestamp)))) + unit: Pct of Peak tips: - Cache Hit: - value: - AVG(((SQC_ICACHE_HITS * 100) / ((SQC_ICACHE_HITS + SQC_ICACHE_MISSES) + Cache Hit Rate: + value: AVG(((SQC_ICACHE_HITS * 100) / ((SQC_ICACHE_HITS + SQC_ICACHE_MISSES) + SQC_ICACHE_MISSES_DUPLICATE))) + unit: Pct of Peak + tips: + L1I-L2 Bandwidth: + value: AVG(((SQC_TC_INST_REQ * 100000) / (2 * ($sclk * $numSQC) + * (End_Timestamp - Start_Timestamp)))) + unit: Pct of Peak tips: comparable: false # for now cli_style: simple_bar @@ -63,15 +70,36 @@ Panel Config: max: MAX((SQC_ICACHE_MISSES_DUPLICATE / $denom)) unit: (Misses + $normUnit) tips: - Cache Hit: - avg: - AVG(((100 * SQC_ICACHE_HITS) / ((SQC_ICACHE_HITS + SQC_ICACHE_MISSES) + Cache Hit Rate: + avg: AVG(((100 * SQC_ICACHE_HITS) / ((SQC_ICACHE_HITS + SQC_ICACHE_MISSES) + + SQC_ICACHE_MISSES_DUPLICATE))) + min: MIN(((100 * SQC_ICACHE_HITS) / ((SQC_ICACHE_HITS + SQC_ICACHE_MISSES) + + SQC_ICACHE_MISSES_DUPLICATE))) + max: MAX(((100 * SQC_ICACHE_HITS) / ((SQC_ICACHE_HITS + SQC_ICACHE_MISSES) + SQC_ICACHE_MISSES_DUPLICATE))) - min: - MIN(((100 * SQC_ICACHE_HITS) / ((SQC_ICACHE_HITS + SQC_ICACHE_MISSES) + - SQC_ICACHE_MISSES_DUPLICATE))) - max: - MAX(((100 * SQC_ICACHE_HITS) / ((SQC_ICACHE_HITS + SQC_ICACHE_MISSES) + - SQC_ICACHE_MISSES_DUPLICATE))) unit: pct tips: + Instruction Fetch Latency: + avg: AVG((SQ_ACCUM_PREV_HIRES / SQ_IFETCH)) + min: MIN((SQ_ACCUM_PREV_HIRES / SQ_IFETCH)) + max: MAX((SQ_ACCUM_PREV_HIRES / SQ_IFETCH)) + unit: Cycles + coll_level: SQ_IFETCH_LEVEL + tips: + - metric_table: + id: 1303 + title: Instruction Cache - L2 Interface + header: + metric: Metric + mean: Mean + min: Min + max: Max + unit: Unit + tips: Tips + metric: + L1I-L2 Bandwidth: + mean: AVG(((SQC_TC_INST_REQ * 64) / $denom)) + min: MIN(((SQC_TC_INST_REQ * 64) / $denom)) + max: MAX(((SQC_TC_INST_REQ * 64) / $denom)) + unit: (Bytes + $normUnit) + tips: diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx941/1400_constant-cache.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx941/1400_constant-cache.yaml index 8e49b66757..312a760834 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx941/1400_constant-cache.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx941/1400_constant-cache.yaml @@ -12,18 +12,25 @@ Panel Config: id: 1401 title: Speed-of-Light header: - mertic: Metric - value: Value + metric: Metric + value: Avg + unit: Unit tips: Tips metric: Bandwidth: value: AVG(((SQC_DCACHE_REQ * 100000) / (($sclk * $numSQC) * (End_Timestamp - Start_Timestamp)))) + unit: Pct of Peak tips: - Cache Hit: - value: - AVG((((SQC_DCACHE_HITS * 100) / (SQC_DCACHE_HITS + SQC_DCACHE_MISSES + SQC_DCACHE_MISSES_DUPLICATE)) + Cache Hit Rate: + value: AVG((((SQC_DCACHE_HITS * 100) / (SQC_DCACHE_HITS + SQC_DCACHE_MISSES + SQC_DCACHE_MISSES_DUPLICATE)) if ((SQC_DCACHE_HITS + SQC_DCACHE_MISSES + SQC_DCACHE_MISSES_DUPLICATE) != 0) else None)) + unit: Pct of Peak + tips: + sL1D-L2 BW: + value: AVG(((SQC_TC_DATA_READ_REQ + SQC_TC_DATA_WRITE_REQ + SQC_TC_DATA_ATOMIC_REQ) * 100000) + / (2 * ($sclk * $numSQC) * (End_Timestamp - Start_Timestamp))) + unit: Pct of Peak tips: comparable: false # for now cli_style: simple_bar @@ -63,30 +70,24 @@ Panel Config: max: MAX((SQC_DCACHE_MISSES_DUPLICATE / $denom)) unit: (Req + $normUnit) tips: - Cache Hit: - avg: - AVG((((100 * SQC_DCACHE_HITS) / ((SQC_DCACHE_HITS + SQC_DCACHE_MISSES) + Cache Hit Rate: + avg: AVG((((100 * SQC_DCACHE_HITS) / ((SQC_DCACHE_HITS + SQC_DCACHE_MISSES) + SQC_DCACHE_MISSES_DUPLICATE)) if (((SQC_DCACHE_HITS + SQC_DCACHE_MISSES) + SQC_DCACHE_MISSES_DUPLICATE) != 0) else None)) - min: - MIN((((100 * SQC_DCACHE_HITS) / ((SQC_DCACHE_HITS + SQC_DCACHE_MISSES) + min: MIN((((100 * SQC_DCACHE_HITS) / ((SQC_DCACHE_HITS + SQC_DCACHE_MISSES) + SQC_DCACHE_MISSES_DUPLICATE)) if (((SQC_DCACHE_HITS + SQC_DCACHE_MISSES) + SQC_DCACHE_MISSES_DUPLICATE) != 0) else None)) - max: - MAX((((100 * SQC_DCACHE_HITS) / ((SQC_DCACHE_HITS + SQC_DCACHE_MISSES) + max: MAX((((100 * SQC_DCACHE_HITS) / ((SQC_DCACHE_HITS + SQC_DCACHE_MISSES) + SQC_DCACHE_MISSES_DUPLICATE)) if (((SQC_DCACHE_HITS + SQC_DCACHE_MISSES) + SQC_DCACHE_MISSES_DUPLICATE) != 0) else None)) unit: pct tips: Read Req (Total): - avg: - AVG((((((SQC_DCACHE_REQ_READ_1 + SQC_DCACHE_REQ_READ_2) + SQC_DCACHE_REQ_READ_4) + avg: AVG((((((SQC_DCACHE_REQ_READ_1 + SQC_DCACHE_REQ_READ_2) + SQC_DCACHE_REQ_READ_4) + SQC_DCACHE_REQ_READ_8) + SQC_DCACHE_REQ_READ_16) / $denom)) - min: - MIN((((((SQC_DCACHE_REQ_READ_1 + SQC_DCACHE_REQ_READ_2) + SQC_DCACHE_REQ_READ_4) + min: MIN((((((SQC_DCACHE_REQ_READ_1 + SQC_DCACHE_REQ_READ_2) + SQC_DCACHE_REQ_READ_4) + SQC_DCACHE_REQ_READ_8) + SQC_DCACHE_REQ_READ_16) / $denom)) - max: - MAX((((((SQC_DCACHE_REQ_READ_1 + SQC_DCACHE_REQ_READ_2) + SQC_DCACHE_REQ_READ_4) + max: MAX((((((SQC_DCACHE_REQ_READ_1 + SQC_DCACHE_REQ_READ_2) + SQC_DCACHE_REQ_READ_4) + SQC_DCACHE_REQ_READ_8) + SQC_DCACHE_REQ_READ_16) / $denom)) unit: (Req + $normUnit) tips: @@ -138,6 +139,12 @@ Panel Config: unit: Unit tips: Tips metric: + sL1D-L2 BW: + avg: AVG(((((SQC_TC_DATA_READ_REQ + SQC_TC_DATA_WRITE_REQ + SQC_TC_DATA_ATOMIC_REQ) * 64)) / $denom)) + min: MIN(((((SQC_TC_DATA_READ_REQ + SQC_TC_DATA_WRITE_REQ + SQC_TC_DATA_ATOMIC_REQ) * 64)) / $denom)) + max: MAX(((((SQC_TC_DATA_READ_REQ + SQC_TC_DATA_WRITE_REQ + SQC_TC_DATA_ATOMIC_REQ) * 64)) / $denom)) + unit: (Bytes + $normUnit) + tips: Read Req: avg: AVG((SQC_TC_DATA_READ_REQ / $denom)) min: MIN((SQC_TC_DATA_READ_REQ / $denom)) @@ -156,7 +163,7 @@ Panel Config: max: MAX((SQC_TC_DATA_ATOMIC_REQ / $denom)) unit: (Req + $normUnit) tips: - Stall: + Stall Cycles: avg: AVG((SQC_TC_STALL / $denom)) min: MIN((SQC_TC_STALL / $denom)) max: MAX((SQC_TC_STALL / $denom)) diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx941/1500_TA_and_TD.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx941/1500_TA_and_TD.yaml index 03af854976..08993f38c9 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx941/1500_TA_and_TD.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx941/1500_TA_and_TD.yaml @@ -6,11 +6,11 @@ Metric Description: # Define the panel properties and properties of each metric in the panel. Panel Config: id: 1500 - title: Texture Addresser and Texture Data (TA/TD) + title: Address Processing Unit and Data Return Path (TA/TD) data source: - metric_table: id: 1501 - title: TA + title: Address Processing Unit header: metric: Metric avg: Avg @@ -19,25 +19,25 @@ Panel Config: unit: Unit tips: Tips metric: - TA Busy: + Address Processing Unit Busy: avg: AVG(((100 * TA_TA_BUSY_sum) / (GRBM_GUI_ACTIVE * $numCU))) min: MIN(((100 * TA_TA_BUSY_sum) / (GRBM_GUI_ACTIVE * $numCU))) max: MAX(((100 * TA_TA_BUSY_sum) / (GRBM_GUI_ACTIVE * $numCU))) unit: pct tips: - TC2TA Addr Stall: + Address Stall: avg: AVG(((100 * TA_ADDR_STALLED_BY_TC_CYCLES_sum) / (GRBM_GUI_ACTIVE * $numCU))) min: MIN(((100 * TA_ADDR_STALLED_BY_TC_CYCLES_sum) / (GRBM_GUI_ACTIVE * $numCU))) max: MAX(((100 * TA_ADDR_STALLED_BY_TC_CYCLES_sum) / (GRBM_GUI_ACTIVE * $numCU))) unit: pct tips: - TC2TA Data Stall: + Data Stall: avg: AVG(((100 * TA_DATA_STALLED_BY_TC_CYCLES_sum) / (GRBM_GUI_ACTIVE * $numCU))) min: MIN(((100 * TA_DATA_STALLED_BY_TC_CYCLES_sum) / (GRBM_GUI_ACTIVE * $numCU))) max: MAX(((100 * TA_DATA_STALLED_BY_TC_CYCLES_sum) / (GRBM_GUI_ACTIVE * $numCU))) unit: pct tips: - TD2TA Addr Stall: + Data-Processor → Address Stall: avg: AVG(((100 * TA_ADDR_STALLED_BY_TD_CYCLES_sum) / (GRBM_GUI_ACTIVE * $numCU))) min: MIN(((100 * TA_ADDR_STALLED_BY_TD_CYCLES_sum) / (GRBM_GUI_ACTIVE * $numCU))) max: MAX(((100 * TA_ADDR_STALLED_BY_TD_CYCLES_sum) / (GRBM_GUI_ACTIVE * $numCU))) @@ -47,69 +47,69 @@ Panel Config: avg: AVG((TA_TOTAL_WAVEFRONTS_sum / $denom)) min: MIN((TA_TOTAL_WAVEFRONTS_sum / $denom)) max: MAX((TA_TOTAL_WAVEFRONTS_sum / $denom)) - unit: (Instr + $normUnit) + unit: (Instructions + $normUnit) tips: - Flat Instr: + Global/Generic Instructions: avg: AVG((TA_FLAT_WAVEFRONTS_sum / $denom)) min: MIN((TA_FLAT_WAVEFRONTS_sum / $denom)) max: MAX((TA_FLAT_WAVEFRONTS_sum / $denom)) - unit: (Instr + $normUnit) + unit: (Instructions + $normUnit) tips: - Flat Read Instr: + Global/Generic Read Instructions: avg: AVG((TA_FLAT_READ_WAVEFRONTS_sum / $denom)) min: MIN((TA_FLAT_READ_WAVEFRONTS_sum / $denom)) max: MAX((TA_FLAT_READ_WAVEFRONTS_sum / $denom)) - unit: (Instr + $normUnit) + unit: (Instructions + $normUnit) tips: - Flat Write Instr: + Global/Generic Write Instructions: avg: AVG((TA_FLAT_WRITE_WAVEFRONTS_sum / $denom)) min: MIN((TA_FLAT_WRITE_WAVEFRONTS_sum / $denom)) max: MAX((TA_FLAT_WRITE_WAVEFRONTS_sum / $denom)) - unit: (Instr + $normUnit) + unit: (Instructions + $normUnit) tips: - Flat Atomic Instr: + Global/Generic Atomic Instructions: avg: AVG((TA_FLAT_ATOMIC_WAVEFRONTS_sum / $denom)) min: MIN((TA_FLAT_ATOMIC_WAVEFRONTS_sum / $denom)) max: MAX((TA_FLAT_ATOMIC_WAVEFRONTS_sum / $denom)) - unit: (Instr + $normUnit) + unit: (Instructions + $normUnit) tips: - Buffer Instr: + Spill/Stack Instructions: avg: AVG((TA_BUFFER_WAVEFRONTS_sum / $denom)) min: MIN((TA_BUFFER_WAVEFRONTS_sum / $denom)) max: MAX((TA_BUFFER_WAVEFRONTS_sum / $denom)) - unit: (Instr + $normUnit) + unit: (Instructions + $normUnit) tips: - Buffer Read Instr: + Spill/Stack Read Instructions: avg: AVG((TA_BUFFER_READ_WAVEFRONTS_sum / $denom)) min: MIN((TA_BUFFER_READ_WAVEFRONTS_sum / $denom)) max: MAX((TA_BUFFER_READ_WAVEFRONTS_sum / $denom)) - unit: (Instr + $normUnit) + unit: (Instructions + $normUnit) tips: - Buffer Write Instr: + Spill/Stack Write Instructions: avg: AVG((TA_BUFFER_WRITE_WAVEFRONTS_sum / $denom)) min: MIN((TA_BUFFER_WRITE_WAVEFRONTS_sum / $denom)) max: MAX((TA_BUFFER_WRITE_WAVEFRONTS_sum / $denom)) - unit: (Instr + $normUnit) + unit: (Instructions + $normUnit) tips: - Buffer Atomic Instr: + Spill/Stack Atomic Instructions: avg: AVG((TA_BUFFER_ATOMIC_WAVEFRONTS_sum / $denom)) min: MIN((TA_BUFFER_ATOMIC_WAVEFRONTS_sum / $denom)) max: MAX((TA_BUFFER_ATOMIC_WAVEFRONTS_sum / $denom)) - unit: (Instr + $normUnit) + unit: (Instructions + $normUnit) tips: - Buffer Total Cylces: + Spill/Stack Total Cycles: avg: AVG((TA_BUFFER_TOTAL_CYCLES_sum / $denom)) min: MIN((TA_BUFFER_TOTAL_CYCLES_sum / $denom)) max: MAX((TA_BUFFER_TOTAL_CYCLES_sum / $denom)) unit: (Cycles + $normUnit) tips: - Buffer Coalesced Read: + Spill/Stack Coalesced Read: avg: AVG((TA_BUFFER_COALESCED_READ_CYCLES_sum / $denom)) min: MIN((TA_BUFFER_COALESCED_READ_CYCLES_sum / $denom)) max: MAX((TA_BUFFER_COALESCED_READ_CYCLES_sum / $denom)) unit: (Cycles + $normUnit) tips: - Buffer Coalesced Write: + Spill/Stack Coalesced Write: avg: AVG((TA_BUFFER_COALESCED_WRITE_CYCLES_sum / $denom)) min: MIN((TA_BUFFER_COALESCED_WRITE_CYCLES_sum / $denom)) max: MAX((TA_BUFFER_COALESCED_WRITE_CYCLES_sum / $denom)) @@ -118,7 +118,7 @@ Panel Config: - metric_table: id: 1502 - title: TD + title: Data-Return Path header: metric: Metric avg: Avg @@ -127,48 +127,48 @@ Panel Config: unit: Unit tips: Tips metric: - TD Busy: + Data-Return Busy: avg: AVG(((100 * TD_TD_BUSY_sum) / (GRBM_GUI_ACTIVE * $numCU))) min: MIN(((100 * TD_TD_BUSY_sum) / (GRBM_GUI_ACTIVE * $numCU))) max: MAX(((100 * TD_TD_BUSY_sum) / (GRBM_GUI_ACTIVE * $numCU))) unit: pct tips: - TC2TD Stall: + Cache RAM → Data-Return Stall: avg: AVG(((100 * TD_TC_STALL_sum) / (GRBM_GUI_ACTIVE * $numCU))) min: MIN(((100 * TD_TC_STALL_sum) / (GRBM_GUI_ACTIVE * $numCU))) max: MAX(((100 * TD_TC_STALL_sum) / (GRBM_GUI_ACTIVE * $numCU))) unit: pct tips: - SPI2TD Stall: + Workgroup manager → Data-Return Stall: avg: AVG(((100 * TD_SPI_STALL_sum) / (GRBM_GUI_ACTIVE * $numCU))) min: MIN(((100 * TD_SPI_STALL_sum) / (GRBM_GUI_ACTIVE * $numCU))) max: MAX(((100 * TD_SPI_STALL_sum) / (GRBM_GUI_ACTIVE * $numCU))) unit: pct tips: - Coalescable Instr: + Coalescable Instructions: avg: AVG((TD_COALESCABLE_WAVEFRONT_sum / $denom)) min: MIN((TD_COALESCABLE_WAVEFRONT_sum / $denom)) max: MAX((TD_COALESCABLE_WAVEFRONT_sum / $denom)) - unit: (Instr + $normUnit) + unit: (Instructions + $normUnit) tips: - Load Instr: + Read Instructions: avg: AVG((((TD_LOAD_WAVEFRONT_sum - TD_STORE_WAVEFRONT_sum) - TD_ATOMIC_WAVEFRONT_sum) / $denom)) min: MIN((((TD_LOAD_WAVEFRONT_sum - TD_STORE_WAVEFRONT_sum) - TD_ATOMIC_WAVEFRONT_sum) / $denom)) max: MAX((((TD_LOAD_WAVEFRONT_sum - TD_STORE_WAVEFRONT_sum) - TD_ATOMIC_WAVEFRONT_sum) / $denom)) - unit: (Instr + $normUnit) + unit: (Instructions + $normUnit) tips: - Store Instr: + Write Instructions: avg: AVG((TD_STORE_WAVEFRONT_sum / $denom)) min: MIN((TD_STORE_WAVEFRONT_sum / $denom)) max: MAX((TD_STORE_WAVEFRONT_sum / $denom)) - unit: (Instr + $normUnit) + unit: (Instructions + $normUnit) tips: - Atomic Instr: + Atomic Instructions: avg: AVG((TD_ATOMIC_WAVEFRONT_sum / $denom)) min: MIN((TD_ATOMIC_WAVEFRONT_sum / $denom)) max: MAX((TD_ATOMIC_WAVEFRONT_sum / $denom)) - unit: (Instr + $normUnit) - tips: + unit: (Instructions + $normUnit) + tips: \ No newline at end of file diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx941/1600_L1_cache.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx941/1600_L1_cache.yaml index 4fe54909b0..2d1b3a133b 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx941/1600_L1_cache.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx941/1600_L1_cache.yaml @@ -13,31 +13,32 @@ Panel Config: title: Speed-of-Light header: metric: Metric - value: Value + value: Avg + unit: Unit tips: Tips metric: - Buffer Coalescing: - value: - AVG(((((TA_TOTAL_WAVEFRONTS_sum * 64) * 100) / (TCP_TOTAL_ACCESSES_sum - * 4)) if (TCP_TOTAL_ACCESSES_sum != 0) else None)) - tips: - Cache Util: - value: - AVG((((TCP_GATE_EN2_sum * 100) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum - != 0) else None)) - tips: - Cache BW: - value: - ((100 * AVG(((TCP_TOTAL_CACHE_ACCESSES_sum * 64) / (End_Timestamp - Start_Timestamp)))) - / ((($sclk / 1000) * 64) * $numCU)) - tips: - Cache Hit: - value: - AVG(((100 - ((100 * (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + Hit rate: + value: AVG(((100 - ((100 * (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + TCP_TCC_ATOMIC_WITH_RET_REQ_sum) + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum)) / TCP_TOTAL_CACHE_ACCESSES_sum)) if (TCP_TOTAL_CACHE_ACCESSES_sum != 0) else None)) + unit: Pct of Peak tips: + Bandwidth: + value: ((100 * AVG(((TCP_TOTAL_CACHE_ACCESSES_sum * 64) / (End_Timestamp - Start_Timestamp)))) + / ((($sclk / 1000) * 64) * $numCU)) + unit: Pct of Peak + tips: + Utilization: + value: AVG((((TCP_GATE_EN2_sum * 100) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum + != 0) else None)) + unit: Pct of Peak + tips: + Coalescing: + value: AVG(((((TA_TOTAL_WAVEFRONTS_sum * 64) * 100) / (TCP_TOTAL_ACCESSES_sum + * 4)) if (TCP_TOTAL_ACCESSES_sum != 0) else None)) + unit: Pct of Peak + tips: comparable: false # for now cli_style: simple_bar @@ -106,23 +107,35 @@ Panel Config: unit: (Req + $normUnit) tips: Atomic Req: - avg: - AVG(((TCP_TOTAL_ATOMIC_WITH_RET_sum + TCP_TOTAL_ATOMIC_WITHOUT_RET_sum) + avg: AVG(((TCP_TOTAL_ATOMIC_WITH_RET_sum + TCP_TOTAL_ATOMIC_WITHOUT_RET_sum) / $denom)) - min: - MIN(((TCP_TOTAL_ATOMIC_WITH_RET_sum + TCP_TOTAL_ATOMIC_WITHOUT_RET_sum) + min: MIN(((TCP_TOTAL_ATOMIC_WITH_RET_sum + TCP_TOTAL_ATOMIC_WITHOUT_RET_sum) / $denom)) - max: - MAX(((TCP_TOTAL_ATOMIC_WITH_RET_sum + TCP_TOTAL_ATOMIC_WITHOUT_RET_sum) + max: MAX(((TCP_TOTAL_ATOMIC_WITH_RET_sum + TCP_TOTAL_ATOMIC_WITHOUT_RET_sum) / $denom)) unit: (Req + $normUnit) tips: Cache BW: - avg: AVG(((TCP_TOTAL_CACHE_ACCESSES_sum * 64) / (End_Timestamp - Start_Timestamp))) - min: MIN(((TCP_TOTAL_CACHE_ACCESSES_sum * 64) / (End_Timestamp - Start_Timestamp))) - max: MAX(((TCP_TOTAL_CACHE_ACCESSES_sum * 64) / (End_Timestamp - Start_Timestamp))) - unit: GB/s + avg: AVG(((TCP_TOTAL_CACHE_ACCESSES_sum * 64) / $denom)) + min: MIN(((TCP_TOTAL_CACHE_ACCESSES_sum * 64) / $denom)) + max: MAX(((TCP_TOTAL_CACHE_ACCESSES_sum * 64) / $denom)) + unit: (Bytes + $normUnit) tips: + Cache Hit Rate: + avg: AVG(((100 - ((100 * (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + + TCP_TCC_ATOMIC_WITH_RET_REQ_sum) + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum)) / + TCP_TOTAL_CACHE_ACCESSES_sum)) if (TCP_TOTAL_CACHE_ACCESSES_sum != 0) else + None)) + min: MIN(((100 - ((100 * (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + + TCP_TCC_ATOMIC_WITH_RET_REQ_sum) + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum)) / + TCP_TOTAL_CACHE_ACCESSES_sum)) if (TCP_TOTAL_CACHE_ACCESSES_sum != 0) else + None)) + max: MAX(((100 - ((100 * (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + + TCP_TCC_ATOMIC_WITH_RET_REQ_sum) + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum)) / + TCP_TOTAL_CACHE_ACCESSES_sum)) if (TCP_TOTAL_CACHE_ACCESSES_sum != 0) else + None)) + unit: pct + tips: Cache Accesses: avg: AVG((TCP_TOTAL_CACHE_ACCESSES_sum / $denom)) min: MIN((TCP_TOTAL_CACHE_ACCESSES_sum / $denom)) @@ -130,53 +143,29 @@ Panel Config: unit: (Req + $normUnit) tips: Cache Hits: - avg: - AVG(((TCP_TOTAL_CACHE_ACCESSES_sum - (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + avg: AVG(((TCP_TOTAL_CACHE_ACCESSES_sum - (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + TCP_TCC_ATOMIC_WITH_RET_REQ_sum) + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum)) / $denom)) - min: - MIN(((TCP_TOTAL_CACHE_ACCESSES_sum - (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + min: MIN(((TCP_TOTAL_CACHE_ACCESSES_sum - (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + TCP_TCC_ATOMIC_WITH_RET_REQ_sum) + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum)) / $denom)) - max: - MAX(((TCP_TOTAL_CACHE_ACCESSES_sum - (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + max: MAX(((TCP_TOTAL_CACHE_ACCESSES_sum - (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + TCP_TCC_ATOMIC_WITH_RET_REQ_sum) + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum)) / $denom)) unit: (Req + $normUnit) tips: - Cache Hit Rate: - avg: - AVG(((100 - ((100 * (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + - TCP_TCC_ATOMIC_WITH_RET_REQ_sum) + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum)) / - TCP_TOTAL_CACHE_ACCESSES_sum)) if (TCP_TOTAL_CACHE_ACCESSES_sum != 0) else - None)) - min: - MIN(((100 - ((100 * (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + - TCP_TCC_ATOMIC_WITH_RET_REQ_sum) + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum)) / - TCP_TOTAL_CACHE_ACCESSES_sum)) if (TCP_TOTAL_CACHE_ACCESSES_sum != 0) else - None)) - max: - MAX(((100 - ((100 * (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + - TCP_TCC_ATOMIC_WITH_RET_REQ_sum) + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum)) / - TCP_TOTAL_CACHE_ACCESSES_sum)) if (TCP_TOTAL_CACHE_ACCESSES_sum != 0) else - None)) - unit: pct - tips: - Invalidate: + Invalidations: avg: AVG((TCP_TOTAL_WRITEBACK_INVALIDATES_sum / $denom)) min: MIN((TCP_TOTAL_WRITEBACK_INVALIDATES_sum / $denom)) max: MAX((TCP_TOTAL_WRITEBACK_INVALIDATES_sum / $denom)) unit: (Req + $normUnit) tips: L1-L2 BW: - avg: - AVG(((64 * (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + TCP_TCC_ATOMIC_WITH_RET_REQ_sum) + avg: AVG(((64 * (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + TCP_TCC_ATOMIC_WITH_RET_REQ_sum) + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum)) / $denom)) - min: - AVG(((64 * (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + TCP_TCC_ATOMIC_WITH_RET_REQ_sum) + min: MIN(((64 * (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + TCP_TCC_ATOMIC_WITH_RET_REQ_sum) + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum)) / $denom)) - max: - AVG(((64 * (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + TCP_TCC_ATOMIC_WITH_RET_REQ_sum) + max: MAX(((64 * (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + TCP_TCC_ATOMIC_WITH_RET_REQ_sum) + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum)) / $denom)) unit: (Bytes + $normUnit) tips: @@ -193,54 +182,30 @@ Panel Config: unit: (Req + $normUnit) tips: L1-L2 Atomic: - avg: - AVG(((TCP_TCC_ATOMIC_WITH_RET_REQ_sum + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum) + avg: AVG(((TCP_TCC_ATOMIC_WITH_RET_REQ_sum + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum) / $denom)) - min: - MIN(((TCP_TCC_ATOMIC_WITH_RET_REQ_sum + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum) + min: MIN(((TCP_TCC_ATOMIC_WITH_RET_REQ_sum + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum) / $denom)) - max: - MAX(((TCP_TCC_ATOMIC_WITH_RET_REQ_sum + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum) + max: MAX(((TCP_TCC_ATOMIC_WITH_RET_REQ_sum + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum) / $denom)) unit: (Req + $normUnit) tips: L1 Access Latency: - avg: - # AVG(((TCP_TCP_LATENCY_sum / TCP_TA_TCP_STATE_READ_sum) if (TCP_TA_TCP_STATE_READ_sum - # != 0) else None)) - min: - # MIN(((TCP_TCP_LATENCY_sum / TCP_TA_TCP_STATE_READ_sum) if (TCP_TA_TCP_STATE_READ_sum - # != 0) else None)) - max: - # MAX(((TCP_TCP_LATENCY_sum / TCP_TA_TCP_STATE_READ_sum) if (TCP_TA_TCP_STATE_READ_sum - # != 0) else None)) + avg: None # Missing perfmon + min: None # Missing perfmon + max: None # Missing perfmon unit: Cycles tips: L1-L2 Read Latency: - avg: - # AVG(((TCP_TCC_READ_REQ_LATENCY_sum / (TCP_TCC_READ_REQ_sum + TCP_TCC_ATOMIC_WITH_RET_REQ_sum)) - # if ((TCP_TCC_READ_REQ_sum + TCP_TCC_ATOMIC_WITH_RET_REQ_sum) != 0) else None)) - min: - # MIN(((TCP_TCC_READ_REQ_LATENCY_sum / (TCP_TCC_READ_REQ_sum + TCP_TCC_ATOMIC_WITH_RET_REQ_sum)) - # if ((TCP_TCC_READ_REQ_sum + TCP_TCC_ATOMIC_WITH_RET_REQ_sum) != 0) else None)) - max: - # MAX(((TCP_TCC_READ_REQ_LATENCY_sum / (TCP_TCC_READ_REQ_sum + TCP_TCC_ATOMIC_WITH_RET_REQ_sum)) - # if ((TCP_TCC_READ_REQ_sum + TCP_TCC_ATOMIC_WITH_RET_REQ_sum) != 0) else None)) + avg: None # Missing perfmon + min: None # Missing perfmon + max: None # Missing perfmon unit: Cycles tips: L1-L2 Write Latency: - avg: - # AVG(((TCP_TCC_WRITE_REQ_LATENCY_sum / (TCP_TCC_WRITE_REQ_sum + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum)) - # if ((TCP_TCC_WRITE_REQ_sum + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum) != 0) else - # None)) - min: - # MIN(((TCP_TCC_WRITE_REQ_LATENCY_sum / (TCP_TCC_WRITE_REQ_sum + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum)) - # if ((TCP_TCC_WRITE_REQ_sum + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum) != 0) else - # None)) - max: - # MAX(((TCP_TCC_WRITE_REQ_LATENCY_sum / (TCP_TCC_WRITE_REQ_sum + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum)) - # if ((TCP_TCC_WRITE_REQ_sum + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum) != 0) else - # None)) + avg: None # Missing perfmon + min: None # Missing perfmon + max: None # Missing perfmon unit: Cycles tips: @@ -369,17 +334,14 @@ Panel Config: avg: AVG((TCP_UTCL1_REQUEST_sum / $denom)) min: MIN((TCP_UTCL1_REQUEST_sum / $denom)) max: MAX((TCP_UTCL1_REQUEST_sum / $denom)) - units: ( + $normUnit) + units: (Req + $normUnit) tips: Hit Ratio: - avg: - AVG((((100 * TCP_UTCL1_TRANSLATION_HIT_sum) / TCP_UTCL1_REQUEST_sum) if + avg: AVG((((100 * TCP_UTCL1_TRANSLATION_HIT_sum) / TCP_UTCL1_REQUEST_sum) if (TCP_UTCL1_REQUEST_sum != 0) else None)) - min: - MIN((((100 * TCP_UTCL1_TRANSLATION_HIT_sum) / TCP_UTCL1_REQUEST_sum) if + min: MIN((((100 * TCP_UTCL1_TRANSLATION_HIT_sum) / TCP_UTCL1_REQUEST_sum) if (TCP_UTCL1_REQUEST_sum != 0) else None)) - max: - MAX((((100 * TCP_UTCL1_TRANSLATION_HIT_sum) / TCP_UTCL1_REQUEST_sum) if + max: MAX((((100 * TCP_UTCL1_TRANSLATION_HIT_sum) / TCP_UTCL1_REQUEST_sum) if (TCP_UTCL1_REQUEST_sum != 0) else None)) units: pct tips: @@ -387,17 +349,17 @@ Panel Config: avg: AVG((TCP_UTCL1_TRANSLATION_HIT_sum / $denom)) min: MIN((TCP_UTCL1_TRANSLATION_HIT_sum / $denom)) max: MAX((TCP_UTCL1_TRANSLATION_HIT_sum / $denom)) - units: ( + $normUnit) + units: (Req + $normUnit) tips: - Misses (Translation): + Translation Misses: avg: AVG((TCP_UTCL1_TRANSLATION_MISS_sum / $denom)) min: MIN((TCP_UTCL1_TRANSLATION_MISS_sum / $denom)) max: MAX((TCP_UTCL1_TRANSLATION_MISS_sum / $denom)) - units: ( + $normUnit) + units: (Req + $normUnit) tips: - Misses (Permission): + Permission Misses: avg: AVG((TCP_UTCL1_PERMISSION_MISS_sum / $denom)) min: MIN((TCP_UTCL1_PERMISSION_MISS_sum / $denom)) max: MAX((TCP_UTCL1_PERMISSION_MISS_sum / $denom)) - units: ( + $normUnit) + units: (Req + $normUnit) tips: diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx941/1700_L2_cache.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx941/1700_L2_cache.yaml index 64644851dd..09c7c67d2a 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx941/1700_L2_cache.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx941/1700_L2_cache.yaml @@ -13,29 +13,30 @@ Panel Config: title: Speed-of-Light header: metric: Metric - value: Value + value: Avg unit: Unit tips: Tips metric: - L2 Util: + Utilization: value: AVG(((TCC_BUSY_sum * 100) / (TO_INT($L2Banks) * GRBM_GUI_ACTIVE))) unit: pct tips: - Cache Hit: - value: - AVG((((100 * TCC_HIT_sum) / (TCC_HIT_sum + TCC_MISS_sum)) if ((TCC_HIT_sum + Bandwidth: + value: ((100 * AVG(((TCC_REQ_sum * 128) / (End_Timestamp - Start_Timestamp)))) / ((($sclk / 1000) * 128) * TO_INT($L2Banks))) + unit: pct + tips: + Hit Rate: + value: AVG((((100 * TCC_HIT_sum) / (TCC_HIT_sum + TCC_MISS_sum)) if ((TCC_HIT_sum + TCC_MISS_sum) != 0) else 0)) unit: pct tips: - L2-EA Rd BW: - value: - AVG((((TCC_EA0_RDREQ_32B_sum * 32) + ((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_32B_sum) + L2-Fabric Read BW: + value: AVG((((TCC_EA0_RDREQ_32B_sum * 32) + ((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_32B_sum) * 64)) / (End_Timestamp - Start_Timestamp))) unit: GB/s tips: - L2-EA Wr BW: - value: - AVG((((TCC_EA0_WRREQ_64B_sum * 64) + ((TCC_EA0_WRREQ_sum - TCC_EA0_WRREQ_64B_sum) + L2-Fabric Write and Atomic BW: + value: AVG((((TCC_EA0_WRREQ_64B_sum * 64) + ((TCC_EA0_WRREQ_sum - TCC_EA0_WRREQ_64B_sum) * 32)) / (End_Timestamp - Start_Timestamp))) unit: GB/s tips: @@ -51,19 +52,34 @@ Panel Config: unit: Unit tips: Tips metric: - Read BW: - avg: - AVG((((TCC_EA0_RDREQ_32B_sum * 32) + ((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_32B_sum) + L2-Fabric Read BW: + avg: AVG((((TCC_EA0_RDREQ_32B_sum * 32) + ((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_32B_sum) * 64)) / $denom)) - min: - MIN((((TCC_EA0_RDREQ_32B_sum * 32) + ((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_32B_sum) + min: MIN((((TCC_EA0_RDREQ_32B_sum * 32) + ((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_32B_sum) * 64)) / $denom)) - max: - MAX((((TCC_EA0_RDREQ_32B_sum * 32) + ((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_32B_sum) + max: MAX((((TCC_EA0_RDREQ_32B_sum * 32) + ((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_32B_sum) * 64)) / $denom)) unit: (Bytes + $normUnit) tips: - Write BW: + HBM Read Traffic: + avg: AVG((100 * (TCC_EA0_RDREQ_DRAM_sum / TCC_EA0_RDREQ_sum) if (TCC_EA0_RDREQ_sum != 0) else None)) + min: MIN((100 * (TCC_EA0_RDREQ_DRAM_sum / TCC_EA0_RDREQ_sum) if (TCC_EA0_RDREQ_sum != 0) else None)) + max: MAX((100 * (TCC_EA0_RDREQ_DRAM_sum / TCC_EA0_RDREQ_sum) if (TCC_EA0_RDREQ_sum != 0) else None)) + unit: pct + tips: + Remote Read Traffic: + avg: AVG((100 * ((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_DRAM_sum) / TCC_EA0_RDREQ_sum) if (TCC_EA0_RDREQ_sum != 0) else None)) + min: MIN((100 * ((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_DRAM_sum) / TCC_EA0_RDREQ_sum) if (TCC_EA0_RDREQ_sum != 0) else None)) + max: MAX((100 * ((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_DRAM_sum) / TCC_EA0_RDREQ_sum) if (TCC_EA0_RDREQ_sum != 0) else None)) + unit: pct + tips: + Uncached Read Traffic: + avg: AVG((100 * (TCC_EA0_RD_UNCACHED_32B_sum / TCC_EA0_RDREQ_sum) if (TCC_EA0_RDREQ_sum != 0) else None)) + min: MIN((100 * (TCC_EA0_RD_UNCACHED_32B_sum / TCC_EA0_RDREQ_sum) if (TCC_EA0_RDREQ_sum != 0) else None)) + max: MAX((100 * (TCC_EA0_RD_UNCACHED_32B_sum / TCC_EA0_RDREQ_sum) if (TCC_EA0_RDREQ_sum != 0) else None)) + unit: pct + tips: + L2-Fabric Write and Atomic BW: avg: AVG((((TCC_EA0_WRREQ_64B_sum * 64) + ((TCC_EA0_WRREQ_sum - TCC_EA0_WRREQ_64B_sum) * 32)) / $denom)) @@ -75,118 +91,67 @@ Panel Config: * 32)) / $denom)) unit: (Bytes + $normUnit) tips: - Read (32B): - avg: AVG((TCC_EA0_RDREQ_32B_sum / $denom)) - min: MIN((TCC_EA0_RDREQ_32B_sum / $denom)) - max: MAX((TCC_EA0_RDREQ_32B_sum / $denom)) - unit: (Req + $normUnit) + HBM Write and Atomic Traffic: + avg: AVG((100 * (TCC_EA0_WRREQ_DRAM_sum / TCC_EA0_WRREQ_sum) if (TCC_EA0_WRREQ_sum != 0) else None)) + min: MIN((100 * (TCC_EA0_WRREQ_DRAM_sum / TCC_EA0_WRREQ_sum) if (TCC_EA0_WRREQ_sum != 0) else None)) + max: MAX((100 * (TCC_EA0_WRREQ_DRAM_sum / TCC_EA0_WRREQ_sum) if (TCC_EA0_WRREQ_sum != 0) else None)) + unit: pct tips: - Read (Uncached 32B): - avg: AVG((TCC_EA0_RD_UNCACHED_32B_sum / $denom)) - min: MIN((TCC_EA0_RD_UNCACHED_32B_sum / $denom)) - max: MAX((TCC_EA0_RD_UNCACHED_32B_sum / $denom)) - unit: (Req + $normUnit) + Remote Write and Atomic Traffic: + avg: AVG((100 * ((TCC_EA0_WRREQ_sum - TCC_EA0_WRREQ_DRAM_sum) / TCC_EA0_WRREQ_sum) if (TCC_EA0_WRREQ_sum != 0) else None)) + min: MIN((100 * ((TCC_EA0_WRREQ_sum - TCC_EA0_WRREQ_DRAM_sum) / TCC_EA0_WRREQ_sum) if (TCC_EA0_WRREQ_sum != 0) else None)) + max: MAX((100 * ((TCC_EA0_WRREQ_sum - TCC_EA0_WRREQ_DRAM_sum) / TCC_EA0_WRREQ_sum) if (TCC_EA0_WRREQ_sum != 0) else None)) + unit: pct tips: - Read (64B): - avg: AVG(((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_32B_sum) / $denom)) - min: MIN(((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_32B_sum) / $denom)) - max: MAX(((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_32B_sum) / $denom)) - unit: (Req + $normUnit) + Atomic Traffic: + avg: AVG((100 * (TCC_EA0_ATOMIC_sum / TCC_EA0_WRREQ_sum) if (TCC_EA0_WRREQ_sum != 0) else None)) + min: MIN((100 * (TCC_EA0_ATOMIC_sum / TCC_EA0_WRREQ_sum) if (TCC_EA0_WRREQ_sum != 0) else None)) + max: MAX((100 * (TCC_EA0_ATOMIC_sum / TCC_EA0_WRREQ_sum) if (TCC_EA0_WRREQ_sum != 0) else None)) + unit: pct tips: - HBM Read: - avg: AVG((TCC_EA0_RDREQ_DRAM_sum / $denom)) - min: MIN((TCC_EA0_RDREQ_DRAM_sum / $denom)) - max: MAX((TCC_EA0_RDREQ_DRAM_sum / $denom)) - unit: (Req + $normUnit) - tips: - Write (32B): - avg: AVG(((TCC_EA0_WRREQ_sum - TCC_EA0_WRREQ_64B_sum) / $denom)) - min: MIN(((TCC_EA0_WRREQ_sum - TCC_EA0_WRREQ_64B_sum) / $denom)) - max: MAX(((TCC_EA0_WRREQ_sum - TCC_EA0_WRREQ_64B_sum) / $denom)) - unit: (Req + $normUnit) - tips: - Write (Uncached 32B): - avg: AVG((TCC_EA0_WR_UNCACHED_32B_sum / $denom)) - min: MIN((TCC_EA0_WR_UNCACHED_32B_sum / $denom)) - max: MAX((TCC_EA0_WR_UNCACHED_32B_sum / $denom)) - unit: (Req + $normUnit) - tips: - Write (64B): - avg: AVG((TCC_EA0_WRREQ_64B_sum / $denom)) - min: MIN((TCC_EA0_WRREQ_64B_sum / $denom)) - max: MAX((TCC_EA0_WRREQ_64B_sum / $denom)) - unit: (Req + $normUnit) - tips: - HBM Write: - avg: AVG((TCC_EA0_WRREQ_DRAM_sum / $denom)) - min: MIN((TCC_EA0_WRREQ_DRAM_sum / $denom)) - max: MAX((TCC_EA0_WRREQ_DRAM_sum / $denom)) - unit: (Req + $normUnit) + Uncached Write and Atomic Traffic: + avg: AVG((100 * (TCC_EA0_WR_UNCACHED_32B_sum / TCC_EA0_WRREQ_sum) if (TCC_EA0_WRREQ_sum != 0) else None)) + min: MIN((100 * (TCC_EA0_WR_UNCACHED_32B_sum / TCC_EA0_WRREQ_sum) if (TCC_EA0_WRREQ_sum != 0) else None)) + max: MAX((100 * (TCC_EA0_WR_UNCACHED_32B_sum / TCC_EA0_WRREQ_sum) if (TCC_EA0_WRREQ_sum != 0) else None)) + unit: pct tips: Read Latency: - avg: - AVG(((TCC_EA0_RDREQ_LEVEL_sum / TCC_EA0_RDREQ_sum) if (TCC_EA0_RDREQ_sum != + avg: AVG(((TCC_EA0_RDREQ_LEVEL_sum / TCC_EA0_RDREQ_sum) if (TCC_EA0_RDREQ_sum != 0) else None)) - min: - MIN(((TCC_EA0_RDREQ_LEVEL_sum / TCC_EA0_RDREQ_sum) if (TCC_EA0_RDREQ_sum != + min: MIN(((TCC_EA0_RDREQ_LEVEL_sum / TCC_EA0_RDREQ_sum) if (TCC_EA0_RDREQ_sum != 0) else None)) - max: - MAX(((TCC_EA0_RDREQ_LEVEL_sum / TCC_EA0_RDREQ_sum) if (TCC_EA0_RDREQ_sum != + max: MAX(((TCC_EA0_RDREQ_LEVEL_sum / TCC_EA0_RDREQ_sum) if (TCC_EA0_RDREQ_sum != 0) else None)) unit: Cycles tips: Write Latency: - avg: - AVG(((TCC_EA0_WRREQ_LEVEL_sum / TCC_EA0_WRREQ_sum) if (TCC_EA0_WRREQ_sum != + avg: AVG(((TCC_EA0_WRREQ_LEVEL_sum / TCC_EA0_WRREQ_sum) if (TCC_EA0_WRREQ_sum != 0) else None)) - min: - MIN(((TCC_EA0_WRREQ_LEVEL_sum / TCC_EA0_WRREQ_sum) if (TCC_EA0_WRREQ_sum != + min: MIN(((TCC_EA0_WRREQ_LEVEL_sum / TCC_EA0_WRREQ_sum) if (TCC_EA0_WRREQ_sum != 0) else None)) - max: - MAX(((TCC_EA0_WRREQ_LEVEL_sum / TCC_EA0_WRREQ_sum) if (TCC_EA0_WRREQ_sum != + max: MAX(((TCC_EA0_WRREQ_LEVEL_sum / TCC_EA0_WRREQ_sum) if (TCC_EA0_WRREQ_sum != 0) else None)) unit: Cycles tips: Atomic Latency: - avg: - AVG(((TCC_EA0_ATOMIC_LEVEL_sum / TCC_EA0_ATOMIC_sum) if (TCC_EA0_ATOMIC_sum + avg: AVG(((TCC_EA0_ATOMIC_LEVEL_sum / TCC_EA0_ATOMIC_sum) if (TCC_EA0_ATOMIC_sum != 0) else None)) - min: - MIN(((TCC_EA0_ATOMIC_LEVEL_sum / TCC_EA0_ATOMIC_sum) if (TCC_EA0_ATOMIC_sum + min: MIN(((TCC_EA0_ATOMIC_LEVEL_sum / TCC_EA0_ATOMIC_sum) if (TCC_EA0_ATOMIC_sum != 0) else None)) - max: - MAX(((TCC_EA0_ATOMIC_LEVEL_sum / TCC_EA0_ATOMIC_sum) if (TCC_EA0_ATOMIC_sum + max: MAX(((TCC_EA0_ATOMIC_LEVEL_sum / TCC_EA0_ATOMIC_sum) if (TCC_EA0_ATOMIC_sum != 0) else None)) unit: Cycles tips: Read Stall: - avg: - # AVG((((100 * ((TCC_EA0_RDREQ_IO_CREDIT_STALL_sum + TCC_EA0_RDREQ_GMI_CREDIT_STALL_sum) - # + TCC_EA0_RDREQ_DRAM_CREDIT_STALL_sum)) / TCC_BUSY_sum) if (TCC_BUSY_sum != - # 0) else None)) - min: - # MIN((((100 * ((TCC_EA0_RDREQ_IO_CREDIT_STALL_sum + TCC_EA0_RDREQ_GMI_CREDIT_STALL_sum) - # + TCC_EA0_RDREQ_DRAM_CREDIT_STALL_sum)) / TCC_BUSY_sum) if (TCC_BUSY_sum != - # 0) else None)) - max: - # MAX((((100 * ((TCC_EA0_RDREQ_IO_CREDIT_STALL_sum + TCC_EA0_RDREQ_GMI_CREDIT_STALL_sum) - # + TCC_EA0_RDREQ_DRAM_CREDIT_STALL_sum)) / TCC_BUSY_sum) if (TCC_BUSY_sum != - # 0) else None)) + avg: None # Missing perfmon + min: None # Missing perfmon + max: None # Missing perfmon unit: pct tips: Write Stall: - avg: - # AVG((((100 * ((TCC_EA0_WRREQ_IO_CREDIT_STALL_sum + TCC_EA0_WRREQ_GMI_CREDIT_STALL_sum) - # + TCC_EA0_WRREQ_DRAM_CREDIT_STALL_sum)) / TCC_BUSY_sum) if (TCC_BUSY_sum != - # 0) else None)) - min: - # MIN((((100 * ((TCC_EA0_WRREQ_IO_CREDIT_STALL_sum + TCC_EA0_WRREQ_GMI_CREDIT_STALL_sum) - # + TCC_EA0_WRREQ_DRAM_CREDIT_STALL_sum)) / TCC_BUSY_sum) if (TCC_BUSY_sum != - # 0) else None)) - max: - # MAX((((100 * ((TCC_EA0_WRREQ_IO_CREDIT_STALL_sum + TCC_EA0_WRREQ_GMI_CREDIT_STALL_sum) - # + TCC_EA0_WRREQ_DRAM_CREDIT_STALL_sum)) / TCC_BUSY_sum) if (TCC_BUSY_sum != - # 0) else None)) + avg: None # Missing perfmon + min: None # Missing perfmon + max: None # Missing perfmon unit: pct tips: @@ -201,18 +166,18 @@ Panel Config: unit: Unit tips: Tips metric: + Bandwidth: + avg: AVG((TCC_REQ_sum * 128) / $denom) + min: MIN((TCC_REQ_sum * 128) / $denom) + max: MAX((TCC_REQ_sum * 128) / $denom) + unit: (Bytes + $normUnit) + tips: Req: avg: AVG((TCC_REQ_sum / $denom)) min: MIN((TCC_REQ_sum / $denom)) max: MAX((TCC_REQ_sum / $denom)) unit: (Req + $normUnit) tips: - Streaming Req: - avg: AVG((TCC_STREAMING_REQ_sum / $denom)) - min: MIN((TCC_STREAMING_REQ_sum / $denom)) - max: MAX((TCC_STREAMING_REQ_sum / $denom)) - unit: (Req + $normUnit) - tips: Read Req: avg: AVG((TCC_READ_sum / $denom)) min: MIN((TCC_READ_sum / $denom)) @@ -231,12 +196,27 @@ Panel Config: max: MAX((TCC_ATOMIC_sum / $denom)) unit: (Req + $normUnit) tips: + Streaming Req: + avg: AVG((TCC_STREAMING_REQ_sum / $denom)) + min: MIN((TCC_STREAMING_REQ_sum / $denom)) + max: MAX((TCC_STREAMING_REQ_sum / $denom)) + unit: (Req + $normUnit) + tips: Probe Req: avg: AVG((TCC_PROBE_sum / $denom)) min: MIN((TCC_PROBE_sum / $denom)) max: MAX((TCC_PROBE_sum / $denom)) unit: (Req + $normUnit) tips: + Cache Hit: + avg: AVG((((100 * TCC_HIT_sum) / (TCC_HIT_sum + TCC_MISS_sum)) if ((TCC_HIT_sum + + TCC_MISS_sum) != 0) else None)) + min: MIN((((100 * TCC_HIT_sum) / (TCC_HIT_sum + TCC_MISS_sum)) if ((TCC_HIT_sum + + TCC_MISS_sum) != 0) else None)) + max: MAX((((100 * TCC_HIT_sum) / (TCC_HIT_sum + TCC_MISS_sum)) if ((TCC_HIT_sum + + TCC_MISS_sum) != 0) else None)) + unit: pct + tips: Hits: avg: AVG((TCC_HIT_sum / $denom)) min: MIN((TCC_HIT_sum / $denom)) @@ -249,23 +229,35 @@ Panel Config: max: MAX((TCC_MISS_sum / $denom)) unit: (Misses + $normUnit) tips: - Cache Hit: - avg: - AVG((((100 * TCC_HIT_sum) / (TCC_HIT_sum + TCC_MISS_sum)) if ((TCC_HIT_sum - + TCC_MISS_sum) != 0) else None)) - min: - MIN((((100 * TCC_HIT_sum) / (TCC_HIT_sum + TCC_MISS_sum)) if ((TCC_HIT_sum - + TCC_MISS_sum) != 0) else None)) - max: - MAX((((100 * TCC_HIT_sum) / (TCC_HIT_sum + TCC_MISS_sum)) if ((TCC_HIT_sum - + TCC_MISS_sum) != 0) else None)) - unit: pct - tips: Writeback: avg: AVG((TCC_WRITEBACK_sum / $denom)) min: MIN((TCC_WRITEBACK_sum / $denom)) max: MAX((TCC_WRITEBACK_sum / $denom)) - unit: ( + $normUnit) + unit: (Cachelines + $normUnit) + tips: + Writeback (Internal): + avg: AVG((TCC_NORMAL_WRITEBACK_sum / $denom)) + min: MIN((TCC_NORMAL_WRITEBACK_sum / $denom)) + max: MAX((TCC_NORMAL_WRITEBACK_sum / $denom)) + unit: (Cachelines + $normUnit) + tips: + Writeback (vL1D Req): + avg: AVG((TCC_ALL_TC_OP_WB_WRITEBACK_sum / $denom)) + min: MIN((TCC_ALL_TC_OP_WB_WRITEBACK_sum / $denom)) + max: MAX((TCC_ALL_TC_OP_WB_WRITEBACK_sum / $denom)) + unit: (Cachelines + $normUnit) + tips: + Evict (Internal): + avg: AVG((TCC_NORMAL_EVICT_sum / $denom)) + min: MIN((TCC_NORMAL_EVICT_sum / $denom)) + max: MAX((TCC_NORMAL_EVICT_sum / $denom)) + unit: (Cachelines + $normUnit) + tips: + Evict (vL1D Req): + avg: AVG((TCC_ALL_TC_OP_INV_EVICT_sum / $denom)) + min: MIN((TCC_ALL_TC_OP_INV_EVICT_sum / $denom)) + max: MAX((TCC_ALL_TC_OP_INV_EVICT_sum / $denom)) + unit: (Cachelines + $normUnit) tips: NC Req: avg: AVG((TCC_NC_REQ_sum / $denom)) @@ -291,30 +283,6 @@ Panel Config: max: MAX((TCC_RW_REQ_sum / $denom)) unit: (Req + $normUnit) tips: - Writeback (Normal): - avg: AVG((TCC_NORMAL_WRITEBACK_sum / $denom)) - min: MIN((TCC_NORMAL_WRITEBACK_sum / $denom)) - max: MAX((TCC_NORMAL_WRITEBACK_sum / $denom)) - unit: ( + $normUnit) - tips: - Writeback (TC Req): - avg: AVG((TCC_ALL_TC_OP_WB_WRITEBACK_sum / $denom)) - min: MIN((TCC_ALL_TC_OP_WB_WRITEBACK_sum / $denom)) - max: MAX((TCC_ALL_TC_OP_WB_WRITEBACK_sum / $denom)) - unit: ( + $normUnit) - tips: - Evict (Normal): - avg: AVG((TCC_NORMAL_EVICT_sum / $denom)) - min: MIN((TCC_NORMAL_EVICT_sum / $denom)) - max: MAX((TCC_NORMAL_EVICT_sum / $denom)) - unit: ( + $normUnit) - tips: - Evict (TC Req): - avg: AVG((TCC_ALL_TC_OP_INV_EVICT_sum / $denom)) - min: MIN((TCC_ALL_TC_OP_INV_EVICT_sum / $denom)) - max: MAX((TCC_ALL_TC_OP_INV_EVICT_sum / $denom)) - unit: ( + $normUnit) - tips: - metric_table: id: 1704 @@ -328,60 +296,140 @@ Panel Config: max: Max unit: Unit tips: Tips + style: + type: simple_multi_bar metric: - Read - Remote Socket Stall: - type: Remote Socket Stall + Read - PCIe Stall: + type: PCIe Stall transaction: Read - avg: # AVG((TCC_EA0_RDREQ_IO_CREDIT_STALL_sum / $denom)) - min: # MIN((TCC_EA0_RDREQ_IO_CREDIT_STALL_sum / $denom)) - max: # MAX((TCC_EA0_RDREQ_IO_CREDIT_STALL_sum / $denom)) - unit: (Req + $normUnit) + avg: None # Missing perfmon + min: None # Missing perfmon + max: None # Missing perfmon + unit: pct tips: - Read - Peer GCD Stall: - type: Peer GCD Stall + Read - Infinity Fabric™ Stall: + type: Infinity Fabric™ Stall transaction: Read - avg: # AVG((TCC_EA0_RDREQ_GMI_CREDIT_STALL_sum / $denom)) - min: # MIN((TCC_EA0_RDREQ_GMI_CREDIT_STALL_sum / $denom)) - max: # MAX((TCC_EA0_RDREQ_GMI_CREDIT_STALL_sum / $denom)) - unit: (Req + $normUnit) + avg: None # Missing perfmon + min: None # Missing perfmon + max: None # Missing perfmon + unit: pct tips: Read - HBM Stall: type: HBM Stall transaction: Read - avg: # AVG((TCC_EA0_RDREQ_DRAM_CREDIT_STALL_sum / $denom)) - min: # MIN((TCC_EA0_RDREQ_DRAM_CREDIT_STALL_sum / $denom)) - max: # MAX((TCC_EA0_RDREQ_DRAM_CREDIT_STALL_sum / $denom)) - unit: (Req + $normUnit) + avg: None # Missing perfmon + min: None # Missing perfmon + max: None # Missing perfmon + unit: pct tips: - Write - Remote Socket Stall: - type: Remote Socket Stall + Write - PCIe Stall: + type: PCIe Stall transaction: Write - avg: # AVG((TCC_EA0_WRREQ_IO_CREDIT_STALL_sum / $denom)) - min: # MIN((TCC_EA0_WRREQ_IO_CREDIT_STALL_sum / $denom)) - max: # MAX((TCC_EA0_WRREQ_IO_CREDIT_STALL_sum / $denom)) - unit: (Req + $normUnit) + avg: None # Missing perfmon + min: None # Missing perfmon + max: None # Missing perfmon + unit: pct tips: - Write - Peer GCD Stall: - type: Peer GCD Stall + Write - Infinity Fabric™ Stall: + type: Infinity Fabric™ Stall transaction: Write - avg: # AVG((TCC_EA0_WRREQ_GMI_CREDIT_STALL_sum / $denom)) - min: # MIN((TCC_EA0_WRREQ_GMI_CREDIT_STALL_sum / $denom)) - max: # MAX((TCC_EA0_WRREQ_GMI_CREDIT_STALL_sum / $denom)) - unit: (Req + $normUnit) + avg: None # Missing perfmon + min: None # Missing perfmon + max: None # Missing perfmon + unit: pct tips: Write - HBM Stall: type: HBM Stall transaction: Write - avg: # AVG((TCC_EA0_WRREQ_DRAM_CREDIT_STALL_sum / $denom)) - min: # MIN((TCC_EA0_WRREQ_DRAM_CREDIT_STALL_sum / $denom)) - max: # MAX((TCC_EA0_WRREQ_DRAM_CREDIT_STALL_sum / $denom)) - unit: (Req + $normUnit) + avg: None # Missing perfmon + min: None # Missing perfmon + max: None # Missing perfmon + unit: pct tips: Write - Credit Starvation: type: Credit Starvation transaction: Write - avg: AVG((TCC_TOO_MANY_EA_WRREQS_STALL_sum / $denom)) - min: MIN((TCC_TOO_MANY_EA_WRREQS_STALL_sum / $denom)) - max: MAX((TCC_TOO_MANY_EA_WRREQS_STALL_sum / $denom)) + avg: AVG(((100 * (TCC_TOO_MANY_EA_WRREQS_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) + min: MIN(((100 * (TCC_TOO_MANY_EA_WRREQS_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) + max: MAX(((100 * (TCC_TOO_MANY_EA_WRREQS_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) + unit: pct + tips: + + - metric_table: + id: 1705 + title: L2 - Fabric Detailed Transaction Breakdown + header: + metric: Metric + avg: Avg + min: Min + max: Max + unit: Unit + tips: Tips + metric: + Read (32B): + avg: AVG((TCC_EA0_RDREQ_32B_sum / $denom)) + min: MIN((TCC_EA0_RDREQ_32B_sum / $denom)) + max: MAX((TCC_EA0_RDREQ_32B_sum / $denom)) + unit: (Req + $normUnit) + tips: + Read (Uncached): + avg: AVG((TCC_EA0_RD_UNCACHED_32B_sum / $denom)) + min: MIN((TCC_EA0_RD_UNCACHED_32B_sum / $denom)) + max: MAX((TCC_EA0_RD_UNCACHED_32B_sum / $denom)) + unit: (Req + $normUnit) + tips: + Read (64B): + avg: AVG(((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_32B_sum) / $denom)) + min: MIN(((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_32B_sum) / $denom)) + max: MAX(((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_32B_sum) / $denom)) + unit: (Req + $normUnit) + tips: + HBM Read: + avg: AVG((TCC_EA0_RDREQ_DRAM_sum / $denom)) + min: MIN((TCC_EA0_RDREQ_DRAM_sum / $denom)) + max: MAX((TCC_EA0_RDREQ_DRAM_sum / $denom)) + unit: (Req + $normUnit) + tips: + Remote Read: + avg: AVG((MAX((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_DRAM_sum), 0) / $denom)) + min: MIN((MAX((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_DRAM_sum), 0) / $denom)) + max: MAX((MAX((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_DRAM_sum), 0) / $denom)) + unit: (Req + $normUnit) + tips: + Write and Atomic (32B): + avg: AVG(((TCC_EA0_WRREQ_sum - TCC_EA0_WRREQ_64B_sum) / $denom)) + min: MIN(((TCC_EA0_WRREQ_sum - TCC_EA0_WRREQ_64B_sum) / $denom)) + max: MAX(((TCC_EA0_WRREQ_sum - TCC_EA0_WRREQ_64B_sum) / $denom)) + unit: (Req + $normUnit) + tips: + Write and Atomic (Uncached): + avg: AVG((TCC_EA0_WR_UNCACHED_32B_sum / $denom)) + min: MIN((TCC_EA0_WR_UNCACHED_32B_sum / $denom)) + max: MAX((TCC_EA0_WR_UNCACHED_32B_sum / $denom)) + unit: (Req + $normUnit) + tips: + Write and Atomic (64B): + avg: AVG((TCC_EA0_WRREQ_64B_sum / $denom)) + min: MIN((TCC_EA0_WRREQ_64B_sum / $denom)) + max: MAX((TCC_EA0_WRREQ_64B_sum / $denom)) + unit: (Req + $normUnit) + tips: + HBM Write and Atomic: + avg: AVG((TCC_EA0_WRREQ_DRAM_sum / $denom)) + min: MIN((TCC_EA0_WRREQ_DRAM_sum / $denom)) + max: MAX((TCC_EA0_WRREQ_DRAM_sum / $denom)) + unit: (Req + $normUnit) + tips: + Remote Write and Atomic: + avg: AVG((MAX((TCC_EA0_WRREQ_sum - TCC_EA0_WRREQ_DRAM_sum), 0) / $denom)) + min: MIN((MAX((TCC_EA0_WRREQ_sum - TCC_EA0_WRREQ_DRAM_sum), 0) / $denom)) + max: MAX((MAX((TCC_EA0_WRREQ_sum - TCC_EA0_WRREQ_DRAM_sum), 0) / $denom)) + unit: (Req + $normUnit) + tips: + Atomic: + avg: AVG((TCC_EA0_ATOMIC_sum / $denom)) + min: MIN((TCC_EA0_ATOMIC_sum / $denom)) + max: MAX((TCC_EA0_ATOMIC_sum / $denom)) unit: (Req + $normUnit) tips: diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx941/1800_L2_cache_per_channel.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx941/1800_L2_cache_per_channel.yaml index 9a0e038745..d4ba9ac285 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx941/1800_L2_cache_per_channel.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx941/1800_L2_cache_per_channel.yaml @@ -244,9 +244,9 @@ Panel Config: ea read stall - dram: L2-EA Read Stall - DRAM metric: "::_1": - ea read stall - io: AVG((TO_INT(TCC_EA0_RDREQ_IO_CREDIT_STALL[::_1]) / $denom)) - ea read stall - gmi: AVG((TO_INT(TCC_EA0_RDREQ_GMI_CREDIT_STALL[::_1]) / $denom)) - ea read stall - dram: AVG((TO_INT(TCC_EA0_RDREQ_DRAM_CREDIT_STALL[::_1]) / $denom)) + ea read stall - io: None # Missing perfmon + ea read stall - gmi: None # Missing perfmon + ea read stall - dram: None # Missing perfmon placeholder_range: "::_1": $totalL2Banks cli_style: simple_multiple_bar @@ -262,10 +262,10 @@ Panel Config: ea write stall - starve: L2-EA Write Stall - Starve metric: "::_1": - ea write stall - io: AVG((TO_INT(TCC_EA0_WRREQ_IO_CREDIT_STALL[::_1]) / $denom)) - ea write stall - gmi: AVG((TO_INT(TCC_EA0_WRREQ_GMI_CREDIT_STALL[::_1]) / $denom)) - ea write stall - dram: AVG((TO_INT(TCC_EA0_WRREQ_DRAM_CREDIT_STALL[::_1]) / $denom)) - ea write stall - starve: AVG((TO_INT(TCC_TOO_MANY_EA0_WRREQS_STALL[::_1]) / $denom)) + ea write stall - io: None # Missing perfmon + ea write stall - gmi: None # Missing perfmon + ea write stall - dram: None # Missing perfmon + ea write stall - starve: TCC_TOO_MANY_EA_WRREQS_STALL placeholder_range: "::_1": $totalL2Banks cli_style: simple_multiple_bar diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx942/0200_system-speed-of-light.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx942/0200_system-speed-of-light.yaml index e25b9f66e3..be43d46d61 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx942/0200_system-speed-of-light.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx942/0200_system-speed-of-light.yaml @@ -14,10 +14,10 @@ Panel Config: title: Speed-of-Light header: metric: Metric - value: Value + value: Avg unit: Unit peak: Peak - pop: PoP + pop: Pct of Peak tips: Tips metric: VALU FLOPs: @@ -83,19 +83,19 @@ Panel Config: peak: $numCU pop: ((100 * $numActiveCUs) / $numCU) tips: - SALU Util: + SALU Utilization: value: AVG(((100 * SQ_ACTIVE_INST_SCA) / (GRBM_GUI_ACTIVE * $numCU))) unit: pct peak: 100 pop: AVG(((100 * SQ_ACTIVE_INST_SCA) / (GRBM_GUI_ACTIVE * $numCU))) tips: - VALU Util: + VALU Utilization: value: AVG(((100 * SQ_ACTIVE_INST_VALU) / (GRBM_GUI_ACTIVE * $numCU))) unit: pct peak: 100 pop: AVG(((100 * SQ_ACTIVE_INST_VALU) / (GRBM_GUI_ACTIVE * $numCU))) tips: - MFMA Util: + MFMA Utilization: value: AVG(((100 * SQ_VALU_MFMA_BUSY_CYCLES) / ((GRBM_GUI_ACTIVE * $numCU) * 4))) unit: pct @@ -103,7 +103,19 @@ Panel Config: pop: AVG(((100 * SQ_VALU_MFMA_BUSY_CYCLES) / ((GRBM_GUI_ACTIVE * $numCU) * 4))) tips: - VALU Active Threads/Wave: + VMEM Utilization: + value: AVG((((100 * (SQ_ACTIVE_INST_FLAT+SQ_ACTIVE_INST_VMEM)) / GRBM_GUI_ACTIVE) / $numCU)) + unit: pct + peak: 100 + pop: AVG((((100 * (SQ_ACTIVE_INST_FLAT+SQ_ACTIVE_INST_VMEM)) / GRBM_GUI_ACTIVE) / $numCU)) + tips: + Branch Utilization: + value: AVG((((100 * SQ_ACTIVE_INST_MISC) / GRBM_GUI_ACTIVE) / $numCU)) + unit: pct + peak: 100 + pop: AVG((((100 * SQ_ACTIVE_INST_MISC) / GRBM_GUI_ACTIVE) / $numCU)) + tips: + VALU Active Threads: value: AVG(((SQ_THREAD_CYCLES_VALU / SQ_ACTIVE_INST_VALU) if (SQ_ACTIVE_INST_VALU != 0) else None)) unit: Threads @@ -111,25 +123,29 @@ Panel Config: pop: (AVG(((SQ_THREAD_CYCLES_VALU / SQ_ACTIVE_INST_VALU) if (SQ_ACTIVE_INST_VALU != 0) else None)) * 1.5625) tips: - IPC - Issue: - value: AVG(((((((((SQ_INSTS_VALU + SQ_INSTS_VMEM) + SQ_INSTS_SALU) + SQ_INSTS_SMEM) - + SQ_INSTS_GDS) + SQ_INSTS_BRANCH) + SQ_INSTS_SENDMSG) + SQ_INSTS_VSKIPPED) - / SQ_ACTIVE_INST_ANY)) + IPC: + value: AVG((SQ_INSTS / SQ_BUSY_CU_CYCLES)) unit: Instr/cycle peak: 5 - pop: ((100 * AVG(((((((((SQ_INSTS_VALU + SQ_INSTS_VMEM) + SQ_INSTS_SALU) + SQ_INSTS_SMEM) - + SQ_INSTS_GDS) + SQ_INSTS_BRANCH) + SQ_INSTS_SENDMSG) + SQ_INSTS_VSKIPPED) - / SQ_ACTIVE_INST_ANY))) / 5) + pop: ((100 * AVG((SQ_INSTS / SQ_BUSY_CU_CYCLES))) / 5) tips: - LDS BW: + Wavefront Occupancy: + value: AVG((SQ_ACCUM_PREV_HIRES / GRBM_GUI_ACTIVE)) + unit: Wavefronts + peak: ($maxWavesPerCU * $numCU) + pop: (100 * AVG(((SQ_ACCUM_PREV_HIRES / GRBM_GUI_ACTIVE) / ($maxWavesPerCU + * $numCU)))) + coll_level: SQ_LEVEL_WAVES + tips: + Theoretical LDS Bandwidth: value: AVG(((((SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT) * 4) * TO_INT($LDSBanks)) / (End_Timestamp - Start_Timestamp))) - unit: GB/sec + unit: GB/s peak: (($sclk * $numCU) * 0.128) pop: AVG((((((SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT) * 4) * TO_INT($LDSBanks)) / (End_Timestamp - Start_Timestamp)) / (($sclk * $numCU) * 0.00128))) tips: - LDS Bank Conflict: + LDS Bank Conflicts/Access: value: AVG(((SQ_LDS_BANK_CONFLICT / (SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT)) if ((SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT) != 0) else None)) unit: Conflicts/access @@ -137,35 +153,7 @@ Panel Config: pop: ((100 * AVG(((SQ_LDS_BANK_CONFLICT / (SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT)) if ((SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT) != 0) else None))) / 32) tips: - Instr Cache Hit Rate: - value: AVG(((100 * SQC_ICACHE_HITS) / (SQC_ICACHE_HITS + SQC_ICACHE_MISSES))) - unit: pct - peak: 100 - pop: AVG(((100 * SQC_ICACHE_HITS) / (SQC_ICACHE_HITS + SQC_ICACHE_MISSES))) - tips: - Instr Cache BW: - value: AVG(((SQC_ICACHE_REQ / (End_Timestamp - Start_Timestamp)) * 64)) - unit: GB/s - peak: ((($sclk / 1000) * 64) * $numSQC) - pop: ((100 * AVG(((SQC_ICACHE_REQ / (End_Timestamp - Start_Timestamp)) * 64))) / ((($sclk - / 1000) * 64) * $numSQC)) - tips: - Scalar L1D Cache Hit Rate: - value: AVG((((100 * SQC_DCACHE_HITS) / (SQC_DCACHE_HITS + SQC_DCACHE_MISSES)) - if ((SQC_DCACHE_HITS + SQC_DCACHE_MISSES) != 0) else None)) - unit: pct - peak: 100 - pop: AVG((((100 * SQC_DCACHE_HITS) / (SQC_DCACHE_HITS + SQC_DCACHE_MISSES)) - if ((SQC_DCACHE_HITS + SQC_DCACHE_MISSES) != 0) else None)) - tips: - Scalar L1D Cache BW: - value: AVG(((SQC_DCACHE_REQ / (End_Timestamp - Start_Timestamp)) * 64)) - unit: GB/s - peak: ((($sclk / 1000) * 64) * $numSQC) - pop: ((100 * AVG(((SQC_DCACHE_REQ / (End_Timestamp - Start_Timestamp)) * 64))) / ((($sclk - / 1000) * 64) * $numSQC)) - tips: - Vector L1D Cache Hit Rate: + vL1D Cache Hit Rate: value: AVG(((100 - ((100 * (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + TCP_TCC_ATOMIC_WITH_RET_REQ_sum) + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum)) / TCP_TOTAL_CACHE_ACCESSES_sum)) if (TCP_TOTAL_CACHE_ACCESSES_sum != 0) else @@ -177,7 +165,7 @@ Panel Config: TCP_TOTAL_CACHE_ACCESSES_sum)) if (TCP_TOTAL_CACHE_ACCESSES_sum != 0) else None)) tips: - Vector L1D Cache BW: + vL1D Cache BW: value: AVG(((TCP_TOTAL_CACHE_ACCESSES_sum * 64) / (End_Timestamp - Start_Timestamp))) unit: GB/s peak: ((($sclk / 1000) * 64) * $numCU) @@ -192,6 +180,13 @@ Panel Config: pop: AVG((((100 * TCC_HIT_sum) / (TCC_HIT_sum + TCC_MISS_sum)) if ((TCC_HIT_sum + TCC_MISS_sum) != 0) else None)) tips: + L2 Cache BW: + value: AVG(((TCC_REQ_sum * 128) / (End_Timestamp - Start_Timestamp))) + unit: GB/s + peak: ((($sclk / 1000) * 128) * TO_INT($L2Banks)) + pop: ((100 * AVG(((TCC_REQ_sum * 128) / (End_Timestamp - Start_Timestamp)))) + / ((($sclk / 1000) * 128) * TO_INT($L2Banks))) + tips: L2-Fabric Read BW: value: AVG((((TCC_EA0_RDREQ_32B_sum * 32) + ((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_32B_sum) * 64)) / (End_Timestamp - Start_Timestamp))) @@ -212,36 +207,48 @@ Panel Config: value: AVG(((TCC_EA0_RDREQ_LEVEL_sum / TCC_EA0_RDREQ_sum) if (TCC_EA0_RDREQ_sum != 0) else None)) unit: Cycles - peak: '' - pop: '' + peak: None + pop: None tips: L2-Fabric Write Latency: value: AVG(((TCC_EA0_WRREQ_LEVEL_sum / TCC_EA0_WRREQ_sum) if (TCC_EA0_WRREQ_sum != 0) else None)) unit: Cycles - peak: '' - pop: '' + peak: None + pop: None tips: - Wave Occupancy: - value: AVG((SQ_ACCUM_PREV_HIRES / GRBM_GUI_ACTIVE)) - unit: Wavefronts - peak: ($maxWavesPerCU * $numCU) - pop: (100 * AVG(((SQ_ACCUM_PREV_HIRES / GRBM_GUI_ACTIVE) / ($maxWavesPerCU - * $numCU)))) - coll_level: SQ_LEVEL_WAVES + sL1D Cache Hit Rate: + value: AVG((((100 * SQC_DCACHE_HITS) / (SQC_DCACHE_HITS + SQC_DCACHE_MISSES)) + if ((SQC_DCACHE_HITS + SQC_DCACHE_MISSES) != 0) else None)) + unit: pct + peak: 100 + pop: AVG((((100 * SQC_DCACHE_HITS) / (SQC_DCACHE_HITS + SQC_DCACHE_MISSES)) + if ((SQC_DCACHE_HITS + SQC_DCACHE_MISSES) != 0) else None)) tips: - Instr Fetch BW: - value: AVG(((SQ_IFETCH / (End_Timestamp - Start_Timestamp)) * 32)) + sL1D Cache BW: + value: AVG(((SQC_DCACHE_REQ / (End_Timestamp - Start_Timestamp)) * 64)) unit: GB/s - peak: ((($sclk / 1000) * 32) * $numSQC) - pop: ((100 * AVG(((SQ_IFETCH / (End_Timestamp - Start_Timestamp)) * 32))) / ($numSQC - * (($sclk / 1000) * 32))) - coll_level: SQ_IFETCH_LEVEL + peak: ((($sclk / 1000) * 64) * $numSQC) + pop: ((100 * AVG(((SQC_DCACHE_REQ / (End_Timestamp - Start_Timestamp)) * 64))) / ((($sclk + / 1000) * 64) * $numSQC)) tips: - Instr Fetch Latency: + L1I Hit Rate: + value: AVG(((100 * SQC_ICACHE_HITS) / (SQC_ICACHE_HITS + SQC_ICACHE_MISSES))) + unit: pct + peak: 100 + pop: AVG(((100 * SQC_ICACHE_HITS) / (SQC_ICACHE_HITS + SQC_ICACHE_MISSES))) + tips: + L1I BW: + value: AVG(((SQC_ICACHE_REQ / (End_Timestamp - Start_Timestamp)) * 64)) + unit: GB/s + peak: ((($sclk / 1000) * 64) * $numSQC) + pop: ((100 * AVG(((SQC_ICACHE_REQ / (End_Timestamp - Start_Timestamp)) * 64))) / ((($sclk + / 1000) * 64) * $numSQC)) + tips: + L1I Fetch Latency: value: AVG((SQ_ACCUM_PREV_HIRES / SQ_IFETCH)) unit: Cycles - peak: '' - pop: '' + peak: None + pop: None coll_level: SQ_IFETCH_LEVEL tips: diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx942/0500_command-processor.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx942/0500_command-processor.yaml index d954f61625..1a9082258d 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx942/0500_command-processor.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx942/0500_command-processor.yaml @@ -19,19 +19,7 @@ Panel Config: unit: Unit tips: Tips metric: - GPU Busy Cycles: - avg: AVG(GRBM_GUI_ACTIVE) - min: MIN(GRBM_GUI_ACTIVE) - max: MAX(GRBM_GUI_ACTIVE) - unit: Cycles/Kernel - tips: - CPF Busy: - avg: AVG(CPF_CPF_STAT_BUSY) - min: MIN(CPF_CPF_STAT_BUSY) - max: MAX(CPF_CPF_STAT_BUSY) - unit: Cycles/Kernel - tips: - CPF Util: + CPF Utilization: avg: AVG((((100 * CPF_CPF_STAT_BUSY) / (CPF_CPF_STAT_BUSY + CPF_CPF_STAT_IDLE)) if ((CPF_CPF_STAT_BUSY + CPF_CPF_STAT_IDLE) != 0) else None)) min: MIN((((100 * CPF_CPF_STAT_BUSY) / (CPF_CPF_STAT_BUSY + CPF_CPF_STAT_IDLE)) @@ -47,15 +35,9 @@ Panel Config: != 0) else None)) max: MAX((((100 * CPF_CPF_STAT_STALL) / CPF_CPF_STAT_BUSY) if (CPF_CPF_STAT_BUSY != 0) else None)) - unit: Cycles/Kernel + unit: pct tips: - L2Cache Intf Busy: - avg: AVG(CPF_CPF_TCIU_BUSY) - min: MIN(CPF_CPF_TCIU_BUSY) - max: MAX(CPF_CPF_TCIU_BUSY) - unit: Cycles/Kernel - tips: - L2Cache Intf Util: + CPF-L2 Utilization: avg: AVG((((100 * CPF_CPF_TCIU_BUSY) / (CPF_CPF_TCIU_BUSY + CPF_CPF_TCIU_IDLE)) if ((CPF_CPF_TCIU_BUSY + CPF_CPF_TCIU_IDLE) != 0) else None)) min: MIN((((100 * CPF_CPF_TCIU_BUSY) / (CPF_CPF_TCIU_BUSY + CPF_CPF_TCIU_IDLE)) @@ -64,7 +46,7 @@ Panel Config: if ((CPF_CPF_TCIU_BUSY + CPF_CPF_TCIU_IDLE) != 0) else None)) unit: pct tips: - L2Cache Intf Stall: + CPF-L2 Stall: avg: AVG((((100 * CPF_CPF_TCIU_STALL) / CPF_CPF_TCIU_BUSY) if (CPF_CPF_TCIU_BUSY != 0) else None)) min: MIN((((100 * CPF_CPF_TCIU_STALL) / CPF_CPF_TCIU_BUSY) if (CPF_CPF_TCIU_BUSY @@ -73,16 +55,19 @@ Panel Config: != 0) else None)) unit: pct tips: - UTCL1 Stall: - avg: AVG(CPF_CMP_UTCL1_STALL_ON_TRANSLATION) - min: MIN(CPF_CMP_UTCL1_STALL_ON_TRANSLATION) - max: MAX(CPF_CMP_UTCL1_STALL_ON_TRANSLATION) - unit: Cycles/Kernel - tips: + CPF-UTCL1 Stall: + avg: AVG(((100 * CPF_CMP_UTCL1_STALL_ON_TRANSLATION) / CPF_CPF_STAT_BUSY) if (CPF_CPF_STAT_BUSY + != 0) else None) + min: MIN(((100 * CPF_CMP_UTCL1_STALL_ON_TRANSLATION) / CPF_CPF_STAT_BUSY) if (CPF_CPF_STAT_BUSY + != 0) else None) + max: MAX(((100 * CPF_CMP_UTCL1_STALL_ON_TRANSLATION) / CPF_CPF_STAT_BUSY) if (CPF_CPF_STAT_BUSY + != 0) else None) + unit: pct + tips: - metric_table: id: 502 - title: Command Processor Compute + title: Packet Processor header: metric: Metric avg: Avg @@ -91,19 +76,7 @@ Panel Config: unit: Unit tips: Tips metric: - GPU Busy Cycles: - avg: AVG(GRBM_GUI_ACTIVE) - min: MIN(GRBM_GUI_ACTIVE) - max: MAX(GRBM_GUI_ACTIVE) - unit: Cycles - tips: - CPC Busy Cycles: - avg: AVG(CPC_CPC_STAT_BUSY) - min: MIN(CPC_CPC_STAT_BUSY) - max: MAX(CPC_CPC_STAT_BUSY) - unit: Cycles - tips: - CPC Util: + CPC Utilization: avg: AVG((((100 * CPC_CPC_STAT_BUSY) / (CPC_CPC_STAT_BUSY + CPC_CPC_STAT_IDLE)) if ((CPC_CPC_STAT_BUSY + CPC_CPC_STAT_IDLE) != 0) else None)) min: MIN((((100 * CPC_CPC_STAT_BUSY) / (CPC_CPC_STAT_BUSY + CPC_CPC_STAT_IDLE)) @@ -112,12 +85,6 @@ Panel Config: if ((CPC_CPC_STAT_BUSY + CPC_CPC_STAT_IDLE) != 0) else None)) unit: pct tips: - CPC Stall Cycles: - avg: AVG(CPC_CPC_STAT_STALL) - min: MIN(CPC_CPC_STAT_STALL) - max: MAX(CPC_CPC_STAT_STALL) - unit: Cycles - tips: CPC Stall Rate: avg: AVG((((100 * CPC_CPC_STAT_STALL) / CPC_CPC_STAT_BUSY) if (CPC_CPC_STAT_BUSY != 0) else None)) @@ -127,28 +94,19 @@ Panel Config: != 0) else None)) unit: pct tips: - CPC Packet Decoding: - avg: AVG(CPC_ME1_BUSY_FOR_PACKET_DECODE) - min: MIN(CPC_ME1_BUSY_FOR_PACKET_DECODE) - max: MAX(CPC_ME1_BUSY_FOR_PACKET_DECODE) - unit: Cycles - tips: - SPI Intf Busy Cycles: - avg: AVG(CPC_ME1_DC0_SPI_BUSY) - min: MIN(CPC_ME1_DC0_SPI_BUSY) - max: MAX(CPC_ME1_DC0_SPI_BUSY) - unit: Cycles - tips: - SPI Intf Util: - avg: AVG((((100 * CPC_ME1_DC0_SPI_BUSY) / CPC_CPC_STAT_BUSY) if (CPC_CPC_STAT_BUSY - != 0) else None)) - min: MIN((((100 * CPC_ME1_DC0_SPI_BUSY) / CPC_CPC_STAT_BUSY) if (CPC_CPC_STAT_BUSY - != 0) else None)) - max: MAX((((100 * CPC_ME1_DC0_SPI_BUSY) / CPC_CPC_STAT_BUSY) if (CPC_CPC_STAT_BUSY - != 0) else None)) + CPC Packet Decoding Utilization: + avg: AVG((100 * CPC_ME1_BUSY_FOR_PACKET_DECODE) / CPC_CPC_STAT_BUSY if (CPC_CPC_STAT_BUSY != 0) else None) + min: MIN((100 * CPC_ME1_BUSY_FOR_PACKET_DECODE) / CPC_CPC_STAT_BUSY if (CPC_CPC_STAT_BUSY != 0) else None) + max: MAX((100 * CPC_ME1_BUSY_FOR_PACKET_DECODE) / CPC_CPC_STAT_BUSY if (CPC_CPC_STAT_BUSY != 0) else None) unit: pct tips: - L2Cache Intf Util: + CPC-Workgroup Manager Utilization: + avg: AVG((100 * CPC_ME1_DC0_SPI_BUSY) / CPC_CPC_STAT_BUSY if (CPC_CPC_STAT_BUSY != 0) else None) + min: MIN((100 * CPC_ME1_DC0_SPI_BUSY) / CPC_CPC_STAT_BUSY if (CPC_CPC_STAT_BUSY != 0) else None) + max: MAX((100 * CPC_ME1_DC0_SPI_BUSY) / CPC_CPC_STAT_BUSY if (CPC_CPC_STAT_BUSY != 0) else None) + unit: Pct + tips: + CPC-L2 Utilization: avg: AVG((((100 * CPC_CPC_TCIU_BUSY) / (CPC_CPC_TCIU_BUSY + CPC_CPC_TCIU_IDLE)) if ((CPC_CPC_TCIU_BUSY + CPC_CPC_TCIU_IDLE) != 0) else None)) min: MIN((((100 * CPC_CPC_TCIU_BUSY) / (CPC_CPC_TCIU_BUSY + CPC_CPC_TCIU_IDLE)) @@ -157,19 +115,16 @@ Panel Config: if ((CPC_CPC_TCIU_BUSY + CPC_CPC_TCIU_IDLE) != 0) else None)) unit: pct tips: - UTCL1 Stall Cycles: - avg: AVG(CPC_UTCL1_STALL_ON_TRANSLATION) - min: MIN(CPC_UTCL1_STALL_ON_TRANSLATION) - max: MAX(CPC_UTCL1_STALL_ON_TRANSLATION) - unit: Cycles + CPC-UTCL1 Stall: + avg: AVG(((100 * CPC_UTCL1_STALL_ON_TRANSLATION) / CPC_CPC_STAT_BUSY) if (CPC_CPC_STAT_BUSY + != 0) else None) + min: MIN(((100 * CPC_UTCL1_STALL_ON_TRANSLATION) / CPC_CPC_STAT_BUSY) if (CPC_CPC_STAT_BUSY + != 0) else None) + max: MAX(((100 * CPC_UTCL1_STALL_ON_TRANSLATION) / CPC_CPC_STAT_BUSY) if (CPC_CPC_STAT_BUSY + != 0) else None) + unit: pct tips: - UTCL2 Intf Busy Cycles: - avg: AVG(CPC_CPC_UTCL2IU_BUSY) - min: MIN(CPC_CPC_UTCL2IU_BUSY) - max: MAX(CPC_CPC_UTCL2IU_BUSY) - unit: Cycles - tips: - UTCL2 Intf Util: + CPC-UTCL2 Utilization: avg: AVG((((100 * CPC_CPC_UTCL2IU_BUSY) / (CPC_CPC_UTCL2IU_BUSY + CPC_CPC_UTCL2IU_IDLE)) if ((CPC_CPC_UTCL2IU_BUSY + CPC_CPC_UTCL2IU_IDLE) != 0) else None)) min: MIN((((100 * CPC_CPC_UTCL2IU_BUSY) / (CPC_CPC_UTCL2IU_BUSY + CPC_CPC_UTCL2IU_IDLE)) @@ -177,4 +132,4 @@ Panel Config: max: MAX((((100 * CPC_CPC_UTCL2IU_BUSY) / (CPC_CPC_UTCL2IU_BUSY + CPC_CPC_UTCL2IU_IDLE)) if ((CPC_CPC_UTCL2IU_BUSY + CPC_CPC_UTCL2IU_IDLE) != 0) else None)) unit: pct - tips: + tips: \ No newline at end of file diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx942/0600_shader-processor-input.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx942/0600_shader-processor-input.yaml index bab48700ac..7a6d5e004d 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx942/0600_shader-processor-input.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx942/0600_shader-processor-input.yaml @@ -6,11 +6,11 @@ Metric Description: # Define the panel properties and properties of each metric in the panel. Panel Config: id: 600 - title: Shader Processor Input (SPI) + title: Workgroup Manager (SPI) data source: - metric_table: id: 601 - title: SPI Stats + title: Workgroup Manager Utilizations header: metric: Metric avg: Avg @@ -19,29 +19,35 @@ Panel Config: unit: Unit tips: Tips metric: - GPU Busy: - avg: AVG(GRBM_GUI_ACTIVE) - min: MIN(GRBM_GUI_ACTIVE) - max: MAX(GRBM_GUI_ACTIVE) - unit: Cycles + Accelerator Utilization: + avg: AVG(100 * GRBM_GUI_ACTIVE / GRBM_COUNT) + min: MIN(100 * GRBM_GUI_ACTIVE / GRBM_COUNT) + max: MAX(100 * GRBM_GUI_ACTIVE / GRBM_COUNT) + unit: Pct tips: - CS Busy: - avg: AVG(SPI_CSN_BUSY) - min: MIN(SPI_CSN_BUSY) - max: MAX(SPI_CSN_BUSY) - unit: Cycles + Scheduler-Pipe Utilization: + avg: AVG(100 * SPI_CSN_BUSY / (GRBM_GUI_ACTIVE * $numPipes * $numSE)) + min: MIN(100 * SPI_CSN_BUSY / (GRBM_GUI_ACTIVE * $numPipes * $numSE)) + max: MAX(100 * SPI_CSN_BUSY / (GRBM_GUI_ACTIVE * $numPipes * $numSE)) + unit: Pct tips: - SPI Busy: - avg: AVG(GRBM_SPI_BUSY) - min: MIN(GRBM_SPI_BUSY) - max: MAX(GRBM_SPI_BUSY) - unit: Cycles + Workgroup Manager Utilization: + avg: AVG(100 * GRBM_SPI_BUSY / GRBM_GUI_ACTIVE) + min: MIN(100 * GRBM_SPI_BUSY / GRBM_GUI_ACTIVE) + max: MAX(100 * GRBM_SPI_BUSY / GRBM_GUI_ACTIVE) + unit: Pct tips: - SQ Busy: - avg: AVG(SQ_BUSY_CYCLES) - min: MIN(SQ_BUSY_CYCLES) - max: MAX(SQ_BUSY_CYCLES) - unit: Cycles + Shader Engine Utilization: + avg: AVG(100 * SQ_BUSY_CYCLES / (GRBM_GUI_ACTIVE * $numSE)) + min: MIN(100 * SQ_BUSY_CYCLES / (GRBM_GUI_ACTIVE * $numSE)) + max: MAX(100 * SQ_BUSY_CYCLES / (GRBM_GUI_ACTIVE * $numSE)) + unit: Pct + tips: + SIMD Utilization: + avg: AVG(100 * SQ_BUSY_CU_CYCLES / (GRBM_GUI_ACTIVE * $numCU)) + min: MIN(100 * SQ_BUSY_CU_CYCLES / (GRBM_GUI_ACTIVE * $numCU)) + max: MAX(100 * SQ_BUSY_CU_CYCLES / (GRBM_GUI_ACTIVE * $numCU)) + unit: Pct tips: Dispatched Workgroups: avg: AVG(SPI_CSN_NUM_THREADGROUPS) @@ -55,105 +61,6 @@ Panel Config: max: MAX(SPI_CSN_WAVE) unit: Wavefronts tips: - Wave Alloc Failed: - avg: AVG(SPI_RA_REQ_NO_ALLOC) - min: MIN(SPI_RA_REQ_NO_ALLOC) - max: MAX(SPI_RA_REQ_NO_ALLOC) - unit: Cycles - tips: - Wave Alloc Failed - CS: - avg: AVG(SPI_RA_REQ_NO_ALLOC_CSN) - min: MIN(SPI_RA_REQ_NO_ALLOC_CSN) - max: MAX(SPI_RA_REQ_NO_ALLOC_CSN) - unit: Cycles - tips: - - - metric_table: - id: 602 - title: SPI Resource Allocation - header: - metric: Metric - avg: Avg - min: Min - max: Max - unit: Unit - tips: Tips - metric: - Wave request Failed (CS): - avg: AVG(SPI_RA_REQ_NO_ALLOC_CSN) - min: MIN(SPI_RA_REQ_NO_ALLOC_CSN) - max: MAX(SPI_RA_REQ_NO_ALLOC_CSN) - unit: Cycles - tips: - CS Stall: - avg: AVG(SPI_RA_RES_STALL_CSN) - min: MIN(SPI_RA_RES_STALL_CSN) - max: MAX(SPI_RA_RES_STALL_CSN) - unit: Cycles - tips: - CS Stall Rate: - avg: AVG((((100 * SPI_RA_RES_STALL_CSN) / GRBM_SPI_BUSY) if (GRBM_SPI_BUSY != - 0) else None)) - min: MIN((((100 * SPI_RA_RES_STALL_CSN) / GRBM_SPI_BUSY) if (GRBM_SPI_BUSY != - 0) else None)) - max: MAX((((100 * SPI_RA_RES_STALL_CSN) / GRBM_SPI_BUSY) if (GRBM_SPI_BUSY != - 0) else None)) - unit: pct - tips: - Scratch Stall: - avg: AVG(SPI_RA_TMP_STALL_CSN) - min: MIN(SPI_RA_TMP_STALL_CSN) - max: MAX(SPI_RA_TMP_STALL_CSN) - unit: Cycles - tips: - Insufficient SIMD Waveslots: - avg: AVG(SPI_RA_WAVE_SIMD_FULL_CSN) - min: MIN(SPI_RA_WAVE_SIMD_FULL_CSN) - max: MAX(SPI_RA_WAVE_SIMD_FULL_CSN) - unit: SIMD - tips: - Insufficient SIMD VGPRs: - avg: AVG(SPI_RA_VGPR_SIMD_FULL_CSN) - min: MIN(SPI_RA_VGPR_SIMD_FULL_CSN) - max: MAX(SPI_RA_VGPR_SIMD_FULL_CSN) - unit: SIMD - tips: - Insufficient SIMD SGPRs: - avg: AVG(SPI_RA_SGPR_SIMD_FULL_CSN) - min: MIN(SPI_RA_SGPR_SIMD_FULL_CSN) - max: MAX(SPI_RA_SGPR_SIMD_FULL_CSN) - unit: SIMD - tips: - Insufficient CU LDS: - avg: AVG(SPI_RA_LDS_CU_FULL_CSN) - min: MIN(SPI_RA_LDS_CU_FULL_CSN) - max: MAX(SPI_RA_LDS_CU_FULL_CSN) - unit: CU - tips: - Insufficient CU Barries: - avg: AVG(SPI_RA_BAR_CU_FULL_CSN) - min: MIN(SPI_RA_BAR_CU_FULL_CSN) - max: MAX(SPI_RA_BAR_CU_FULL_CSN) - unit: CU - tips: - Insufficient Bulky Resource: - avg: AVG(SPI_RA_BULKY_CU_FULL_CSN) - min: MIN(SPI_RA_BULKY_CU_FULL_CSN) - max: MAX(SPI_RA_BULKY_CU_FULL_CSN) - unit: CU - tips: - Reach CU Threadgroups Limit: - avg: AVG(SPI_RA_TGLIM_CU_FULL_CSN) - min: MIN(SPI_RA_TGLIM_CU_FULL_CSN) - max: MAX(SPI_RA_TGLIM_CU_FULL_CSN) - unit: Cycles - tips: - Reach CU Wave Limit: - avg: AVG(SPI_RA_WVLIM_STALL_CSN) - min: MIN(SPI_RA_WVLIM_STALL_CSN) - max: MAX(SPI_RA_WVLIM_STALL_CSN) - unit: Cycles - tips: VGPR Writes: avg: AVG((((4 * SPI_VWC_CSC_WR) / SPI_CSN_WAVE) if (SPI_CSN_WAVE != 0) else None)) @@ -172,3 +79,89 @@ Panel Config: None)) unit: Cycles/wave tips: + - metric_table: + id: 602 + title: Workgroup Manager - Resource Allocation + header: + metric: Metric + avg: Avg + min: Min + max: Max + unit: Unit + tips: Tips + metric: + Not-scheduled Rate (Workgroup Manager): + avg: AVG((100 * SPI_RA_REQ_NO_ALLOC_CSN / (GRBM_SPI_BUSY * $numSE)) if (GRBM_SPI_BUSY != + 0) else None) + min: MIN((100 * SPI_RA_REQ_NO_ALLOC_CSN / (GRBM_SPI_BUSY * $numSE)) if (GRBM_SPI_BUSY != + 0) else None) + max: MAX((100 * SPI_RA_REQ_NO_ALLOC_CSN / (GRBM_SPI_BUSY * $numSE)) if (GRBM_SPI_BUSY != + 0) else None) + unit: Pct + tips: + Not-scheduled Rate (Scheduler-Pipe): + avg: AVG((100 * SPI_RA_REQ_NO_ALLOC / (GRBM_SPI_BUSY * $numSE)) if (GRBM_SPI_BUSY != + 0) else None) + min: MIN((100 * SPI_RA_REQ_NO_ALLOC / (GRBM_SPI_BUSY * $numSE)) if (GRBM_SPI_BUSY != + 0) else None) + max: MAX((100 * SPI_RA_REQ_NO_ALLOC / (GRBM_SPI_BUSY * $numSE)) if (GRBM_SPI_BUSY != + 0) else None) + unit: Pct + tips: + Scheduler-Pipe Stall Rate: + avg: AVG((((100 * SPI_RA_RES_STALL_CSN) / (GRBM_SPI_BUSY * $numSE)) if (GRBM_SPI_BUSY != + 0) else None)) + min: MIN((((100 * SPI_RA_RES_STALL_CSN) / (GRBM_SPI_BUSY * $numSE)) if (GRBM_SPI_BUSY != + 0) else None)) + max: MAX((((100 * SPI_RA_RES_STALL_CSN) / (GRBM_SPI_BUSY * $numSE)) if (GRBM_SPI_BUSY != + 0) else None)) + unit: Pct + tips: + Scratch Stall Rate: + avg: AVG((100 * SPI_RA_TMP_STALL_CSN / (GRBM_SPI_BUSY * $numSE)) if (GRBM_SPI_BUSY != 0) else None) + min: MIN((100 * SPI_RA_TMP_STALL_CSN / (GRBM_SPI_BUSY * $numSE)) if (GRBM_SPI_BUSY != 0) else None) + max: MAX((100 * SPI_RA_TMP_STALL_CSN / (GRBM_SPI_BUSY * $numSE)) if (GRBM_SPI_BUSY != 0) else None) + unit: Pct + tips: + Insufficient SIMD Waveslots: + avg: AVG(100 * SPI_RA_WAVE_SIMD_FULL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + min: MIN(100 * SPI_RA_WAVE_SIMD_FULL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + max: MAX(100 * SPI_RA_WAVE_SIMD_FULL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + unit: Pct + tips: + Insufficient SIMD VGPRs: + avg: AVG(100 * SPI_RA_VGPR_SIMD_FULL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + min: MIN(100 * SPI_RA_VGPR_SIMD_FULL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + max: MAX(100 * SPI_RA_VGPR_SIMD_FULL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + unit: Pct + tips: + Insufficient SIMD SGPRs: + avg: AVG(100 * SPI_RA_SGPR_SIMD_FULL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + min: MIN(100 * SPI_RA_SGPR_SIMD_FULL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + max: MAX(100 * SPI_RA_SGPR_SIMD_FULL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + unit: Pct + tips: + Insufficient CU LDS: + avg: AVG(400 * SPI_RA_LDS_CU_FULL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + min: MIN(400 * SPI_RA_LDS_CU_FULL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + max: MAX(400 * SPI_RA_LDS_CU_FULL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + unit: Pct + tips: + Insufficient CU Barriers: + avg: AVG(400 * SPI_RA_BAR_CU_FULL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + min: MIN(400 * SPI_RA_BAR_CU_FULL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + max: MAX(400 * SPI_RA_BAR_CU_FULL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + unit: Pct + tips: + Reached CU Workgroup Limit: + avg: AVG(400 * SPI_RA_TGLIM_CU_FULL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + min: MIN(400 * SPI_RA_TGLIM_CU_FULL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + max: MAX(400 * SPI_RA_TGLIM_CU_FULL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + unit: Pct + tips: + Reached CU Wavefront Limit: + avg: AVG(400 * SPI_RA_WVLIM_STALL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + min: MIN(400 * SPI_RA_WVLIM_STALL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + max: MAX(400 * SPI_RA_WVLIM_STALL_CSN / (GRBM_GUI_ACTIVE * $numCU)) + unit: Pct + tips: \ No newline at end of file diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx942/0700_wavefront-launch.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx942/0700_wavefront-launch.yaml index ba8398e5cb..d4b60fe398 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx942/0700_wavefront-launch.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx942/0700_wavefront-launch.yaml @@ -26,9 +26,9 @@ Panel Config: unit: Work Items tips: Workgroup Size: - avg: AVG(LDS_Per_Workgroup) - min: MIN(LDS_Per_Workgroup) - max: MAX(LDS_Per_Workgroup) + avg: AVG(Workgroup_Size) + min: MIN(Workgroup_Size) + max: MAX(Workgroup_Size) unit: Work Items tips: Total Wavefronts: @@ -77,7 +77,7 @@ Panel Config: avg: AVG(Scratch_Per_Workitem) min: MIN(Scratch_Per_Workitem) max: MAX(Scratch_Per_Workitem) - unit: Bytes + unit: Bytes/Workitem tips: - metric_table: @@ -103,7 +103,7 @@ Panel Config: max: MAX(GRBM_GUI_ACTIVE) unit: Cycle tips: - Instr/wavefront: + Instructions per wavefront: avg: AVG((SQ_INSTS / SQ_WAVES)) min: MIN((SQ_INSTS / SQ_WAVES)) max: MAX((SQ_INSTS / SQ_WAVES)) diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx942/1000_compute-unit-instruction-mix.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx942/1000_compute-unit-instruction-mix.yaml index b6ed293940..64769ecd81 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx942/1000_compute-unit-instruction-mix.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx942/1000_compute-unit-instruction-mix.yaml @@ -10,7 +10,7 @@ Panel Config: data source: - metric_table: id: 1001 - title: Instruction Mix + title: Overall Instruction Mix header: metric: Metric avg: Avg @@ -19,7 +19,7 @@ Panel Config: unit: Unit tips: Tips metric: - VALU - Vector: + VALU: avg: AVG(((SQ_INSTS_VALU - SQ_INSTS_MFMA) / $denom)) min: MIN(((SQ_INSTS_VALU - SQ_INSTS_MFMA) / $denom)) max: MAX(((SQ_INSTS_VALU - SQ_INSTS_MFMA) / $denom)) @@ -37,7 +37,7 @@ Panel Config: max: MAX((SQ_INSTS_LDS / $denom)) unit: (instr + $normUnit) tips: - VALU - MFMA: + MFMA: avg: AVG((SQ_INSTS_MFMA / $denom)) min: MIN((SQ_INSTS_MFMA / $denom)) max: MAX((SQ_INSTS_MFMA / $denom)) @@ -61,12 +61,6 @@ Panel Config: max: MAX((SQ_INSTS_BRANCH / $denom)) unit: (instr + $normUnit) tips: - GDS: - avg: AVG((SQ_INSTS_GDS / $denom)) - min: MIN((SQ_INSTS_GDS / $denom)) - max: MAX((SQ_INSTS_GDS / $denom)) - unit: (instr + $normUnit) - tips: - metric_table: id: 1002 @@ -174,55 +168,100 @@ Panel Config: id: 1003 title: VMEM Instr Mix header: - type: type - count: Count + metric: Metric + avg: Avg + min: Min + max: Max + unit: Unit tips: Tips metric: - Buffer Instr: - count: AVG((TA_BUFFER_WAVEFRONTS_sum / $denom)) - tips: - Buffer Read: - count: AVG((TA_BUFFER_READ_WAVEFRONTS_sum / $denom)) - tips: - Buffer Write: - count: AVG((TA_BUFFER_WRITE_WAVEFRONTS_sum / $denom)) - tips: - Buffer Atomic: - count: AVG((TA_BUFFER_ATOMIC_WAVEFRONTS_sum / $denom)) - tips: - Flat Instr: - count: AVG((TA_FLAT_WAVEFRONTS_sum / $denom)) - tips: - Flat Read: - count: AVG((TA_FLAT_READ_WAVEFRONTS_sum / $denom)) - tips: - Flat Write: - count: AVG((TA_FLAT_WRITE_WAVEFRONTS_sum / $denom)) - tips: - Flat Atomic: - count: AVG((TA_FLAT_ATOMIC_WAVEFRONTS_sum / $denom)) - tips: + Global/Generic Instr: + avg: AVG((TA_FLAT_WAVEFRONTS_sum / $denom)) + min: MIN((TA_FLAT_WAVEFRONTS_sum / $denom)) + max: MAX((TA_FLAT_WAVEFRONTS_sum / $denom)) + unit: (instr + $normUnit) + tips: + Global/Generic Read: + avg: AVG((TA_FLAT_READ_WAVEFRONTS_sum / $denom)) + min: MIN((TA_FLAT_READ_WAVEFRONTS_sum / $denom)) + max: MAX((TA_FLAT_READ_WAVEFRONTS_sum / $denom)) + unit: (instr + $normUnit) + tips: + Global/Generic Write: + avg: AVG((TA_FLAT_WRITE_WAVEFRONTS_sum / $denom)) + min: MIN((TA_FLAT_WRITE_WAVEFRONTS_sum / $denom)) + max: MAX((TA_FLAT_WRITE_WAVEFRONTS_sum / $denom)) + unit: (instr + $normUnit) + tips: + Global/Generic Atomic: + avg: AVG((TA_FLAT_ATOMIC_WAVEFRONTS_sum / $denom)) + min: MIN((TA_FLAT_ATOMIC_WAVEFRONTS_sum / $denom)) + max: MAX((TA_FLAT_ATOMIC_WAVEFRONTS_sum / $denom)) + unit: (instr + $normUnit) + tips: + Spill/Stack Instr: + avg: AVG((TA_BUFFER_WAVEFRONTS_sum / $denom)) + min: MIN((TA_BUFFER_WAVEFRONTS_sum / $denom)) + max: MAX((TA_BUFFER_WAVEFRONTS_sum / $denom)) + unit: (instr + $normUnit) + tips: + Spill/Stack Read: + avg: AVG((TA_BUFFER_READ_WAVEFRONTS_sum / $denom)) + min: MIN((TA_BUFFER_READ_WAVEFRONTS_sum / $denom)) + max: MAX((TA_BUFFER_READ_WAVEFRONTS_sum / $denom)) + unit: (instr + $normUnit) + tips: + Spill/Stack Write: + avg: AVG((TA_BUFFER_WRITE_WAVEFRONTS_sum / $denom)) + min: MIN((TA_BUFFER_WRITE_WAVEFRONTS_sum / $denom)) + max: MAX((TA_BUFFER_WRITE_WAVEFRONTS_sum / $denom)) + unit: (instr + $normUnit) + tips: + Spill/Stack Atomic: + avg: AVG((TA_BUFFER_ATOMIC_WAVEFRONTS_sum / $denom)) + min: MIN((TA_BUFFER_ATOMIC_WAVEFRONTS_sum / $denom)) + max: MAX((TA_BUFFER_ATOMIC_WAVEFRONTS_sum / $denom)) + unit: (instr + $normUnit) + tips: - metric_table: id: 1004 title: MFMA Arithmetic Instr Mix header: - type: type - count: Count + metric: Metric + avg: Avg + min: Min + max: Max + unit: Unit tips: Tips metric: MFMA-I8: - count: AVG((SQ_INSTS_VALU_MFMA_I8 / $denom)) + avg: AVG((SQ_INSTS_VALU_MFMA_I8 / $denom)) + min: MIN((SQ_INSTS_VALU_MFMA_I8 / $denom)) + max: MAX((SQ_INSTS_VALU_MFMA_I8 / $denom)) + unit: (instr + $normUnit) tips: MFMA-F16: - count: AVG((SQ_INSTS_VALU_MFMA_F16 / $denom)) + avg: AVG((SQ_INSTS_VALU_MFMA_F16 / $denom)) + min: MIN((SQ_INSTS_VALU_MFMA_F16 / $denom)) + max: MAX((SQ_INSTS_VALU_MFMA_F16 / $denom)) + unit: (instr + $normUnit) tips: MFMA-BF16: - count: AVG((SQ_INSTS_VALU_MFMA_BF16 / $denom)) + avg: AVG((SQ_INSTS_VALU_MFMA_BF16 / $denom)) + min: MIN((SQ_INSTS_VALU_MFMA_BF16 / $denom)) + max: MAX((SQ_INSTS_VALU_MFMA_BF16 / $denom)) + unit: (instr + $normUnit) tips: MFMA-F32: - count: AVG((SQ_INSTS_VALU_MFMA_F32 / $denom)) + avg: AVG((SQ_INSTS_VALU_MFMA_F32 / $denom)) + min: MIN((SQ_INSTS_VALU_MFMA_F32 / $denom)) + max: MAX((SQ_INSTS_VALU_MFMA_F32 / $denom)) + unit: (instr + $normUnit) tips: MFMA-F64: - count: AVG((SQ_INSTS_VALU_MFMA_F64 / $denom)) + avg: AVG((SQ_INSTS_VALU_MFMA_F64 / $denom)) + min: MIN((SQ_INSTS_VALU_MFMA_F64 / $denom)) + max: MAX((SQ_INSTS_VALU_MFMA_F64 / $denom)) + unit: (instr + $normUnit) tips: diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx942/1100_compute-unit-compute-pipeline.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx942/1100_compute-unit-compute-pipeline.yaml index 0119b4caf9..53d49b2059 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx942/1100_compute-unit-compute-pipeline.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx942/1100_compute-unit-compute-pipeline.yaml @@ -13,43 +13,68 @@ Panel Config: title: Speed-of-Light header: metric: Metric - value: Value + value: Avg unit: Unit + peak: Peak + pop: Pct of Peak tips: Tips metric: - valu_flops_pop: - value: ((100 * AVG(((((64 * (((SQ_INSTS_VALU_ADD_F16 + SQ_INSTS_VALU_MUL_F16) + VALU FLOPs: + value: 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)))) + / (End_Timestamp - Start_Timestamp))) + unit: GFLOP + peak: (((($sclk * $numCU) * 64) * 2) / 1000) + pop: ((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)))) / (End_Timestamp - Start_Timestamp)))) / (((($sclk * $numCU) * 64) * 2) / 1000)) - unit: Pct of Peak tips: - mfma_flops_bf16_pop: - value: ((100 * AVG(((SQ_INSTS_VALU_MFMA_MOPS_BF16 * 512) / (End_Timestamp - Start_Timestamp)))) - / ((($sclk * $numCU) * 512) / 1000)) - unit: Pct of Peak + VALU IOPs: + value: AVG(((64 * (SQ_INSTS_VALU_INT32 + SQ_INSTS_VALU_INT64)) / (End_Timestamp - Start_Timestamp))) + unit: GIOP + peak: (((($sclk * $numCU) * 64) * 2) / 1000) + pop: ((100 * AVG(((64 * (SQ_INSTS_VALU_INT32 + SQ_INSTS_VALU_INT64)) / (End_Timestamp + - Start_Timestamp)))) / (((($sclk * $numCU) * 64) * 2) / 1000)) tips: - mfma_flops_f16_pop: - value: ((100 * AVG(((SQ_INSTS_VALU_MFMA_MOPS_F16 * 512) / (End_Timestamp - Start_Timestamp)))) + MFMA FLOPs (BF16): + value: AVG(((SQ_INSTS_VALU_MFMA_MOPS_BF16 * 512) / (End_Timestamp - Start_Timestamp))) + unit: GFLOP + peak: ((($sclk * $numCU) * 1024) / 1000) + pop: ((100 * AVG(((SQ_INSTS_VALU_MFMA_MOPS_BF16 * 512) / (End_Timestamp - Start_Timestamp)))) / ((($sclk * $numCU) * 1024) / 1000)) - unit: Pct of Peak tips: - mfma_flops_f32_pop: - value: ((100 * AVG(((SQ_INSTS_VALU_MFMA_MOPS_F32 * 512) / (End_Timestamp - Start_Timestamp)))) - / ((($sclk * $numCU) * 256) / 1000)) - unit: Pct of Peak - tips: - mfma_flops_f64_pop: - value: ((100 * AVG(((SQ_INSTS_VALU_MFMA_MOPS_F64 * 512) / (End_Timestamp - Start_Timestamp)))) - / ((($sclk * $numCU) * 256) / 1000)) - unit: Pct of Peak - tips: - mfma_flops_i8_pop: - value: ((100 * AVG(((SQ_INSTS_VALU_MFMA_MOPS_I8 * 512) / (End_Timestamp - Start_Timestamp)))) + MFMA FLOPs (F16): + value: AVG(((SQ_INSTS_VALU_MFMA_MOPS_F16 * 512) / (End_Timestamp - Start_Timestamp))) + unit: GFLOP + peak: ((($sclk * $numCU) * 1024) / 1000) + pop: ((100 * AVG(((SQ_INSTS_VALU_MFMA_MOPS_F16 * 512) / (End_Timestamp - Start_Timestamp)))) + / ((($sclk * $numCU) * 1024) / 1000)) + tips: + MFMA FLOPs (F32): + value: AVG(((SQ_INSTS_VALU_MFMA_MOPS_F32 * 512) / (End_Timestamp - Start_Timestamp))) + unit: GFLOP + peak: ((($sclk * $numCU) * 256) / 1000) + pop: ((100 * AVG(((SQ_INSTS_VALU_MFMA_MOPS_F32 * 512) / (End_Timestamp - Start_Timestamp)))) + / ((($sclk * $numCU) * 256) / 1000)) + tips: + MFMA FLOPs (F64): + value: AVG(((SQ_INSTS_VALU_MFMA_MOPS_F64 * 512) / (End_Timestamp - Start_Timestamp))) + unit: GFLOP + peak: ((($sclk * $numCU) * 256) / 1000) + pop: ((100 * AVG(((SQ_INSTS_VALU_MFMA_MOPS_F64 * 512) / (End_Timestamp - Start_Timestamp)))) + / ((($sclk * $numCU) * 256) / 1000)) + tips: + MFMA IOPs (INT8): + value: AVG(((SQ_INSTS_VALU_MFMA_MOPS_I8 * 512) / (End_Timestamp - Start_Timestamp))) + unit: GIOP + peak: ((($sclk * $numCU) * 1024) / 1000) + pop: ((100 * AVG(((SQ_INSTS_VALU_MFMA_MOPS_I8 * 512) / (End_Timestamp - Start_Timestamp)))) / ((($sclk * $numCU) * 1024) / 1000)) - unit: Pct of Peak tips: - metric_table: @@ -63,36 +88,48 @@ Panel Config: unit: Unit tips: Tips metric: - IPC (Avg): + IPC: avg: AVG((SQ_INSTS / SQ_BUSY_CU_CYCLES)) min: MIN((SQ_INSTS / SQ_BUSY_CU_CYCLES)) max: MAX((SQ_INSTS / SQ_BUSY_CU_CYCLES)) unit: Instr/cycle tips: - IPC (Issue): - avg: AVG(((((((((SQ_INSTS_VALU + SQ_INSTS_VMEM) + SQ_INSTS_SALU) + SQ_INSTS_SMEM) - + SQ_INSTS_GDS) + SQ_INSTS_BRANCH) + SQ_INSTS_SENDMSG) + SQ_INSTS_VSKIPPED) + IPC (Issued): + avg: AVG(((((((((SQ_INSTS_VALU + SQ_INSTS_VMEM) + SQ_INSTS_SALU) + SQ_INSTS_SMEM)) + + SQ_INSTS_BRANCH) + SQ_INSTS_SENDMSG) + SQ_INSTS_VSKIPPED + SQ_INSTS_LDS) / SQ_ACTIVE_INST_ANY)) - min: MIN(((((((((SQ_INSTS_VALU + SQ_INSTS_VMEM) + SQ_INSTS_SALU) + SQ_INSTS_SMEM) - + SQ_INSTS_GDS) + SQ_INSTS_BRANCH) + SQ_INSTS_SENDMSG) + SQ_INSTS_VSKIPPED) + min: MIN(((((((((SQ_INSTS_VALU + SQ_INSTS_VMEM) + SQ_INSTS_SALU) + SQ_INSTS_SMEM)) + + SQ_INSTS_BRANCH) + SQ_INSTS_SENDMSG) + SQ_INSTS_VSKIPPED + SQ_INSTS_LDS) / SQ_ACTIVE_INST_ANY)) - max: MAX(((((((((SQ_INSTS_VALU + SQ_INSTS_VMEM) + SQ_INSTS_SALU) + SQ_INSTS_SMEM) - + SQ_INSTS_GDS) + SQ_INSTS_BRANCH) + SQ_INSTS_SENDMSG) + SQ_INSTS_VSKIPPED) + max: MAX(((((((((SQ_INSTS_VALU + SQ_INSTS_VMEM) + SQ_INSTS_SALU) + SQ_INSTS_SMEM)) + + SQ_INSTS_BRANCH) + SQ_INSTS_SENDMSG) + SQ_INSTS_VSKIPPED + SQ_INSTS_LDS) / SQ_ACTIVE_INST_ANY)) unit: Instr/cycle tips: - SALU Util: + SALU Utilization: avg: AVG((((100 * SQ_ACTIVE_INST_SCA) / GRBM_GUI_ACTIVE) / $numCU)) min: MIN((((100 * SQ_ACTIVE_INST_SCA) / GRBM_GUI_ACTIVE) / $numCU)) max: MAX((((100 * SQ_ACTIVE_INST_SCA) / GRBM_GUI_ACTIVE) / $numCU)) unit: pct tips: - VALU Util: + VALU Utilization: avg: AVG((((100 * SQ_ACTIVE_INST_VALU) / GRBM_GUI_ACTIVE) / $numCU)) min: MIN((((100 * SQ_ACTIVE_INST_VALU) / GRBM_GUI_ACTIVE) / $numCU)) max: MAX((((100 * SQ_ACTIVE_INST_VALU) / GRBM_GUI_ACTIVE) / $numCU)) unit: pct tips: + VMEM Utilization: + avg: AVG((((100 * (SQ_ACTIVE_INST_FLAT+SQ_ACTIVE_INST_VMEM)) / GRBM_GUI_ACTIVE) / $numCU)) + min: MIN((((100 * (SQ_ACTIVE_INST_FLAT+SQ_ACTIVE_INST_VMEM)) / GRBM_GUI_ACTIVE) / $numCU)) + max: MAX((((100 * (SQ_ACTIVE_INST_FLAT+SQ_ACTIVE_INST_VMEM)) / GRBM_GUI_ACTIVE) / $numCU)) + unit: pct + tips: + Branch Utilization: + avg: AVG((((100 * SQ_ACTIVE_INST_MISC) / GRBM_GUI_ACTIVE) / $numCU)) + min: MIN((((100 * SQ_ACTIVE_INST_MISC) / GRBM_GUI_ACTIVE) / $numCU)) + max: MAX((((100 * SQ_ACTIVE_INST_MISC) / GRBM_GUI_ACTIVE) / $numCU)) + unit: pct + tips: VALU Active Threads: avg: AVG(((SQ_THREAD_CYCLES_VALU / SQ_ACTIVE_INST_VALU) if (SQ_ACTIVE_INST_VALU != 0) else None)) @@ -102,7 +139,7 @@ Panel Config: != 0) else None)) unit: Threads tips: - MFMA Util: + MFMA Utilization: avg: AVG(((100 * SQ_VALU_MFMA_BUSY_CYCLES) / ((4 * $numCU) * GRBM_GUI_ACTIVE))) min: MIN(((100 * SQ_VALU_MFMA_BUSY_CYCLES) / ((4 * $numCU) * GRBM_GUI_ACTIVE))) max: MAX(((100 * SQ_VALU_MFMA_BUSY_CYCLES) / ((4 * $numCU) * GRBM_GUI_ACTIVE))) @@ -117,6 +154,26 @@ Panel Config: else None)) unit: cycles/instr tips: + VMEM Latency: + avg: AVG(((SQ_ACCUM_PREV_HIRES / SQ_INSTS_VMEM) if (SQ_INSTS_VMEM != 0) + else None)) + min: MIN(((SQ_ACCUM_PREV_HIRES / SQ_INSTS_VMEM) if (SQ_INSTS_VMEM != 0) + else None)) + max: MAX(((SQ_ACCUM_PREV_HIRES / SQ_INSTS_VMEM) if (SQ_INSTS_VMEM != 0) + else None)) + unit: Cycles + coll_level: SQ_INST_LEVEL_VMEM + tips: + SMEM Latency: + avg: AVG(((SQ_ACCUM_PREV_HIRES / SQ_INSTS_SMEM) if (SQ_INSTS_SMEM != 0) + else None)) + min: MIN(((SQ_ACCUM_PREV_HIRES / SQ_INSTS_SMEM) if (SQ_INSTS_SMEM != 0) + else None)) + max: MAX(((SQ_ACCUM_PREV_HIRES / SQ_INSTS_SMEM) if (SQ_INSTS_SMEM != 0) + else None)) + unit: Cycles + coll_level: SQ_INST_LEVEL_SMEM + tips: - metric_table: id: 1103 @@ -153,10 +210,10 @@ Panel Config: $denom)) unit: (OPs + $normUnit) tips: - INT8 OPs: - avg: AVG(((SQ_INSTS_VALU_MFMA_MOPS_I8 * 512) / $denom)) - min: MIN(((SQ_INSTS_VALU_MFMA_MOPS_I8 * 512) / $denom)) - max: MAX(((SQ_INSTS_VALU_MFMA_MOPS_I8 * 512) / $denom)) + IOPs (Total): + avg: AVG(((64 * (SQ_INSTS_VALU_INT32 + SQ_INSTS_VALU_INT64)) + (SQ_INSTS_VALU_MFMA_MOPS_I8 * 512)) / $denom) + min: MIN(((64 * (SQ_INSTS_VALU_INT32 + SQ_INSTS_VALU_INT64)) + (SQ_INSTS_VALU_MFMA_MOPS_I8 * 512)) / $denom) + max: MAX(((64 * (SQ_INSTS_VALU_INT32 + SQ_INSTS_VALU_INT64)) + (SQ_INSTS_VALU_MFMA_MOPS_I8 * 512)) / $denom) unit: (OPs + $normUnit) tips: F16 OPs: @@ -195,4 +252,9 @@ Panel Config: + (SQ_INSTS_VALU_FMA_F64 * 2))) + (512 * SQ_INSTS_VALU_MFMA_MOPS_F64)) / $denom)) unit: (OPs + $normUnit) tips: - + INT8 OPs: + avg: AVG(((SQ_INSTS_VALU_MFMA_MOPS_I8 * 512) / $denom)) + min: MIN(((SQ_INSTS_VALU_MFMA_MOPS_I8 * 512) / $denom)) + max: MAX(((SQ_INSTS_VALU_MFMA_MOPS_I8 * 512) / $denom)) + unit: (OPs + $normUnit) + tips: \ No newline at end of file diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx942/1200_lds.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx942/1200_lds.yaml index c765733051..dd049c6c78 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx942/1200_lds.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx942/1200_lds.yaml @@ -13,24 +13,27 @@ Panel Config: title: Speed-of-Light header: metric: Metric - value: Value + value: Avg + unit: Unit tips: Tips metric: Utilization: value: AVG(((100 * SQ_LDS_IDX_ACTIVE) / (GRBM_GUI_ACTIVE * $numCU))) + unit: Pct of Peak tips: Access Rate: value: AVG(((200 * SQ_ACTIVE_INST_LDS) / (GRBM_GUI_ACTIVE * $numCU))) + unit: Pct of Peak tips: - Bandwidth (Pct-of-Peak): - value: - AVG((((((SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT) * 4) * TO_INT($LDSBanks)) + Theoretical Bandwidth (% of Peak): + value: AVG((((((SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT) * 4) * TO_INT($LDSBanks)) / (End_Timestamp - Start_Timestamp)) / (($sclk * $numCU) * 0.00128))) + unit: Pct of Peak tips: Bank Conflict Rate: - value: - AVG((((SQ_LDS_BANK_CONFLICT * 3.125) / (SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT)) + value: AVG((((SQ_LDS_BANK_CONFLICT * 3.125) / (SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT)) if ((SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT) != 0) else None)) + unit: Pct of Peak tips: comparable: false # for now cli_style: simple_bar @@ -52,27 +55,28 @@ Panel Config: max: MAX((SQ_INSTS_LDS / $denom)) unit: (Instr + $normUnit) tips: - Bandwidth: - avg: - AVG(((((SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT) * 4) * TO_INT($LDSBanks)) + Theoretical Bandwidth: + avg: AVG(((((SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT) * 4) * TO_INT($LDSBanks)) / $denom)) - min: - MIN(((((SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT) * 4) * TO_INT($LDSBanks)) + min: MIN(((((SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT) * 4) * TO_INT($LDSBanks)) / $denom)) - max: - MAX(((((SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT) * 4) * TO_INT($LDSBanks)) + max: MAX(((((SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT) * 4) * TO_INT($LDSBanks)) / $denom)) unit: (Bytes + $normUnit) tips: - Bank Conficts/Access: - avg: - AVG(((SQ_LDS_BANK_CONFLICT / (SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT)) + LDS Latency: + avg: AVG(((SQ_ACCUM_PREV_HIRES / SQ_INSTS_LDS) if (SQ_INSTS_LDS != 0) else None)) + min: MIN(((SQ_ACCUM_PREV_HIRES / SQ_INSTS_LDS) if (SQ_INSTS_LDS != 0) else None)) + max: MAX(((SQ_ACCUM_PREV_HIRES / SQ_INSTS_LDS) if (SQ_INSTS_LDS != 0) else None)) + unit: Cycles + coll_level: SQ_INST_LEVEL_LDS + tips: + Bank Conflicts/Access: + avg: AVG(((SQ_LDS_BANK_CONFLICT / (SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT)) if ((SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT) != 0) else None)) - min: - MIN(((SQ_LDS_BANK_CONFLICT / (SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT)) + min: MIN(((SQ_LDS_BANK_CONFLICT / (SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT)) if ((SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT) != 0) else None)) - max: - MAX(((SQ_LDS_BANK_CONFLICT / (SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT)) + max: MAX(((SQ_LDS_BANK_CONFLICT / (SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT)) if ((SQ_LDS_IDX_ACTIVE - SQ_LDS_BANK_CONFLICT) != 0) else None)) unit: Conflicts/Access tips: @@ -82,7 +86,7 @@ Panel Config: max: MAX((SQ_LDS_IDX_ACTIVE / $denom)) unit: (Cycles + $normUnit) tips: - Atomic Cycles: + Atomic Return Cycles: avg: AVG((SQ_LDS_ATOMIC_RETURN / $denom)) min: MIN((SQ_LDS_ATOMIC_RETURN / $denom)) max: MAX((SQ_LDS_ATOMIC_RETURN / $denom)) @@ -110,12 +114,5 @@ Panel Config: avg: AVG((SQ_LDS_MEM_VIOLATIONS / $denom)) min: MIN((SQ_LDS_MEM_VIOLATIONS / $denom)) max: MAX((SQ_LDS_MEM_VIOLATIONS / $denom)) - unit: ( + $normUnit) + unit: (Accesses + $normUnit) tips: - LDS Latency: - avg: AVG(((SQ_ACCUM_PREV_HIRES / SQ_INSTS_LDS) if (SQ_INSTS_LDS != 0) else None)) - min: MIN(((SQ_ACCUM_PREV_HIRES / SQ_INSTS_LDS) if (SQ_INSTS_LDS != 0) else None)) - max: MAX(((SQ_ACCUM_PREV_HIRES / SQ_INSTS_LDS) if (SQ_INSTS_LDS != 0) else None)) - unit: Cycles - coll_level: SQ_INST_LEVEL_LDS - tips: diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx942/1300_instruction-cache.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx942/1300_instruction-cache.yaml index bb69b4dfcb..109e545543 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx942/1300_instruction-cache.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx942/1300_instruction-cache.yaml @@ -13,17 +13,24 @@ Panel Config: title: Speed-of-Light header: metric: Metric - value: Value + value: Avg + unit: Unit tips: Tips metric: Bandwidth: value: AVG(((SQC_ICACHE_REQ * 100000) / (($sclk * $numSQC) * (End_Timestamp - Start_Timestamp)))) + unit: Pct of Peak tips: - Cache Hit: - value: - AVG(((SQC_ICACHE_HITS * 100) / ((SQC_ICACHE_HITS + SQC_ICACHE_MISSES) + Cache Hit Rate: + value: AVG(((SQC_ICACHE_HITS * 100) / ((SQC_ICACHE_HITS + SQC_ICACHE_MISSES) + SQC_ICACHE_MISSES_DUPLICATE))) + unit: Pct of Peak + tips: + L1I-L2 Bandwidth: + value: AVG(((SQC_TC_INST_REQ * 100000) / (2 * ($sclk * $numSQC) + * (End_Timestamp - Start_Timestamp)))) + unit: Pct of Peak tips: comparable: false # for now cli_style: simple_bar @@ -63,15 +70,36 @@ Panel Config: max: MAX((SQC_ICACHE_MISSES_DUPLICATE / $denom)) unit: (Misses + $normUnit) tips: - Cache Hit: - avg: - AVG(((100 * SQC_ICACHE_HITS) / ((SQC_ICACHE_HITS + SQC_ICACHE_MISSES) + Cache Hit Rate: + avg: AVG(((100 * SQC_ICACHE_HITS) / ((SQC_ICACHE_HITS + SQC_ICACHE_MISSES) + + SQC_ICACHE_MISSES_DUPLICATE))) + min: MIN(((100 * SQC_ICACHE_HITS) / ((SQC_ICACHE_HITS + SQC_ICACHE_MISSES) + + SQC_ICACHE_MISSES_DUPLICATE))) + max: MAX(((100 * SQC_ICACHE_HITS) / ((SQC_ICACHE_HITS + SQC_ICACHE_MISSES) + SQC_ICACHE_MISSES_DUPLICATE))) - min: - MIN(((100 * SQC_ICACHE_HITS) / ((SQC_ICACHE_HITS + SQC_ICACHE_MISSES) + - SQC_ICACHE_MISSES_DUPLICATE))) - max: - MAX(((100 * SQC_ICACHE_HITS) / ((SQC_ICACHE_HITS + SQC_ICACHE_MISSES) + - SQC_ICACHE_MISSES_DUPLICATE))) unit: pct tips: + Instruction Fetch Latency: + avg: AVG((SQ_ACCUM_PREV_HIRES / SQ_IFETCH)) + min: MIN((SQ_ACCUM_PREV_HIRES / SQ_IFETCH)) + max: MAX((SQ_ACCUM_PREV_HIRES / SQ_IFETCH)) + unit: Cycles + coll_level: SQ_IFETCH_LEVEL + tips: + - metric_table: + id: 1303 + title: Instruction Cache - L2 Interface + header: + metric: Metric + mean: Mean + min: Min + max: Max + unit: Unit + tips: Tips + metric: + L1I-L2 Bandwidth: + mean: AVG(((SQC_TC_INST_REQ * 64) / $denom)) + min: MIN(((SQC_TC_INST_REQ * 64) / $denom)) + max: MAX(((SQC_TC_INST_REQ * 64) / $denom)) + unit: (Bytes + $normUnit) + tips: diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx942/1400_constant-cache.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx942/1400_constant-cache.yaml index 8e49b66757..312a760834 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx942/1400_constant-cache.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx942/1400_constant-cache.yaml @@ -12,18 +12,25 @@ Panel Config: id: 1401 title: Speed-of-Light header: - mertic: Metric - value: Value + metric: Metric + value: Avg + unit: Unit tips: Tips metric: Bandwidth: value: AVG(((SQC_DCACHE_REQ * 100000) / (($sclk * $numSQC) * (End_Timestamp - Start_Timestamp)))) + unit: Pct of Peak tips: - Cache Hit: - value: - AVG((((SQC_DCACHE_HITS * 100) / (SQC_DCACHE_HITS + SQC_DCACHE_MISSES + SQC_DCACHE_MISSES_DUPLICATE)) + Cache Hit Rate: + value: AVG((((SQC_DCACHE_HITS * 100) / (SQC_DCACHE_HITS + SQC_DCACHE_MISSES + SQC_DCACHE_MISSES_DUPLICATE)) if ((SQC_DCACHE_HITS + SQC_DCACHE_MISSES + SQC_DCACHE_MISSES_DUPLICATE) != 0) else None)) + unit: Pct of Peak + tips: + sL1D-L2 BW: + value: AVG(((SQC_TC_DATA_READ_REQ + SQC_TC_DATA_WRITE_REQ + SQC_TC_DATA_ATOMIC_REQ) * 100000) + / (2 * ($sclk * $numSQC) * (End_Timestamp - Start_Timestamp))) + unit: Pct of Peak tips: comparable: false # for now cli_style: simple_bar @@ -63,30 +70,24 @@ Panel Config: max: MAX((SQC_DCACHE_MISSES_DUPLICATE / $denom)) unit: (Req + $normUnit) tips: - Cache Hit: - avg: - AVG((((100 * SQC_DCACHE_HITS) / ((SQC_DCACHE_HITS + SQC_DCACHE_MISSES) + Cache Hit Rate: + avg: AVG((((100 * SQC_DCACHE_HITS) / ((SQC_DCACHE_HITS + SQC_DCACHE_MISSES) + SQC_DCACHE_MISSES_DUPLICATE)) if (((SQC_DCACHE_HITS + SQC_DCACHE_MISSES) + SQC_DCACHE_MISSES_DUPLICATE) != 0) else None)) - min: - MIN((((100 * SQC_DCACHE_HITS) / ((SQC_DCACHE_HITS + SQC_DCACHE_MISSES) + min: MIN((((100 * SQC_DCACHE_HITS) / ((SQC_DCACHE_HITS + SQC_DCACHE_MISSES) + SQC_DCACHE_MISSES_DUPLICATE)) if (((SQC_DCACHE_HITS + SQC_DCACHE_MISSES) + SQC_DCACHE_MISSES_DUPLICATE) != 0) else None)) - max: - MAX((((100 * SQC_DCACHE_HITS) / ((SQC_DCACHE_HITS + SQC_DCACHE_MISSES) + max: MAX((((100 * SQC_DCACHE_HITS) / ((SQC_DCACHE_HITS + SQC_DCACHE_MISSES) + SQC_DCACHE_MISSES_DUPLICATE)) if (((SQC_DCACHE_HITS + SQC_DCACHE_MISSES) + SQC_DCACHE_MISSES_DUPLICATE) != 0) else None)) unit: pct tips: Read Req (Total): - avg: - AVG((((((SQC_DCACHE_REQ_READ_1 + SQC_DCACHE_REQ_READ_2) + SQC_DCACHE_REQ_READ_4) + avg: AVG((((((SQC_DCACHE_REQ_READ_1 + SQC_DCACHE_REQ_READ_2) + SQC_DCACHE_REQ_READ_4) + SQC_DCACHE_REQ_READ_8) + SQC_DCACHE_REQ_READ_16) / $denom)) - min: - MIN((((((SQC_DCACHE_REQ_READ_1 + SQC_DCACHE_REQ_READ_2) + SQC_DCACHE_REQ_READ_4) + min: MIN((((((SQC_DCACHE_REQ_READ_1 + SQC_DCACHE_REQ_READ_2) + SQC_DCACHE_REQ_READ_4) + SQC_DCACHE_REQ_READ_8) + SQC_DCACHE_REQ_READ_16) / $denom)) - max: - MAX((((((SQC_DCACHE_REQ_READ_1 + SQC_DCACHE_REQ_READ_2) + SQC_DCACHE_REQ_READ_4) + max: MAX((((((SQC_DCACHE_REQ_READ_1 + SQC_DCACHE_REQ_READ_2) + SQC_DCACHE_REQ_READ_4) + SQC_DCACHE_REQ_READ_8) + SQC_DCACHE_REQ_READ_16) / $denom)) unit: (Req + $normUnit) tips: @@ -138,6 +139,12 @@ Panel Config: unit: Unit tips: Tips metric: + sL1D-L2 BW: + avg: AVG(((((SQC_TC_DATA_READ_REQ + SQC_TC_DATA_WRITE_REQ + SQC_TC_DATA_ATOMIC_REQ) * 64)) / $denom)) + min: MIN(((((SQC_TC_DATA_READ_REQ + SQC_TC_DATA_WRITE_REQ + SQC_TC_DATA_ATOMIC_REQ) * 64)) / $denom)) + max: MAX(((((SQC_TC_DATA_READ_REQ + SQC_TC_DATA_WRITE_REQ + SQC_TC_DATA_ATOMIC_REQ) * 64)) / $denom)) + unit: (Bytes + $normUnit) + tips: Read Req: avg: AVG((SQC_TC_DATA_READ_REQ / $denom)) min: MIN((SQC_TC_DATA_READ_REQ / $denom)) @@ -156,7 +163,7 @@ Panel Config: max: MAX((SQC_TC_DATA_ATOMIC_REQ / $denom)) unit: (Req + $normUnit) tips: - Stall: + Stall Cycles: avg: AVG((SQC_TC_STALL / $denom)) min: MIN((SQC_TC_STALL / $denom)) max: MAX((SQC_TC_STALL / $denom)) diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx942/1500_TA_and_TD.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx942/1500_TA_and_TD.yaml index 03af854976..08993f38c9 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx942/1500_TA_and_TD.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx942/1500_TA_and_TD.yaml @@ -6,11 +6,11 @@ Metric Description: # Define the panel properties and properties of each metric in the panel. Panel Config: id: 1500 - title: Texture Addresser and Texture Data (TA/TD) + title: Address Processing Unit and Data Return Path (TA/TD) data source: - metric_table: id: 1501 - title: TA + title: Address Processing Unit header: metric: Metric avg: Avg @@ -19,25 +19,25 @@ Panel Config: unit: Unit tips: Tips metric: - TA Busy: + Address Processing Unit Busy: avg: AVG(((100 * TA_TA_BUSY_sum) / (GRBM_GUI_ACTIVE * $numCU))) min: MIN(((100 * TA_TA_BUSY_sum) / (GRBM_GUI_ACTIVE * $numCU))) max: MAX(((100 * TA_TA_BUSY_sum) / (GRBM_GUI_ACTIVE * $numCU))) unit: pct tips: - TC2TA Addr Stall: + Address Stall: avg: AVG(((100 * TA_ADDR_STALLED_BY_TC_CYCLES_sum) / (GRBM_GUI_ACTIVE * $numCU))) min: MIN(((100 * TA_ADDR_STALLED_BY_TC_CYCLES_sum) / (GRBM_GUI_ACTIVE * $numCU))) max: MAX(((100 * TA_ADDR_STALLED_BY_TC_CYCLES_sum) / (GRBM_GUI_ACTIVE * $numCU))) unit: pct tips: - TC2TA Data Stall: + Data Stall: avg: AVG(((100 * TA_DATA_STALLED_BY_TC_CYCLES_sum) / (GRBM_GUI_ACTIVE * $numCU))) min: MIN(((100 * TA_DATA_STALLED_BY_TC_CYCLES_sum) / (GRBM_GUI_ACTIVE * $numCU))) max: MAX(((100 * TA_DATA_STALLED_BY_TC_CYCLES_sum) / (GRBM_GUI_ACTIVE * $numCU))) unit: pct tips: - TD2TA Addr Stall: + Data-Processor → Address Stall: avg: AVG(((100 * TA_ADDR_STALLED_BY_TD_CYCLES_sum) / (GRBM_GUI_ACTIVE * $numCU))) min: MIN(((100 * TA_ADDR_STALLED_BY_TD_CYCLES_sum) / (GRBM_GUI_ACTIVE * $numCU))) max: MAX(((100 * TA_ADDR_STALLED_BY_TD_CYCLES_sum) / (GRBM_GUI_ACTIVE * $numCU))) @@ -47,69 +47,69 @@ Panel Config: avg: AVG((TA_TOTAL_WAVEFRONTS_sum / $denom)) min: MIN((TA_TOTAL_WAVEFRONTS_sum / $denom)) max: MAX((TA_TOTAL_WAVEFRONTS_sum / $denom)) - unit: (Instr + $normUnit) + unit: (Instructions + $normUnit) tips: - Flat Instr: + Global/Generic Instructions: avg: AVG((TA_FLAT_WAVEFRONTS_sum / $denom)) min: MIN((TA_FLAT_WAVEFRONTS_sum / $denom)) max: MAX((TA_FLAT_WAVEFRONTS_sum / $denom)) - unit: (Instr + $normUnit) + unit: (Instructions + $normUnit) tips: - Flat Read Instr: + Global/Generic Read Instructions: avg: AVG((TA_FLAT_READ_WAVEFRONTS_sum / $denom)) min: MIN((TA_FLAT_READ_WAVEFRONTS_sum / $denom)) max: MAX((TA_FLAT_READ_WAVEFRONTS_sum / $denom)) - unit: (Instr + $normUnit) + unit: (Instructions + $normUnit) tips: - Flat Write Instr: + Global/Generic Write Instructions: avg: AVG((TA_FLAT_WRITE_WAVEFRONTS_sum / $denom)) min: MIN((TA_FLAT_WRITE_WAVEFRONTS_sum / $denom)) max: MAX((TA_FLAT_WRITE_WAVEFRONTS_sum / $denom)) - unit: (Instr + $normUnit) + unit: (Instructions + $normUnit) tips: - Flat Atomic Instr: + Global/Generic Atomic Instructions: avg: AVG((TA_FLAT_ATOMIC_WAVEFRONTS_sum / $denom)) min: MIN((TA_FLAT_ATOMIC_WAVEFRONTS_sum / $denom)) max: MAX((TA_FLAT_ATOMIC_WAVEFRONTS_sum / $denom)) - unit: (Instr + $normUnit) + unit: (Instructions + $normUnit) tips: - Buffer Instr: + Spill/Stack Instructions: avg: AVG((TA_BUFFER_WAVEFRONTS_sum / $denom)) min: MIN((TA_BUFFER_WAVEFRONTS_sum / $denom)) max: MAX((TA_BUFFER_WAVEFRONTS_sum / $denom)) - unit: (Instr + $normUnit) + unit: (Instructions + $normUnit) tips: - Buffer Read Instr: + Spill/Stack Read Instructions: avg: AVG((TA_BUFFER_READ_WAVEFRONTS_sum / $denom)) min: MIN((TA_BUFFER_READ_WAVEFRONTS_sum / $denom)) max: MAX((TA_BUFFER_READ_WAVEFRONTS_sum / $denom)) - unit: (Instr + $normUnit) + unit: (Instructions + $normUnit) tips: - Buffer Write Instr: + Spill/Stack Write Instructions: avg: AVG((TA_BUFFER_WRITE_WAVEFRONTS_sum / $denom)) min: MIN((TA_BUFFER_WRITE_WAVEFRONTS_sum / $denom)) max: MAX((TA_BUFFER_WRITE_WAVEFRONTS_sum / $denom)) - unit: (Instr + $normUnit) + unit: (Instructions + $normUnit) tips: - Buffer Atomic Instr: + Spill/Stack Atomic Instructions: avg: AVG((TA_BUFFER_ATOMIC_WAVEFRONTS_sum / $denom)) min: MIN((TA_BUFFER_ATOMIC_WAVEFRONTS_sum / $denom)) max: MAX((TA_BUFFER_ATOMIC_WAVEFRONTS_sum / $denom)) - unit: (Instr + $normUnit) + unit: (Instructions + $normUnit) tips: - Buffer Total Cylces: + Spill/Stack Total Cycles: avg: AVG((TA_BUFFER_TOTAL_CYCLES_sum / $denom)) min: MIN((TA_BUFFER_TOTAL_CYCLES_sum / $denom)) max: MAX((TA_BUFFER_TOTAL_CYCLES_sum / $denom)) unit: (Cycles + $normUnit) tips: - Buffer Coalesced Read: + Spill/Stack Coalesced Read: avg: AVG((TA_BUFFER_COALESCED_READ_CYCLES_sum / $denom)) min: MIN((TA_BUFFER_COALESCED_READ_CYCLES_sum / $denom)) max: MAX((TA_BUFFER_COALESCED_READ_CYCLES_sum / $denom)) unit: (Cycles + $normUnit) tips: - Buffer Coalesced Write: + Spill/Stack Coalesced Write: avg: AVG((TA_BUFFER_COALESCED_WRITE_CYCLES_sum / $denom)) min: MIN((TA_BUFFER_COALESCED_WRITE_CYCLES_sum / $denom)) max: MAX((TA_BUFFER_COALESCED_WRITE_CYCLES_sum / $denom)) @@ -118,7 +118,7 @@ Panel Config: - metric_table: id: 1502 - title: TD + title: Data-Return Path header: metric: Metric avg: Avg @@ -127,48 +127,48 @@ Panel Config: unit: Unit tips: Tips metric: - TD Busy: + Data-Return Busy: avg: AVG(((100 * TD_TD_BUSY_sum) / (GRBM_GUI_ACTIVE * $numCU))) min: MIN(((100 * TD_TD_BUSY_sum) / (GRBM_GUI_ACTIVE * $numCU))) max: MAX(((100 * TD_TD_BUSY_sum) / (GRBM_GUI_ACTIVE * $numCU))) unit: pct tips: - TC2TD Stall: + Cache RAM → Data-Return Stall: avg: AVG(((100 * TD_TC_STALL_sum) / (GRBM_GUI_ACTIVE * $numCU))) min: MIN(((100 * TD_TC_STALL_sum) / (GRBM_GUI_ACTIVE * $numCU))) max: MAX(((100 * TD_TC_STALL_sum) / (GRBM_GUI_ACTIVE * $numCU))) unit: pct tips: - SPI2TD Stall: + Workgroup manager → Data-Return Stall: avg: AVG(((100 * TD_SPI_STALL_sum) / (GRBM_GUI_ACTIVE * $numCU))) min: MIN(((100 * TD_SPI_STALL_sum) / (GRBM_GUI_ACTIVE * $numCU))) max: MAX(((100 * TD_SPI_STALL_sum) / (GRBM_GUI_ACTIVE * $numCU))) unit: pct tips: - Coalescable Instr: + Coalescable Instructions: avg: AVG((TD_COALESCABLE_WAVEFRONT_sum / $denom)) min: MIN((TD_COALESCABLE_WAVEFRONT_sum / $denom)) max: MAX((TD_COALESCABLE_WAVEFRONT_sum / $denom)) - unit: (Instr + $normUnit) + unit: (Instructions + $normUnit) tips: - Load Instr: + Read Instructions: avg: AVG((((TD_LOAD_WAVEFRONT_sum - TD_STORE_WAVEFRONT_sum) - TD_ATOMIC_WAVEFRONT_sum) / $denom)) min: MIN((((TD_LOAD_WAVEFRONT_sum - TD_STORE_WAVEFRONT_sum) - TD_ATOMIC_WAVEFRONT_sum) / $denom)) max: MAX((((TD_LOAD_WAVEFRONT_sum - TD_STORE_WAVEFRONT_sum) - TD_ATOMIC_WAVEFRONT_sum) / $denom)) - unit: (Instr + $normUnit) + unit: (Instructions + $normUnit) tips: - Store Instr: + Write Instructions: avg: AVG((TD_STORE_WAVEFRONT_sum / $denom)) min: MIN((TD_STORE_WAVEFRONT_sum / $denom)) max: MAX((TD_STORE_WAVEFRONT_sum / $denom)) - unit: (Instr + $normUnit) + unit: (Instructions + $normUnit) tips: - Atomic Instr: + Atomic Instructions: avg: AVG((TD_ATOMIC_WAVEFRONT_sum / $denom)) min: MIN((TD_ATOMIC_WAVEFRONT_sum / $denom)) max: MAX((TD_ATOMIC_WAVEFRONT_sum / $denom)) - unit: (Instr + $normUnit) - tips: + unit: (Instructions + $normUnit) + tips: \ No newline at end of file diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx942/1600_L1_cache.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx942/1600_L1_cache.yaml index 4fe54909b0..2d1b3a133b 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx942/1600_L1_cache.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx942/1600_L1_cache.yaml @@ -13,31 +13,32 @@ Panel Config: title: Speed-of-Light header: metric: Metric - value: Value + value: Avg + unit: Unit tips: Tips metric: - Buffer Coalescing: - value: - AVG(((((TA_TOTAL_WAVEFRONTS_sum * 64) * 100) / (TCP_TOTAL_ACCESSES_sum - * 4)) if (TCP_TOTAL_ACCESSES_sum != 0) else None)) - tips: - Cache Util: - value: - AVG((((TCP_GATE_EN2_sum * 100) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum - != 0) else None)) - tips: - Cache BW: - value: - ((100 * AVG(((TCP_TOTAL_CACHE_ACCESSES_sum * 64) / (End_Timestamp - Start_Timestamp)))) - / ((($sclk / 1000) * 64) * $numCU)) - tips: - Cache Hit: - value: - AVG(((100 - ((100 * (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + Hit rate: + value: AVG(((100 - ((100 * (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + TCP_TCC_ATOMIC_WITH_RET_REQ_sum) + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum)) / TCP_TOTAL_CACHE_ACCESSES_sum)) if (TCP_TOTAL_CACHE_ACCESSES_sum != 0) else None)) + unit: Pct of Peak tips: + Bandwidth: + value: ((100 * AVG(((TCP_TOTAL_CACHE_ACCESSES_sum * 64) / (End_Timestamp - Start_Timestamp)))) + / ((($sclk / 1000) * 64) * $numCU)) + unit: Pct of Peak + tips: + Utilization: + value: AVG((((TCP_GATE_EN2_sum * 100) / TCP_GATE_EN1_sum) if (TCP_GATE_EN1_sum + != 0) else None)) + unit: Pct of Peak + tips: + Coalescing: + value: AVG(((((TA_TOTAL_WAVEFRONTS_sum * 64) * 100) / (TCP_TOTAL_ACCESSES_sum + * 4)) if (TCP_TOTAL_ACCESSES_sum != 0) else None)) + unit: Pct of Peak + tips: comparable: false # for now cli_style: simple_bar @@ -106,23 +107,35 @@ Panel Config: unit: (Req + $normUnit) tips: Atomic Req: - avg: - AVG(((TCP_TOTAL_ATOMIC_WITH_RET_sum + TCP_TOTAL_ATOMIC_WITHOUT_RET_sum) + avg: AVG(((TCP_TOTAL_ATOMIC_WITH_RET_sum + TCP_TOTAL_ATOMIC_WITHOUT_RET_sum) / $denom)) - min: - MIN(((TCP_TOTAL_ATOMIC_WITH_RET_sum + TCP_TOTAL_ATOMIC_WITHOUT_RET_sum) + min: MIN(((TCP_TOTAL_ATOMIC_WITH_RET_sum + TCP_TOTAL_ATOMIC_WITHOUT_RET_sum) / $denom)) - max: - MAX(((TCP_TOTAL_ATOMIC_WITH_RET_sum + TCP_TOTAL_ATOMIC_WITHOUT_RET_sum) + max: MAX(((TCP_TOTAL_ATOMIC_WITH_RET_sum + TCP_TOTAL_ATOMIC_WITHOUT_RET_sum) / $denom)) unit: (Req + $normUnit) tips: Cache BW: - avg: AVG(((TCP_TOTAL_CACHE_ACCESSES_sum * 64) / (End_Timestamp - Start_Timestamp))) - min: MIN(((TCP_TOTAL_CACHE_ACCESSES_sum * 64) / (End_Timestamp - Start_Timestamp))) - max: MAX(((TCP_TOTAL_CACHE_ACCESSES_sum * 64) / (End_Timestamp - Start_Timestamp))) - unit: GB/s + avg: AVG(((TCP_TOTAL_CACHE_ACCESSES_sum * 64) / $denom)) + min: MIN(((TCP_TOTAL_CACHE_ACCESSES_sum * 64) / $denom)) + max: MAX(((TCP_TOTAL_CACHE_ACCESSES_sum * 64) / $denom)) + unit: (Bytes + $normUnit) tips: + Cache Hit Rate: + avg: AVG(((100 - ((100 * (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + + TCP_TCC_ATOMIC_WITH_RET_REQ_sum) + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum)) / + TCP_TOTAL_CACHE_ACCESSES_sum)) if (TCP_TOTAL_CACHE_ACCESSES_sum != 0) else + None)) + min: MIN(((100 - ((100 * (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + + TCP_TCC_ATOMIC_WITH_RET_REQ_sum) + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum)) / + TCP_TOTAL_CACHE_ACCESSES_sum)) if (TCP_TOTAL_CACHE_ACCESSES_sum != 0) else + None)) + max: MAX(((100 - ((100 * (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + + TCP_TCC_ATOMIC_WITH_RET_REQ_sum) + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum)) / + TCP_TOTAL_CACHE_ACCESSES_sum)) if (TCP_TOTAL_CACHE_ACCESSES_sum != 0) else + None)) + unit: pct + tips: Cache Accesses: avg: AVG((TCP_TOTAL_CACHE_ACCESSES_sum / $denom)) min: MIN((TCP_TOTAL_CACHE_ACCESSES_sum / $denom)) @@ -130,53 +143,29 @@ Panel Config: unit: (Req + $normUnit) tips: Cache Hits: - avg: - AVG(((TCP_TOTAL_CACHE_ACCESSES_sum - (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + avg: AVG(((TCP_TOTAL_CACHE_ACCESSES_sum - (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + TCP_TCC_ATOMIC_WITH_RET_REQ_sum) + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum)) / $denom)) - min: - MIN(((TCP_TOTAL_CACHE_ACCESSES_sum - (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + min: MIN(((TCP_TOTAL_CACHE_ACCESSES_sum - (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + TCP_TCC_ATOMIC_WITH_RET_REQ_sum) + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum)) / $denom)) - max: - MAX(((TCP_TOTAL_CACHE_ACCESSES_sum - (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + max: MAX(((TCP_TOTAL_CACHE_ACCESSES_sum - (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + TCP_TCC_ATOMIC_WITH_RET_REQ_sum) + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum)) / $denom)) unit: (Req + $normUnit) tips: - Cache Hit Rate: - avg: - AVG(((100 - ((100 * (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + - TCP_TCC_ATOMIC_WITH_RET_REQ_sum) + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum)) / - TCP_TOTAL_CACHE_ACCESSES_sum)) if (TCP_TOTAL_CACHE_ACCESSES_sum != 0) else - None)) - min: - MIN(((100 - ((100 * (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + - TCP_TCC_ATOMIC_WITH_RET_REQ_sum) + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum)) / - TCP_TOTAL_CACHE_ACCESSES_sum)) if (TCP_TOTAL_CACHE_ACCESSES_sum != 0) else - None)) - max: - MAX(((100 - ((100 * (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + - TCP_TCC_ATOMIC_WITH_RET_REQ_sum) + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum)) / - TCP_TOTAL_CACHE_ACCESSES_sum)) if (TCP_TOTAL_CACHE_ACCESSES_sum != 0) else - None)) - unit: pct - tips: - Invalidate: + Invalidations: avg: AVG((TCP_TOTAL_WRITEBACK_INVALIDATES_sum / $denom)) min: MIN((TCP_TOTAL_WRITEBACK_INVALIDATES_sum / $denom)) max: MAX((TCP_TOTAL_WRITEBACK_INVALIDATES_sum / $denom)) unit: (Req + $normUnit) tips: L1-L2 BW: - avg: - AVG(((64 * (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + TCP_TCC_ATOMIC_WITH_RET_REQ_sum) + avg: AVG(((64 * (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + TCP_TCC_ATOMIC_WITH_RET_REQ_sum) + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum)) / $denom)) - min: - AVG(((64 * (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + TCP_TCC_ATOMIC_WITH_RET_REQ_sum) + min: MIN(((64 * (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + TCP_TCC_ATOMIC_WITH_RET_REQ_sum) + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum)) / $denom)) - max: - AVG(((64 * (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + TCP_TCC_ATOMIC_WITH_RET_REQ_sum) + max: MAX(((64 * (((TCP_TCC_READ_REQ_sum + TCP_TCC_WRITE_REQ_sum) + TCP_TCC_ATOMIC_WITH_RET_REQ_sum) + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum)) / $denom)) unit: (Bytes + $normUnit) tips: @@ -193,54 +182,30 @@ Panel Config: unit: (Req + $normUnit) tips: L1-L2 Atomic: - avg: - AVG(((TCP_TCC_ATOMIC_WITH_RET_REQ_sum + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum) + avg: AVG(((TCP_TCC_ATOMIC_WITH_RET_REQ_sum + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum) / $denom)) - min: - MIN(((TCP_TCC_ATOMIC_WITH_RET_REQ_sum + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum) + min: MIN(((TCP_TCC_ATOMIC_WITH_RET_REQ_sum + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum) / $denom)) - max: - MAX(((TCP_TCC_ATOMIC_WITH_RET_REQ_sum + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum) + max: MAX(((TCP_TCC_ATOMIC_WITH_RET_REQ_sum + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum) / $denom)) unit: (Req + $normUnit) tips: L1 Access Latency: - avg: - # AVG(((TCP_TCP_LATENCY_sum / TCP_TA_TCP_STATE_READ_sum) if (TCP_TA_TCP_STATE_READ_sum - # != 0) else None)) - min: - # MIN(((TCP_TCP_LATENCY_sum / TCP_TA_TCP_STATE_READ_sum) if (TCP_TA_TCP_STATE_READ_sum - # != 0) else None)) - max: - # MAX(((TCP_TCP_LATENCY_sum / TCP_TA_TCP_STATE_READ_sum) if (TCP_TA_TCP_STATE_READ_sum - # != 0) else None)) + avg: None # Missing perfmon + min: None # Missing perfmon + max: None # Missing perfmon unit: Cycles tips: L1-L2 Read Latency: - avg: - # AVG(((TCP_TCC_READ_REQ_LATENCY_sum / (TCP_TCC_READ_REQ_sum + TCP_TCC_ATOMIC_WITH_RET_REQ_sum)) - # if ((TCP_TCC_READ_REQ_sum + TCP_TCC_ATOMIC_WITH_RET_REQ_sum) != 0) else None)) - min: - # MIN(((TCP_TCC_READ_REQ_LATENCY_sum / (TCP_TCC_READ_REQ_sum + TCP_TCC_ATOMIC_WITH_RET_REQ_sum)) - # if ((TCP_TCC_READ_REQ_sum + TCP_TCC_ATOMIC_WITH_RET_REQ_sum) != 0) else None)) - max: - # MAX(((TCP_TCC_READ_REQ_LATENCY_sum / (TCP_TCC_READ_REQ_sum + TCP_TCC_ATOMIC_WITH_RET_REQ_sum)) - # if ((TCP_TCC_READ_REQ_sum + TCP_TCC_ATOMIC_WITH_RET_REQ_sum) != 0) else None)) + avg: None # Missing perfmon + min: None # Missing perfmon + max: None # Missing perfmon unit: Cycles tips: L1-L2 Write Latency: - avg: - # AVG(((TCP_TCC_WRITE_REQ_LATENCY_sum / (TCP_TCC_WRITE_REQ_sum + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum)) - # if ((TCP_TCC_WRITE_REQ_sum + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum) != 0) else - # None)) - min: - # MIN(((TCP_TCC_WRITE_REQ_LATENCY_sum / (TCP_TCC_WRITE_REQ_sum + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum)) - # if ((TCP_TCC_WRITE_REQ_sum + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum) != 0) else - # None)) - max: - # MAX(((TCP_TCC_WRITE_REQ_LATENCY_sum / (TCP_TCC_WRITE_REQ_sum + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum)) - # if ((TCP_TCC_WRITE_REQ_sum + TCP_TCC_ATOMIC_WITHOUT_RET_REQ_sum) != 0) else - # None)) + avg: None # Missing perfmon + min: None # Missing perfmon + max: None # Missing perfmon unit: Cycles tips: @@ -369,17 +334,14 @@ Panel Config: avg: AVG((TCP_UTCL1_REQUEST_sum / $denom)) min: MIN((TCP_UTCL1_REQUEST_sum / $denom)) max: MAX((TCP_UTCL1_REQUEST_sum / $denom)) - units: ( + $normUnit) + units: (Req + $normUnit) tips: Hit Ratio: - avg: - AVG((((100 * TCP_UTCL1_TRANSLATION_HIT_sum) / TCP_UTCL1_REQUEST_sum) if + avg: AVG((((100 * TCP_UTCL1_TRANSLATION_HIT_sum) / TCP_UTCL1_REQUEST_sum) if (TCP_UTCL1_REQUEST_sum != 0) else None)) - min: - MIN((((100 * TCP_UTCL1_TRANSLATION_HIT_sum) / TCP_UTCL1_REQUEST_sum) if + min: MIN((((100 * TCP_UTCL1_TRANSLATION_HIT_sum) / TCP_UTCL1_REQUEST_sum) if (TCP_UTCL1_REQUEST_sum != 0) else None)) - max: - MAX((((100 * TCP_UTCL1_TRANSLATION_HIT_sum) / TCP_UTCL1_REQUEST_sum) if + max: MAX((((100 * TCP_UTCL1_TRANSLATION_HIT_sum) / TCP_UTCL1_REQUEST_sum) if (TCP_UTCL1_REQUEST_sum != 0) else None)) units: pct tips: @@ -387,17 +349,17 @@ Panel Config: avg: AVG((TCP_UTCL1_TRANSLATION_HIT_sum / $denom)) min: MIN((TCP_UTCL1_TRANSLATION_HIT_sum / $denom)) max: MAX((TCP_UTCL1_TRANSLATION_HIT_sum / $denom)) - units: ( + $normUnit) + units: (Req + $normUnit) tips: - Misses (Translation): + Translation Misses: avg: AVG((TCP_UTCL1_TRANSLATION_MISS_sum / $denom)) min: MIN((TCP_UTCL1_TRANSLATION_MISS_sum / $denom)) max: MAX((TCP_UTCL1_TRANSLATION_MISS_sum / $denom)) - units: ( + $normUnit) + units: (Req + $normUnit) tips: - Misses (Permission): + Permission Misses: avg: AVG((TCP_UTCL1_PERMISSION_MISS_sum / $denom)) min: MIN((TCP_UTCL1_PERMISSION_MISS_sum / $denom)) max: MAX((TCP_UTCL1_PERMISSION_MISS_sum / $denom)) - units: ( + $normUnit) + units: (Req + $normUnit) tips: diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx942/1700_L2_cache.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx942/1700_L2_cache.yaml index 64644851dd..09c7c67d2a 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx942/1700_L2_cache.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx942/1700_L2_cache.yaml @@ -13,29 +13,30 @@ Panel Config: title: Speed-of-Light header: metric: Metric - value: Value + value: Avg unit: Unit tips: Tips metric: - L2 Util: + Utilization: value: AVG(((TCC_BUSY_sum * 100) / (TO_INT($L2Banks) * GRBM_GUI_ACTIVE))) unit: pct tips: - Cache Hit: - value: - AVG((((100 * TCC_HIT_sum) / (TCC_HIT_sum + TCC_MISS_sum)) if ((TCC_HIT_sum + Bandwidth: + value: ((100 * AVG(((TCC_REQ_sum * 128) / (End_Timestamp - Start_Timestamp)))) / ((($sclk / 1000) * 128) * TO_INT($L2Banks))) + unit: pct + tips: + Hit Rate: + value: AVG((((100 * TCC_HIT_sum) / (TCC_HIT_sum + TCC_MISS_sum)) if ((TCC_HIT_sum + TCC_MISS_sum) != 0) else 0)) unit: pct tips: - L2-EA Rd BW: - value: - AVG((((TCC_EA0_RDREQ_32B_sum * 32) + ((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_32B_sum) + L2-Fabric Read BW: + value: AVG((((TCC_EA0_RDREQ_32B_sum * 32) + ((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_32B_sum) * 64)) / (End_Timestamp - Start_Timestamp))) unit: GB/s tips: - L2-EA Wr BW: - value: - AVG((((TCC_EA0_WRREQ_64B_sum * 64) + ((TCC_EA0_WRREQ_sum - TCC_EA0_WRREQ_64B_sum) + L2-Fabric Write and Atomic BW: + value: AVG((((TCC_EA0_WRREQ_64B_sum * 64) + ((TCC_EA0_WRREQ_sum - TCC_EA0_WRREQ_64B_sum) * 32)) / (End_Timestamp - Start_Timestamp))) unit: GB/s tips: @@ -51,19 +52,34 @@ Panel Config: unit: Unit tips: Tips metric: - Read BW: - avg: - AVG((((TCC_EA0_RDREQ_32B_sum * 32) + ((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_32B_sum) + L2-Fabric Read BW: + avg: AVG((((TCC_EA0_RDREQ_32B_sum * 32) + ((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_32B_sum) * 64)) / $denom)) - min: - MIN((((TCC_EA0_RDREQ_32B_sum * 32) + ((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_32B_sum) + min: MIN((((TCC_EA0_RDREQ_32B_sum * 32) + ((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_32B_sum) * 64)) / $denom)) - max: - MAX((((TCC_EA0_RDREQ_32B_sum * 32) + ((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_32B_sum) + max: MAX((((TCC_EA0_RDREQ_32B_sum * 32) + ((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_32B_sum) * 64)) / $denom)) unit: (Bytes + $normUnit) tips: - Write BW: + HBM Read Traffic: + avg: AVG((100 * (TCC_EA0_RDREQ_DRAM_sum / TCC_EA0_RDREQ_sum) if (TCC_EA0_RDREQ_sum != 0) else None)) + min: MIN((100 * (TCC_EA0_RDREQ_DRAM_sum / TCC_EA0_RDREQ_sum) if (TCC_EA0_RDREQ_sum != 0) else None)) + max: MAX((100 * (TCC_EA0_RDREQ_DRAM_sum / TCC_EA0_RDREQ_sum) if (TCC_EA0_RDREQ_sum != 0) else None)) + unit: pct + tips: + Remote Read Traffic: + avg: AVG((100 * ((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_DRAM_sum) / TCC_EA0_RDREQ_sum) if (TCC_EA0_RDREQ_sum != 0) else None)) + min: MIN((100 * ((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_DRAM_sum) / TCC_EA0_RDREQ_sum) if (TCC_EA0_RDREQ_sum != 0) else None)) + max: MAX((100 * ((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_DRAM_sum) / TCC_EA0_RDREQ_sum) if (TCC_EA0_RDREQ_sum != 0) else None)) + unit: pct + tips: + Uncached Read Traffic: + avg: AVG((100 * (TCC_EA0_RD_UNCACHED_32B_sum / TCC_EA0_RDREQ_sum) if (TCC_EA0_RDREQ_sum != 0) else None)) + min: MIN((100 * (TCC_EA0_RD_UNCACHED_32B_sum / TCC_EA0_RDREQ_sum) if (TCC_EA0_RDREQ_sum != 0) else None)) + max: MAX((100 * (TCC_EA0_RD_UNCACHED_32B_sum / TCC_EA0_RDREQ_sum) if (TCC_EA0_RDREQ_sum != 0) else None)) + unit: pct + tips: + L2-Fabric Write and Atomic BW: avg: AVG((((TCC_EA0_WRREQ_64B_sum * 64) + ((TCC_EA0_WRREQ_sum - TCC_EA0_WRREQ_64B_sum) * 32)) / $denom)) @@ -75,118 +91,67 @@ Panel Config: * 32)) / $denom)) unit: (Bytes + $normUnit) tips: - Read (32B): - avg: AVG((TCC_EA0_RDREQ_32B_sum / $denom)) - min: MIN((TCC_EA0_RDREQ_32B_sum / $denom)) - max: MAX((TCC_EA0_RDREQ_32B_sum / $denom)) - unit: (Req + $normUnit) + HBM Write and Atomic Traffic: + avg: AVG((100 * (TCC_EA0_WRREQ_DRAM_sum / TCC_EA0_WRREQ_sum) if (TCC_EA0_WRREQ_sum != 0) else None)) + min: MIN((100 * (TCC_EA0_WRREQ_DRAM_sum / TCC_EA0_WRREQ_sum) if (TCC_EA0_WRREQ_sum != 0) else None)) + max: MAX((100 * (TCC_EA0_WRREQ_DRAM_sum / TCC_EA0_WRREQ_sum) if (TCC_EA0_WRREQ_sum != 0) else None)) + unit: pct tips: - Read (Uncached 32B): - avg: AVG((TCC_EA0_RD_UNCACHED_32B_sum / $denom)) - min: MIN((TCC_EA0_RD_UNCACHED_32B_sum / $denom)) - max: MAX((TCC_EA0_RD_UNCACHED_32B_sum / $denom)) - unit: (Req + $normUnit) + Remote Write and Atomic Traffic: + avg: AVG((100 * ((TCC_EA0_WRREQ_sum - TCC_EA0_WRREQ_DRAM_sum) / TCC_EA0_WRREQ_sum) if (TCC_EA0_WRREQ_sum != 0) else None)) + min: MIN((100 * ((TCC_EA0_WRREQ_sum - TCC_EA0_WRREQ_DRAM_sum) / TCC_EA0_WRREQ_sum) if (TCC_EA0_WRREQ_sum != 0) else None)) + max: MAX((100 * ((TCC_EA0_WRREQ_sum - TCC_EA0_WRREQ_DRAM_sum) / TCC_EA0_WRREQ_sum) if (TCC_EA0_WRREQ_sum != 0) else None)) + unit: pct tips: - Read (64B): - avg: AVG(((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_32B_sum) / $denom)) - min: MIN(((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_32B_sum) / $denom)) - max: MAX(((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_32B_sum) / $denom)) - unit: (Req + $normUnit) + Atomic Traffic: + avg: AVG((100 * (TCC_EA0_ATOMIC_sum / TCC_EA0_WRREQ_sum) if (TCC_EA0_WRREQ_sum != 0) else None)) + min: MIN((100 * (TCC_EA0_ATOMIC_sum / TCC_EA0_WRREQ_sum) if (TCC_EA0_WRREQ_sum != 0) else None)) + max: MAX((100 * (TCC_EA0_ATOMIC_sum / TCC_EA0_WRREQ_sum) if (TCC_EA0_WRREQ_sum != 0) else None)) + unit: pct tips: - HBM Read: - avg: AVG((TCC_EA0_RDREQ_DRAM_sum / $denom)) - min: MIN((TCC_EA0_RDREQ_DRAM_sum / $denom)) - max: MAX((TCC_EA0_RDREQ_DRAM_sum / $denom)) - unit: (Req + $normUnit) - tips: - Write (32B): - avg: AVG(((TCC_EA0_WRREQ_sum - TCC_EA0_WRREQ_64B_sum) / $denom)) - min: MIN(((TCC_EA0_WRREQ_sum - TCC_EA0_WRREQ_64B_sum) / $denom)) - max: MAX(((TCC_EA0_WRREQ_sum - TCC_EA0_WRREQ_64B_sum) / $denom)) - unit: (Req + $normUnit) - tips: - Write (Uncached 32B): - avg: AVG((TCC_EA0_WR_UNCACHED_32B_sum / $denom)) - min: MIN((TCC_EA0_WR_UNCACHED_32B_sum / $denom)) - max: MAX((TCC_EA0_WR_UNCACHED_32B_sum / $denom)) - unit: (Req + $normUnit) - tips: - Write (64B): - avg: AVG((TCC_EA0_WRREQ_64B_sum / $denom)) - min: MIN((TCC_EA0_WRREQ_64B_sum / $denom)) - max: MAX((TCC_EA0_WRREQ_64B_sum / $denom)) - unit: (Req + $normUnit) - tips: - HBM Write: - avg: AVG((TCC_EA0_WRREQ_DRAM_sum / $denom)) - min: MIN((TCC_EA0_WRREQ_DRAM_sum / $denom)) - max: MAX((TCC_EA0_WRREQ_DRAM_sum / $denom)) - unit: (Req + $normUnit) + Uncached Write and Atomic Traffic: + avg: AVG((100 * (TCC_EA0_WR_UNCACHED_32B_sum / TCC_EA0_WRREQ_sum) if (TCC_EA0_WRREQ_sum != 0) else None)) + min: MIN((100 * (TCC_EA0_WR_UNCACHED_32B_sum / TCC_EA0_WRREQ_sum) if (TCC_EA0_WRREQ_sum != 0) else None)) + max: MAX((100 * (TCC_EA0_WR_UNCACHED_32B_sum / TCC_EA0_WRREQ_sum) if (TCC_EA0_WRREQ_sum != 0) else None)) + unit: pct tips: Read Latency: - avg: - AVG(((TCC_EA0_RDREQ_LEVEL_sum / TCC_EA0_RDREQ_sum) if (TCC_EA0_RDREQ_sum != + avg: AVG(((TCC_EA0_RDREQ_LEVEL_sum / TCC_EA0_RDREQ_sum) if (TCC_EA0_RDREQ_sum != 0) else None)) - min: - MIN(((TCC_EA0_RDREQ_LEVEL_sum / TCC_EA0_RDREQ_sum) if (TCC_EA0_RDREQ_sum != + min: MIN(((TCC_EA0_RDREQ_LEVEL_sum / TCC_EA0_RDREQ_sum) if (TCC_EA0_RDREQ_sum != 0) else None)) - max: - MAX(((TCC_EA0_RDREQ_LEVEL_sum / TCC_EA0_RDREQ_sum) if (TCC_EA0_RDREQ_sum != + max: MAX(((TCC_EA0_RDREQ_LEVEL_sum / TCC_EA0_RDREQ_sum) if (TCC_EA0_RDREQ_sum != 0) else None)) unit: Cycles tips: Write Latency: - avg: - AVG(((TCC_EA0_WRREQ_LEVEL_sum / TCC_EA0_WRREQ_sum) if (TCC_EA0_WRREQ_sum != + avg: AVG(((TCC_EA0_WRREQ_LEVEL_sum / TCC_EA0_WRREQ_sum) if (TCC_EA0_WRREQ_sum != 0) else None)) - min: - MIN(((TCC_EA0_WRREQ_LEVEL_sum / TCC_EA0_WRREQ_sum) if (TCC_EA0_WRREQ_sum != + min: MIN(((TCC_EA0_WRREQ_LEVEL_sum / TCC_EA0_WRREQ_sum) if (TCC_EA0_WRREQ_sum != 0) else None)) - max: - MAX(((TCC_EA0_WRREQ_LEVEL_sum / TCC_EA0_WRREQ_sum) if (TCC_EA0_WRREQ_sum != + max: MAX(((TCC_EA0_WRREQ_LEVEL_sum / TCC_EA0_WRREQ_sum) if (TCC_EA0_WRREQ_sum != 0) else None)) unit: Cycles tips: Atomic Latency: - avg: - AVG(((TCC_EA0_ATOMIC_LEVEL_sum / TCC_EA0_ATOMIC_sum) if (TCC_EA0_ATOMIC_sum + avg: AVG(((TCC_EA0_ATOMIC_LEVEL_sum / TCC_EA0_ATOMIC_sum) if (TCC_EA0_ATOMIC_sum != 0) else None)) - min: - MIN(((TCC_EA0_ATOMIC_LEVEL_sum / TCC_EA0_ATOMIC_sum) if (TCC_EA0_ATOMIC_sum + min: MIN(((TCC_EA0_ATOMIC_LEVEL_sum / TCC_EA0_ATOMIC_sum) if (TCC_EA0_ATOMIC_sum != 0) else None)) - max: - MAX(((TCC_EA0_ATOMIC_LEVEL_sum / TCC_EA0_ATOMIC_sum) if (TCC_EA0_ATOMIC_sum + max: MAX(((TCC_EA0_ATOMIC_LEVEL_sum / TCC_EA0_ATOMIC_sum) if (TCC_EA0_ATOMIC_sum != 0) else None)) unit: Cycles tips: Read Stall: - avg: - # AVG((((100 * ((TCC_EA0_RDREQ_IO_CREDIT_STALL_sum + TCC_EA0_RDREQ_GMI_CREDIT_STALL_sum) - # + TCC_EA0_RDREQ_DRAM_CREDIT_STALL_sum)) / TCC_BUSY_sum) if (TCC_BUSY_sum != - # 0) else None)) - min: - # MIN((((100 * ((TCC_EA0_RDREQ_IO_CREDIT_STALL_sum + TCC_EA0_RDREQ_GMI_CREDIT_STALL_sum) - # + TCC_EA0_RDREQ_DRAM_CREDIT_STALL_sum)) / TCC_BUSY_sum) if (TCC_BUSY_sum != - # 0) else None)) - max: - # MAX((((100 * ((TCC_EA0_RDREQ_IO_CREDIT_STALL_sum + TCC_EA0_RDREQ_GMI_CREDIT_STALL_sum) - # + TCC_EA0_RDREQ_DRAM_CREDIT_STALL_sum)) / TCC_BUSY_sum) if (TCC_BUSY_sum != - # 0) else None)) + avg: None # Missing perfmon + min: None # Missing perfmon + max: None # Missing perfmon unit: pct tips: Write Stall: - avg: - # AVG((((100 * ((TCC_EA0_WRREQ_IO_CREDIT_STALL_sum + TCC_EA0_WRREQ_GMI_CREDIT_STALL_sum) - # + TCC_EA0_WRREQ_DRAM_CREDIT_STALL_sum)) / TCC_BUSY_sum) if (TCC_BUSY_sum != - # 0) else None)) - min: - # MIN((((100 * ((TCC_EA0_WRREQ_IO_CREDIT_STALL_sum + TCC_EA0_WRREQ_GMI_CREDIT_STALL_sum) - # + TCC_EA0_WRREQ_DRAM_CREDIT_STALL_sum)) / TCC_BUSY_sum) if (TCC_BUSY_sum != - # 0) else None)) - max: - # MAX((((100 * ((TCC_EA0_WRREQ_IO_CREDIT_STALL_sum + TCC_EA0_WRREQ_GMI_CREDIT_STALL_sum) - # + TCC_EA0_WRREQ_DRAM_CREDIT_STALL_sum)) / TCC_BUSY_sum) if (TCC_BUSY_sum != - # 0) else None)) + avg: None # Missing perfmon + min: None # Missing perfmon + max: None # Missing perfmon unit: pct tips: @@ -201,18 +166,18 @@ Panel Config: unit: Unit tips: Tips metric: + Bandwidth: + avg: AVG((TCC_REQ_sum * 128) / $denom) + min: MIN((TCC_REQ_sum * 128) / $denom) + max: MAX((TCC_REQ_sum * 128) / $denom) + unit: (Bytes + $normUnit) + tips: Req: avg: AVG((TCC_REQ_sum / $denom)) min: MIN((TCC_REQ_sum / $denom)) max: MAX((TCC_REQ_sum / $denom)) unit: (Req + $normUnit) tips: - Streaming Req: - avg: AVG((TCC_STREAMING_REQ_sum / $denom)) - min: MIN((TCC_STREAMING_REQ_sum / $denom)) - max: MAX((TCC_STREAMING_REQ_sum / $denom)) - unit: (Req + $normUnit) - tips: Read Req: avg: AVG((TCC_READ_sum / $denom)) min: MIN((TCC_READ_sum / $denom)) @@ -231,12 +196,27 @@ Panel Config: max: MAX((TCC_ATOMIC_sum / $denom)) unit: (Req + $normUnit) tips: + Streaming Req: + avg: AVG((TCC_STREAMING_REQ_sum / $denom)) + min: MIN((TCC_STREAMING_REQ_sum / $denom)) + max: MAX((TCC_STREAMING_REQ_sum / $denom)) + unit: (Req + $normUnit) + tips: Probe Req: avg: AVG((TCC_PROBE_sum / $denom)) min: MIN((TCC_PROBE_sum / $denom)) max: MAX((TCC_PROBE_sum / $denom)) unit: (Req + $normUnit) tips: + Cache Hit: + avg: AVG((((100 * TCC_HIT_sum) / (TCC_HIT_sum + TCC_MISS_sum)) if ((TCC_HIT_sum + + TCC_MISS_sum) != 0) else None)) + min: MIN((((100 * TCC_HIT_sum) / (TCC_HIT_sum + TCC_MISS_sum)) if ((TCC_HIT_sum + + TCC_MISS_sum) != 0) else None)) + max: MAX((((100 * TCC_HIT_sum) / (TCC_HIT_sum + TCC_MISS_sum)) if ((TCC_HIT_sum + + TCC_MISS_sum) != 0) else None)) + unit: pct + tips: Hits: avg: AVG((TCC_HIT_sum / $denom)) min: MIN((TCC_HIT_sum / $denom)) @@ -249,23 +229,35 @@ Panel Config: max: MAX((TCC_MISS_sum / $denom)) unit: (Misses + $normUnit) tips: - Cache Hit: - avg: - AVG((((100 * TCC_HIT_sum) / (TCC_HIT_sum + TCC_MISS_sum)) if ((TCC_HIT_sum - + TCC_MISS_sum) != 0) else None)) - min: - MIN((((100 * TCC_HIT_sum) / (TCC_HIT_sum + TCC_MISS_sum)) if ((TCC_HIT_sum - + TCC_MISS_sum) != 0) else None)) - max: - MAX((((100 * TCC_HIT_sum) / (TCC_HIT_sum + TCC_MISS_sum)) if ((TCC_HIT_sum - + TCC_MISS_sum) != 0) else None)) - unit: pct - tips: Writeback: avg: AVG((TCC_WRITEBACK_sum / $denom)) min: MIN((TCC_WRITEBACK_sum / $denom)) max: MAX((TCC_WRITEBACK_sum / $denom)) - unit: ( + $normUnit) + unit: (Cachelines + $normUnit) + tips: + Writeback (Internal): + avg: AVG((TCC_NORMAL_WRITEBACK_sum / $denom)) + min: MIN((TCC_NORMAL_WRITEBACK_sum / $denom)) + max: MAX((TCC_NORMAL_WRITEBACK_sum / $denom)) + unit: (Cachelines + $normUnit) + tips: + Writeback (vL1D Req): + avg: AVG((TCC_ALL_TC_OP_WB_WRITEBACK_sum / $denom)) + min: MIN((TCC_ALL_TC_OP_WB_WRITEBACK_sum / $denom)) + max: MAX((TCC_ALL_TC_OP_WB_WRITEBACK_sum / $denom)) + unit: (Cachelines + $normUnit) + tips: + Evict (Internal): + avg: AVG((TCC_NORMAL_EVICT_sum / $denom)) + min: MIN((TCC_NORMAL_EVICT_sum / $denom)) + max: MAX((TCC_NORMAL_EVICT_sum / $denom)) + unit: (Cachelines + $normUnit) + tips: + Evict (vL1D Req): + avg: AVG((TCC_ALL_TC_OP_INV_EVICT_sum / $denom)) + min: MIN((TCC_ALL_TC_OP_INV_EVICT_sum / $denom)) + max: MAX((TCC_ALL_TC_OP_INV_EVICT_sum / $denom)) + unit: (Cachelines + $normUnit) tips: NC Req: avg: AVG((TCC_NC_REQ_sum / $denom)) @@ -291,30 +283,6 @@ Panel Config: max: MAX((TCC_RW_REQ_sum / $denom)) unit: (Req + $normUnit) tips: - Writeback (Normal): - avg: AVG((TCC_NORMAL_WRITEBACK_sum / $denom)) - min: MIN((TCC_NORMAL_WRITEBACK_sum / $denom)) - max: MAX((TCC_NORMAL_WRITEBACK_sum / $denom)) - unit: ( + $normUnit) - tips: - Writeback (TC Req): - avg: AVG((TCC_ALL_TC_OP_WB_WRITEBACK_sum / $denom)) - min: MIN((TCC_ALL_TC_OP_WB_WRITEBACK_sum / $denom)) - max: MAX((TCC_ALL_TC_OP_WB_WRITEBACK_sum / $denom)) - unit: ( + $normUnit) - tips: - Evict (Normal): - avg: AVG((TCC_NORMAL_EVICT_sum / $denom)) - min: MIN((TCC_NORMAL_EVICT_sum / $denom)) - max: MAX((TCC_NORMAL_EVICT_sum / $denom)) - unit: ( + $normUnit) - tips: - Evict (TC Req): - avg: AVG((TCC_ALL_TC_OP_INV_EVICT_sum / $denom)) - min: MIN((TCC_ALL_TC_OP_INV_EVICT_sum / $denom)) - max: MAX((TCC_ALL_TC_OP_INV_EVICT_sum / $denom)) - unit: ( + $normUnit) - tips: - metric_table: id: 1704 @@ -328,60 +296,140 @@ Panel Config: max: Max unit: Unit tips: Tips + style: + type: simple_multi_bar metric: - Read - Remote Socket Stall: - type: Remote Socket Stall + Read - PCIe Stall: + type: PCIe Stall transaction: Read - avg: # AVG((TCC_EA0_RDREQ_IO_CREDIT_STALL_sum / $denom)) - min: # MIN((TCC_EA0_RDREQ_IO_CREDIT_STALL_sum / $denom)) - max: # MAX((TCC_EA0_RDREQ_IO_CREDIT_STALL_sum / $denom)) - unit: (Req + $normUnit) + avg: None # Missing perfmon + min: None # Missing perfmon + max: None # Missing perfmon + unit: pct tips: - Read - Peer GCD Stall: - type: Peer GCD Stall + Read - Infinity Fabric™ Stall: + type: Infinity Fabric™ Stall transaction: Read - avg: # AVG((TCC_EA0_RDREQ_GMI_CREDIT_STALL_sum / $denom)) - min: # MIN((TCC_EA0_RDREQ_GMI_CREDIT_STALL_sum / $denom)) - max: # MAX((TCC_EA0_RDREQ_GMI_CREDIT_STALL_sum / $denom)) - unit: (Req + $normUnit) + avg: None # Missing perfmon + min: None # Missing perfmon + max: None # Missing perfmon + unit: pct tips: Read - HBM Stall: type: HBM Stall transaction: Read - avg: # AVG((TCC_EA0_RDREQ_DRAM_CREDIT_STALL_sum / $denom)) - min: # MIN((TCC_EA0_RDREQ_DRAM_CREDIT_STALL_sum / $denom)) - max: # MAX((TCC_EA0_RDREQ_DRAM_CREDIT_STALL_sum / $denom)) - unit: (Req + $normUnit) + avg: None # Missing perfmon + min: None # Missing perfmon + max: None # Missing perfmon + unit: pct tips: - Write - Remote Socket Stall: - type: Remote Socket Stall + Write - PCIe Stall: + type: PCIe Stall transaction: Write - avg: # AVG((TCC_EA0_WRREQ_IO_CREDIT_STALL_sum / $denom)) - min: # MIN((TCC_EA0_WRREQ_IO_CREDIT_STALL_sum / $denom)) - max: # MAX((TCC_EA0_WRREQ_IO_CREDIT_STALL_sum / $denom)) - unit: (Req + $normUnit) + avg: None # Missing perfmon + min: None # Missing perfmon + max: None # Missing perfmon + unit: pct tips: - Write - Peer GCD Stall: - type: Peer GCD Stall + Write - Infinity Fabric™ Stall: + type: Infinity Fabric™ Stall transaction: Write - avg: # AVG((TCC_EA0_WRREQ_GMI_CREDIT_STALL_sum / $denom)) - min: # MIN((TCC_EA0_WRREQ_GMI_CREDIT_STALL_sum / $denom)) - max: # MAX((TCC_EA0_WRREQ_GMI_CREDIT_STALL_sum / $denom)) - unit: (Req + $normUnit) + avg: None # Missing perfmon + min: None # Missing perfmon + max: None # Missing perfmon + unit: pct tips: Write - HBM Stall: type: HBM Stall transaction: Write - avg: # AVG((TCC_EA0_WRREQ_DRAM_CREDIT_STALL_sum / $denom)) - min: # MIN((TCC_EA0_WRREQ_DRAM_CREDIT_STALL_sum / $denom)) - max: # MAX((TCC_EA0_WRREQ_DRAM_CREDIT_STALL_sum / $denom)) - unit: (Req + $normUnit) + avg: None # Missing perfmon + min: None # Missing perfmon + max: None # Missing perfmon + unit: pct tips: Write - Credit Starvation: type: Credit Starvation transaction: Write - avg: AVG((TCC_TOO_MANY_EA_WRREQS_STALL_sum / $denom)) - min: MIN((TCC_TOO_MANY_EA_WRREQS_STALL_sum / $denom)) - max: MAX((TCC_TOO_MANY_EA_WRREQS_STALL_sum / $denom)) + avg: AVG(((100 * (TCC_TOO_MANY_EA_WRREQS_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) + min: MIN(((100 * (TCC_TOO_MANY_EA_WRREQS_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) + max: MAX(((100 * (TCC_TOO_MANY_EA_WRREQS_STALL_sum / TCC_BUSY_sum)) if (TCC_BUSY_sum != 0) else None)) + unit: pct + tips: + + - metric_table: + id: 1705 + title: L2 - Fabric Detailed Transaction Breakdown + header: + metric: Metric + avg: Avg + min: Min + max: Max + unit: Unit + tips: Tips + metric: + Read (32B): + avg: AVG((TCC_EA0_RDREQ_32B_sum / $denom)) + min: MIN((TCC_EA0_RDREQ_32B_sum / $denom)) + max: MAX((TCC_EA0_RDREQ_32B_sum / $denom)) + unit: (Req + $normUnit) + tips: + Read (Uncached): + avg: AVG((TCC_EA0_RD_UNCACHED_32B_sum / $denom)) + min: MIN((TCC_EA0_RD_UNCACHED_32B_sum / $denom)) + max: MAX((TCC_EA0_RD_UNCACHED_32B_sum / $denom)) + unit: (Req + $normUnit) + tips: + Read (64B): + avg: AVG(((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_32B_sum) / $denom)) + min: MIN(((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_32B_sum) / $denom)) + max: MAX(((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_32B_sum) / $denom)) + unit: (Req + $normUnit) + tips: + HBM Read: + avg: AVG((TCC_EA0_RDREQ_DRAM_sum / $denom)) + min: MIN((TCC_EA0_RDREQ_DRAM_sum / $denom)) + max: MAX((TCC_EA0_RDREQ_DRAM_sum / $denom)) + unit: (Req + $normUnit) + tips: + Remote Read: + avg: AVG((MAX((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_DRAM_sum), 0) / $denom)) + min: MIN((MAX((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_DRAM_sum), 0) / $denom)) + max: MAX((MAX((TCC_EA0_RDREQ_sum - TCC_EA0_RDREQ_DRAM_sum), 0) / $denom)) + unit: (Req + $normUnit) + tips: + Write and Atomic (32B): + avg: AVG(((TCC_EA0_WRREQ_sum - TCC_EA0_WRREQ_64B_sum) / $denom)) + min: MIN(((TCC_EA0_WRREQ_sum - TCC_EA0_WRREQ_64B_sum) / $denom)) + max: MAX(((TCC_EA0_WRREQ_sum - TCC_EA0_WRREQ_64B_sum) / $denom)) + unit: (Req + $normUnit) + tips: + Write and Atomic (Uncached): + avg: AVG((TCC_EA0_WR_UNCACHED_32B_sum / $denom)) + min: MIN((TCC_EA0_WR_UNCACHED_32B_sum / $denom)) + max: MAX((TCC_EA0_WR_UNCACHED_32B_sum / $denom)) + unit: (Req + $normUnit) + tips: + Write and Atomic (64B): + avg: AVG((TCC_EA0_WRREQ_64B_sum / $denom)) + min: MIN((TCC_EA0_WRREQ_64B_sum / $denom)) + max: MAX((TCC_EA0_WRREQ_64B_sum / $denom)) + unit: (Req + $normUnit) + tips: + HBM Write and Atomic: + avg: AVG((TCC_EA0_WRREQ_DRAM_sum / $denom)) + min: MIN((TCC_EA0_WRREQ_DRAM_sum / $denom)) + max: MAX((TCC_EA0_WRREQ_DRAM_sum / $denom)) + unit: (Req + $normUnit) + tips: + Remote Write and Atomic: + avg: AVG((MAX((TCC_EA0_WRREQ_sum - TCC_EA0_WRREQ_DRAM_sum), 0) / $denom)) + min: MIN((MAX((TCC_EA0_WRREQ_sum - TCC_EA0_WRREQ_DRAM_sum), 0) / $denom)) + max: MAX((MAX((TCC_EA0_WRREQ_sum - TCC_EA0_WRREQ_DRAM_sum), 0) / $denom)) + unit: (Req + $normUnit) + tips: + Atomic: + avg: AVG((TCC_EA0_ATOMIC_sum / $denom)) + min: MIN((TCC_EA0_ATOMIC_sum / $denom)) + max: MAX((TCC_EA0_ATOMIC_sum / $denom)) unit: (Req + $normUnit) tips: diff --git a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx942/1800_L2_cache_per_channel.yaml b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx942/1800_L2_cache_per_channel.yaml index 9a0e038745..d4ba9ac285 100644 --- a/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx942/1800_L2_cache_per_channel.yaml +++ b/projects/rocprofiler-compute/src/omniperf_soc/analysis_configs/gfx942/1800_L2_cache_per_channel.yaml @@ -244,9 +244,9 @@ Panel Config: ea read stall - dram: L2-EA Read Stall - DRAM metric: "::_1": - ea read stall - io: AVG((TO_INT(TCC_EA0_RDREQ_IO_CREDIT_STALL[::_1]) / $denom)) - ea read stall - gmi: AVG((TO_INT(TCC_EA0_RDREQ_GMI_CREDIT_STALL[::_1]) / $denom)) - ea read stall - dram: AVG((TO_INT(TCC_EA0_RDREQ_DRAM_CREDIT_STALL[::_1]) / $denom)) + ea read stall - io: None # Missing perfmon + ea read stall - gmi: None # Missing perfmon + ea read stall - dram: None # Missing perfmon placeholder_range: "::_1": $totalL2Banks cli_style: simple_multiple_bar @@ -262,10 +262,10 @@ Panel Config: ea write stall - starve: L2-EA Write Stall - Starve metric: "::_1": - ea write stall - io: AVG((TO_INT(TCC_EA0_WRREQ_IO_CREDIT_STALL[::_1]) / $denom)) - ea write stall - gmi: AVG((TO_INT(TCC_EA0_WRREQ_GMI_CREDIT_STALL[::_1]) / $denom)) - ea write stall - dram: AVG((TO_INT(TCC_EA0_WRREQ_DRAM_CREDIT_STALL[::_1]) / $denom)) - ea write stall - starve: AVG((TO_INT(TCC_TOO_MANY_EA0_WRREQS_STALL[::_1]) / $denom)) + ea write stall - io: None # Missing perfmon + ea write stall - gmi: None # Missing perfmon + ea write stall - dram: None # Missing perfmon + ea write stall - starve: TCC_TOO_MANY_EA_WRREQS_STALL placeholder_range: "::_1": $totalL2Banks cli_style: simple_multiple_bar