From 2d322d7e336a37f109e833a3cd56f2618e9a741d Mon Sep 17 00:00:00 2001 From: colramos425 Date: Mon, 9 Jan 2023 16:52:27 -0600 Subject: [PATCH] New GUI graphics for L1 and L2 panels Signed-off-by: colramos425 [ROCm/rocprofiler-compute commit: 42edb1c559c8fade9a5d75da273d4b2144cb8877] --- .../configs/gfx906/1600_L1_cache.yaml | 58 +++++++++++++----- .../configs/gfx906/1700_L2_cache.yaml | 16 +++++ .../configs/gfx908/1600_L1_cache.yaml | 52 ++++++++++++---- .../configs/gfx908/1700_L2_cache.yaml | 16 +++++ .../configs/gfx90a/1600_L1_cache.yaml | 52 ++++++++++++---- .../configs/gfx90a/1700_L2_cache.yaml | 16 +++++ .../src/omniperf_analyze/utils/gui.py | 61 ++++++++++++++++++- 7 files changed, 227 insertions(+), 44 deletions(-) diff --git a/projects/rocprofiler-compute/src/omniperf_analyze/configs/gfx906/1600_L1_cache.yaml b/projects/rocprofiler-compute/src/omniperf_analyze/configs/gfx906/1600_L1_cache.yaml index a25e831de3..adcd9f2ad2 100644 --- a/projects/rocprofiler-compute/src/omniperf_analyze/configs/gfx906/1600_L1_cache.yaml +++ b/projects/rocprofiler-compute/src/omniperf_analyze/configs/gfx906/1600_L1_cache.yaml @@ -237,81 +237,107 @@ Panel Config: id: 1604 title: L1D - L2 Transactions header: + metric: Metric xfer: Xfer - mean: Mean + coherency: Coherency + avg: Avg min: Min max: Max unit: Unit tips: Tips metric: NC - Read: - mean: None # No perf counter + xfer: Read + coherency: NC + avg: None # No perf counter min: None # No perf counter max: None # No perf counter unit: (Req + $normUnit) tips: UC - Read: - mean: None # No perf counter + xfer: Read + coherency: UC + avg: None # No perf counter min: None # No perf counter max: None # No perf counter unit: (Req + $normUnit) tips: CC - Read: - mean: None # No perf counter + xfer: Read + coherency: CC + avg: None # No perf counter min: None # No perf counter max: None # No perf counter unit: (Req + $normUnit) tips: RW - Read: - mean: None # No perf counter + xfer: Read + coherency: RW + avg: None # No perf counter min: None # No perf counter max: None # No perf counter unit: (Req + $normUnit) tips: RW - Write: - mean: None # No perf counter + xfer: Write + coherency: RW + avg: None # No perf counter min: None # No perf counter max: None # No perf counter unit: (Req + $normUnit) tips: NC - Write: - mean: AVG((TCP_TCC_NC_WRITE_REQ_sum / $denom)) + xfer: Write + coherency: NC + avg: AVG((TCP_TCC_NC_WRITE_REQ_sum / $denom)) min: MIN((TCP_TCC_NC_WRITE_REQ_sum / $denom)) max: MAX((TCP_TCC_NC_WRITE_REQ_sum / $denom)) unit: (Req + $normUnit) tips: - NC - Write: - mean: AVG((TCP_TCC_NC_WRITE_REQ_sum / $denom)) - min: MIN((TCP_TCC_NC_WRITE_REQ_sum / $denom)) - max: MAX((TCP_TCC_NC_WRITE_REQ_sum / $denom)) + 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: - mean: AVG((TCP_TCC_UC_WRITE_REQ_sum / $denom)) + xfer: Write + coherency: UC + avg: AVG((TCP_TCC_UC_WRITE_REQ_sum / $denom)) min: MIN((TCP_TCC_UC_WRITE_REQ_sum / $denom)) max: MAX((TCP_TCC_UC_WRITE_REQ_sum / $denom)) unit: (Req + $normUnit) tips: NC - Atomic: - mean: None # No perf counter + xfer: Atomic + coherency: NC + avg: None # No perf counter min: None # No perf counter max: None # No perf counter unit: (Req + $normUnit) tips: UC - Atomic: - mean: None # No perf counter + xfer: Atomic + coherency: UC + avg: None # No perf counter min: None # No perf counter max: None # No perf counter unit: (Req + $normUnit) tips: CC - Atomic: - mean: None # No perf counter + xfer: Atomic + coherency: CC + avg: None # No perf counter min: None # No perf counter max: None # No perf counter unit: (Req + $normUnit) tips: RW - Atomic: - mean: None # No perf counter + xfer: Atomic + coherency: RW + avg: None # No perf counter min: None # No perf counter max: None # No perf counter unit: (Req + $normUnit) diff --git a/projects/rocprofiler-compute/src/omniperf_analyze/configs/gfx906/1700_L2_cache.yaml b/projects/rocprofiler-compute/src/omniperf_analyze/configs/gfx906/1700_L2_cache.yaml index 6133fc88f1..53235ca148 100644 --- a/projects/rocprofiler-compute/src/omniperf_analyze/configs/gfx906/1700_L2_cache.yaml +++ b/projects/rocprofiler-compute/src/omniperf_analyze/configs/gfx906/1700_L2_cache.yaml @@ -294,6 +294,8 @@ Panel Config: title: L2 - EA Interface Stalls header: metric: Metric + type: Type + transaction: Transaction avg: Avg min: Min max: Max @@ -301,42 +303,56 @@ Panel Config: tips: Tips metric: Read - Remote Socket Stall: + type: Remote Socket Stall + transaction: Read avg: AVG((TCC_EA_RDREQ_IO_CREDIT_STALL_sum / $denom)) min: MIN((TCC_EA_RDREQ_IO_CREDIT_STALL_sum / $denom)) max: MAX((TCC_EA_RDREQ_IO_CREDIT_STALL_sum / $denom)) unit: (Req + $normUnit) tips: Read - Peer GCD Stall: + type: Peer GCD Stall + transaction: Read avg: AVG((TCC_EA_RDREQ_GMI_CREDIT_STALL_sum / $denom)) min: MIN((TCC_EA_RDREQ_GMI_CREDIT_STALL_sum / $denom)) max: MAX((TCC_EA_RDREQ_GMI_CREDIT_STALL_sum / $denom)) unit: (Req + $normUnit) tips: Read - HBM Stall: + type: HBM Stall + transaction: Read avg: AVG((TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum / $denom)) min: MIN((TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum / $denom)) max: MAX((TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum / $denom)) unit: (Req + $normUnit) tips: Write - Remote Socket Stall: + type: Remote Socket Stall + transaction: Write avg: AVG((TCC_EA_WRREQ_IO_CREDIT_STALL_sum / $denom)) min: MIN((TCC_EA_WRREQ_IO_CREDIT_STALL_sum / $denom)) max: MAX((TCC_EA_WRREQ_IO_CREDIT_STALL_sum / $denom)) unit: (Req + $normUnit) tips: Write - Peer GCD Stall: + type: Peer GCD Stall + transaction: Write avg: AVG((TCC_EA_WRREQ_GMI_CREDIT_STALL_sum / $denom)) min: MIN((TCC_EA_WRREQ_GMI_CREDIT_STALL_sum / $denom)) max: MAX((TCC_EA_WRREQ_GMI_CREDIT_STALL_sum / $denom)) unit: (Req + $normUnit) tips: Write - HBM Stall: + type: HBM Stall + transaction: Write avg: AVG((TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum / $denom)) min: MIN((TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum / $denom)) max: MAX((TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum / $denom)) unit: (Req + $normUnit) 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)) diff --git a/projects/rocprofiler-compute/src/omniperf_analyze/configs/gfx908/1600_L1_cache.yaml b/projects/rocprofiler-compute/src/omniperf_analyze/configs/gfx908/1600_L1_cache.yaml index f609ee86c2..7e58ea2224 100644 --- a/projects/rocprofiler-compute/src/omniperf_analyze/configs/gfx908/1600_L1_cache.yaml +++ b/projects/rocprofiler-compute/src/omniperf_analyze/configs/gfx908/1600_L1_cache.yaml @@ -237,81 +237,107 @@ Panel Config: id: 1604 title: L1D - L2 Transactions header: + metric: Metric xfer: Xfer - mean: Mean + coherency: Coherency + avg: Avg min: Min max: Max unit: Unit tips: Tips metric: NC - Read: - mean: AVG((TCP_TCC_NC_READ_REQ_sum / $denom)) + xfer: Read + coherency: NC + avg: AVG((TCP_TCC_NC_READ_REQ_sum / $denom)) min: MIN((TCP_TCC_NC_READ_REQ_sum / $denom)) max: MAX((TCP_TCC_NC_READ_REQ_sum / $denom)) unit: (Req + $normUnit) tips: UC - Read: - mean: AVG((TCP_TCC_UC_READ_REQ_sum / $denom)) + xfer: Read + coherency: UC + avg: AVG((TCP_TCC_UC_READ_REQ_sum / $denom)) min: MIN((TCP_TCC_UC_READ_REQ_sum / $denom)) max: MAX((TCP_TCC_UC_READ_REQ_sum / $denom)) unit: (Req + $normUnit) tips: CC - Read: - mean: AVG((TCP_TCC_CC_READ_REQ_sum / $denom)) + xfer: Read + coherency: CC + avg: AVG((TCP_TCC_CC_READ_REQ_sum / $denom)) min: MIN((TCP_TCC_CC_READ_REQ_sum / $denom)) max: MAX((TCP_TCC_CC_READ_REQ_sum / $denom)) unit: (Req + $normUnit) tips: RW - Read: - mean: AVG((TCP_TCC_RW_READ_REQ_sum / $denom)) + xfer: Read + coherency: RW + avg: AVG((TCP_TCC_RW_READ_REQ_sum / $denom)) min: MIN((TCP_TCC_RW_READ_REQ_sum / $denom)) max: MAX((TCP_TCC_RW_READ_REQ_sum / $denom)) unit: (Req + $normUnit) tips: RW - Write: - mean: AVG((TCP_TCC_RW_WRITE_REQ_sum / $denom)) + xfer: Write + coherency: RW + avg: AVG((TCP_TCC_RW_WRITE_REQ_sum / $denom)) min: MIN((TCP_TCC_RW_WRITE_REQ_sum / $denom)) max: MAX((TCP_TCC_RW_WRITE_REQ_sum / $denom)) unit: (Req + $normUnit) tips: NC - Write: - mean: AVG((TCP_TCC_NC_WRITE_REQ_sum / $denom)) + xfer: Write + coherency: NC + avg: AVG((TCP_TCC_NC_WRITE_REQ_sum / $denom)) min: MIN((TCP_TCC_NC_WRITE_REQ_sum / $denom)) max: MAX((TCP_TCC_NC_WRITE_REQ_sum / $denom)) unit: (Req + $normUnit) tips: UC - Write: - mean: AVG((TCP_TCC_UC_WRITE_REQ_sum / $denom)) + xfer: Write + coherency: UC + avg: AVG((TCP_TCC_UC_WRITE_REQ_sum / $denom)) min: MIN((TCP_TCC_UC_WRITE_REQ_sum / $denom)) max: MAX((TCP_TCC_UC_WRITE_REQ_sum / $denom)) unit: (Req + $normUnit) tips: CC - Write: - mean: AVG((TCP_TCC_CC_WRITE_REQ_sum / $denom)) + 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: - mean: AVG((TCP_TCC_NC_ATOMIC_REQ_sum / $denom)) + xfer: Atomic + coherency: NC + avg: AVG((TCP_TCC_NC_ATOMIC_REQ_sum / $denom)) min: MIN((TCP_TCC_NC_ATOMIC_REQ_sum / $denom)) max: MAX((TCP_TCC_NC_ATOMIC_REQ_sum / $denom)) unit: (Req + $normUnit) tips: UC - Atomic: - mean: AVG((TCP_TCC_UC_ATOMIC_REQ_sum / $denom)) + xfer: Atomic + coherency: UC + avg: AVG((TCP_TCC_UC_ATOMIC_REQ_sum / $denom)) min: MIN((TCP_TCC_UC_ATOMIC_REQ_sum / $denom)) max: MAX((TCP_TCC_UC_ATOMIC_REQ_sum / $denom)) unit: (Req + $normUnit) tips: CC - Atomic: - mean: AVG((TCP_TCC_CC_ATOMIC_REQ_sum / $denom)) + xfer: Atomic + coherency: CC + avg: AVG((TCP_TCC_CC_ATOMIC_REQ_sum / $denom)) min: MIN((TCP_TCC_CC_ATOMIC_REQ_sum / $denom)) max: MAX((TCP_TCC_CC_ATOMIC_REQ_sum / $denom)) unit: (Req + $normUnit) tips: RW - Atomic: - mean: AVG((TCP_TCC_RW_ATOMIC_REQ_sum / $denom)) + xfer: Atomic + coherency: RW + avg: AVG((TCP_TCC_RW_ATOMIC_REQ_sum / $denom)) min: MIN((TCP_TCC_RW_ATOMIC_REQ_sum / $denom)) max: MAX((TCP_TCC_RW_ATOMIC_REQ_sum / $denom)) unit: (Req + $normUnit) diff --git a/projects/rocprofiler-compute/src/omniperf_analyze/configs/gfx908/1700_L2_cache.yaml b/projects/rocprofiler-compute/src/omniperf_analyze/configs/gfx908/1700_L2_cache.yaml index aca8e67037..9e76a39b65 100644 --- a/projects/rocprofiler-compute/src/omniperf_analyze/configs/gfx908/1700_L2_cache.yaml +++ b/projects/rocprofiler-compute/src/omniperf_analyze/configs/gfx908/1700_L2_cache.yaml @@ -294,6 +294,8 @@ Panel Config: title: L2 - EA Interface Stalls header: metric: Metric + type: Type + transaction: Transaction avg: Avg min: Min max: Max @@ -301,42 +303,56 @@ Panel Config: tips: Tips metric: Read - Remote Socket Stall: + type: Remote Socket Stall + transaction: Read avg: AVG((TCC_EA_RDREQ_IO_CREDIT_STALL_sum / $denom)) min: MIN((TCC_EA_RDREQ_IO_CREDIT_STALL_sum / $denom)) max: MAX((TCC_EA_RDREQ_IO_CREDIT_STALL_sum / $denom)) unit: (Req + $normUnit) tips: Read - Peer GCD Stall: + type: Peer GCD Stall + transaction: Read avg: AVG((TCC_EA_RDREQ_GMI_CREDIT_STALL_sum / $denom)) min: MIN((TCC_EA_RDREQ_GMI_CREDIT_STALL_sum / $denom)) max: MAX((TCC_EA_RDREQ_GMI_CREDIT_STALL_sum / $denom)) unit: (Req + $normUnit) tips: Read - HBM Stall: + type: HBM Stall + transaction: Read avg: AVG((TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum / $denom)) min: MIN((TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum / $denom)) max: MAX((TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum / $denom)) unit: (Req + $normUnit) tips: Write - Remote Socket Stall: + type: Remote Socket Stall + transaction: Write avg: AVG((TCC_EA_WRREQ_IO_CREDIT_STALL_sum / $denom)) min: MIN((TCC_EA_WRREQ_IO_CREDIT_STALL_sum / $denom)) max: MAX((TCC_EA_WRREQ_IO_CREDIT_STALL_sum / $denom)) unit: (Req + $normUnit) tips: Write - Peer GCD Stall: + type: Peer GCD Stall + transaction: Write avg: AVG((TCC_EA_WRREQ_GMI_CREDIT_STALL_sum / $denom)) min: MIN((TCC_EA_WRREQ_GMI_CREDIT_STALL_sum / $denom)) max: MAX((TCC_EA_WRREQ_GMI_CREDIT_STALL_sum / $denom)) unit: (Req + $normUnit) tips: Write - HBM Stall: + type: HBM Stall + transaction: Write avg: AVG((TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum / $denom)) min: MIN((TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum / $denom)) max: MAX((TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum / $denom)) unit: (Req + $normUnit) 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)) diff --git a/projects/rocprofiler-compute/src/omniperf_analyze/configs/gfx90a/1600_L1_cache.yaml b/projects/rocprofiler-compute/src/omniperf_analyze/configs/gfx90a/1600_L1_cache.yaml index acf0d58bd1..275281031d 100644 --- a/projects/rocprofiler-compute/src/omniperf_analyze/configs/gfx90a/1600_L1_cache.yaml +++ b/projects/rocprofiler-compute/src/omniperf_analyze/configs/gfx90a/1600_L1_cache.yaml @@ -237,81 +237,107 @@ Panel Config: id: 1604 title: L1D - L2 Transactions header: + metric: Metric xfer: Xfer - mean: Mean + coherency: Coherency + avg: Avg min: Min max: Max unit: Unit tips: Tips metric: NC - Read: - mean: AVG((TCP_TCC_NC_READ_REQ_sum / $denom)) + xfer: Read + coherency: NC + avg: AVG((TCP_TCC_NC_READ_REQ_sum / $denom)) min: MIN((TCP_TCC_NC_READ_REQ_sum / $denom)) max: MAX((TCP_TCC_NC_READ_REQ_sum / $denom)) unit: (Req + $normUnit) tips: UC - Read: - mean: AVG((TCP_TCC_UC_READ_REQ_sum / $denom)) + xfer: Read + coherency: UC + avg: AVG((TCP_TCC_UC_READ_REQ_sum / $denom)) min: MIN((TCP_TCC_UC_READ_REQ_sum / $denom)) max: MAX((TCP_TCC_UC_READ_REQ_sum / $denom)) unit: (Req + $normUnit) tips: CC - Read: - mean: AVG((TCP_TCC_CC_READ_REQ_sum / $denom)) + xfer: Read + coherency: CC + avg: AVG((TCP_TCC_CC_READ_REQ_sum / $denom)) min: MIN((TCP_TCC_CC_READ_REQ_sum / $denom)) max: MAX((TCP_TCC_CC_READ_REQ_sum / $denom)) unit: (Req + $normUnit) tips: RW - Read: - mean: AVG((TCP_TCC_RW_READ_REQ_sum / $denom)) + xfer: Read + coherency: RW + avg: AVG((TCP_TCC_RW_READ_REQ_sum / $denom)) min: MIN((TCP_TCC_RW_READ_REQ_sum / $denom)) max: MAX((TCP_TCC_RW_READ_REQ_sum / $denom)) unit: (Req + $normUnit) tips: RW - Write: - mean: AVG((TCP_TCC_RW_WRITE_REQ_sum / $denom)) + xfer: Write + coherency: RW + avg: AVG((TCP_TCC_RW_WRITE_REQ_sum / $denom)) min: MIN((TCP_TCC_RW_WRITE_REQ_sum / $denom)) max: MAX((TCP_TCC_RW_WRITE_REQ_sum / $denom)) unit: (Req + $normUnit) tips: NC - Write: - mean: AVG((TCP_TCC_NC_WRITE_REQ_sum / $denom)) + xfer: Write + coherency: NC + avg: AVG((TCP_TCC_NC_WRITE_REQ_sum / $denom)) min: MIN((TCP_TCC_NC_WRITE_REQ_sum / $denom)) max: MAX((TCP_TCC_NC_WRITE_REQ_sum / $denom)) unit: (Req + $normUnit) tips: UC - Write: - mean: AVG((TCP_TCC_UC_WRITE_REQ_sum / $denom)) + xfer: Write + coherency: UC + avg: AVG((TCP_TCC_UC_WRITE_REQ_sum / $denom)) min: MIN((TCP_TCC_UC_WRITE_REQ_sum / $denom)) max: MAX((TCP_TCC_UC_WRITE_REQ_sum / $denom)) unit: (Req + $normUnit) tips: CC - Write: - mean: AVG((TCP_TCC_CC_WRITE_REQ_sum / $denom)) + 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: - mean: AVG((TCP_TCC_NC_ATOMIC_REQ_sum / $denom)) + xfer: Atomic + coherency: NC + avg: AVG((TCP_TCC_NC_ATOMIC_REQ_sum / $denom)) min: MIN((TCP_TCC_NC_ATOMIC_REQ_sum / $denom)) max: MAX((TCP_TCC_NC_ATOMIC_REQ_sum / $denom)) unit: (Req + $normUnit) tips: UC - Atomic: - mean: AVG((TCP_TCC_UC_ATOMIC_REQ_sum / $denom)) + xfer: Atomic + coherency: UC + avg: AVG((TCP_TCC_UC_ATOMIC_REQ_sum / $denom)) min: MIN((TCP_TCC_UC_ATOMIC_REQ_sum / $denom)) max: MAX((TCP_TCC_UC_ATOMIC_REQ_sum / $denom)) unit: (Req + $normUnit) tips: CC - Atomic: - mean: AVG((TCP_TCC_CC_ATOMIC_REQ_sum / $denom)) + xfer: Atomic + coherency: CC + avg: AVG((TCP_TCC_CC_ATOMIC_REQ_sum / $denom)) min: MIN((TCP_TCC_CC_ATOMIC_REQ_sum / $denom)) max: MAX((TCP_TCC_CC_ATOMIC_REQ_sum / $denom)) unit: (Req + $normUnit) tips: RW - Atomic: - mean: AVG((TCP_TCC_RW_ATOMIC_REQ_sum / $denom)) + xfer: Atomic + coherency: RW + avg: AVG((TCP_TCC_RW_ATOMIC_REQ_sum / $denom)) min: MIN((TCP_TCC_RW_ATOMIC_REQ_sum / $denom)) max: MAX((TCP_TCC_RW_ATOMIC_REQ_sum / $denom)) unit: (Req + $normUnit) diff --git a/projects/rocprofiler-compute/src/omniperf_analyze/configs/gfx90a/1700_L2_cache.yaml b/projects/rocprofiler-compute/src/omniperf_analyze/configs/gfx90a/1700_L2_cache.yaml index d58d4f0822..7be18091af 100644 --- a/projects/rocprofiler-compute/src/omniperf_analyze/configs/gfx90a/1700_L2_cache.yaml +++ b/projects/rocprofiler-compute/src/omniperf_analyze/configs/gfx90a/1700_L2_cache.yaml @@ -294,6 +294,8 @@ Panel Config: title: L2 - Fabric Interface Stalls header: metric: Metric + type: Type + transaction: Transaction avg: Avg min: Min max: Max @@ -301,42 +303,56 @@ Panel Config: tips: Tips metric: Read - Remote Socket Stall: + type: Remote Socket Stall + transaction: Read avg: AVG((TCC_EA_RDREQ_IO_CREDIT_STALL_sum / $denom)) min: MIN((TCC_EA_RDREQ_IO_CREDIT_STALL_sum / $denom)) max: MAX((TCC_EA_RDREQ_IO_CREDIT_STALL_sum / $denom)) unit: (Req + $normUnit) tips: Read - Peer GCD Stall: + type: Peer GCD Stall + transaction: Read avg: AVG((TCC_EA_RDREQ_GMI_CREDIT_STALL_sum / $denom)) min: MIN((TCC_EA_RDREQ_GMI_CREDIT_STALL_sum / $denom)) max: MAX((TCC_EA_RDREQ_GMI_CREDIT_STALL_sum / $denom)) unit: (Req + $normUnit) tips: Read - HBM Stall: + type: HBM Stall + transaction: Read avg: AVG((TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum / $denom)) min: MIN((TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum / $denom)) max: MAX((TCC_EA_RDREQ_DRAM_CREDIT_STALL_sum / $denom)) unit: (Req + $normUnit) tips: Write - Remote Socket Stall: + type: Remote Socket Stall + transaction: Write avg: AVG((TCC_EA_WRREQ_IO_CREDIT_STALL_sum / $denom)) min: MIN((TCC_EA_WRREQ_IO_CREDIT_STALL_sum / $denom)) max: MAX((TCC_EA_WRREQ_IO_CREDIT_STALL_sum / $denom)) unit: (Req + $normUnit) tips: Write - Peer GCD Stall: + type: Peer GCD Stall + transaction: Write avg: AVG((TCC_EA_WRREQ_GMI_CREDIT_STALL_sum / $denom)) min: MIN((TCC_EA_WRREQ_GMI_CREDIT_STALL_sum / $denom)) max: MAX((TCC_EA_WRREQ_GMI_CREDIT_STALL_sum / $denom)) unit: (Req + $normUnit) tips: Write - HBM Stall: + type: HBM Stall + transaction: Write avg: AVG((TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum / $denom)) min: MIN((TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum / $denom)) max: MAX((TCC_EA_WRREQ_DRAM_CREDIT_STALL_sum / $denom)) unit: (Req + $normUnit) 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)) diff --git a/projects/rocprofiler-compute/src/omniperf_analyze/utils/gui.py b/projects/rocprofiler-compute/src/omniperf_analyze/utils/gui.py index b96bcea8a2..aa490473b3 100644 --- a/projects/rocprofiler-compute/src/omniperf_analyze/utils/gui.py +++ b/projects/rocprofiler-compute/src/omniperf_analyze/utils/gui.py @@ -60,7 +60,9 @@ barchart_elements = [ 1301, # Instruc cache SOL 1401, # SL1D cache SOL 1601, # VL1D cache SOL + 1604, # L1D-L2 Transactions 1701, # L2 cache SOL + 1704, # L1-Fabric Interface Stalls ] @@ -70,6 +72,25 @@ def filter_df(column, df, filt): filt_df = df.loc[df[schema.pmc_perf_file_prefix][column].astype(str).isin(filt)] return filt_df +def multi_bar_chart(table_id, display_df): + if table_id == 1604: + nested_bar = { + 'NC': {}, + 'UC': {}, + 'RW': {}, + 'CC': {} + } + for index, row in display_df.iterrows(): + nested_bar[row["Coherency"]][row["Xfer"]] = row["Avg"] + if table_id == 1704: + nested_bar = { + 'Read': {}, + 'Write': {} + } + for index, row in display_df.iterrows(): + nested_bar[row["Transaction"]][row["Type"]] = row["Avg"] + + return nested_bar def discrete_background_color_bins(df, n_bins=5, columns="all"): @@ -150,6 +171,30 @@ def build_bar_chart(display_df, table_config): ) ) + # Multi bar chart + elif table_config["id"] == 1604 or table_config["id"] == 1704: + display_df["Avg"] = [ + x.astype(int) if x != "" else int(0) for x in display_df["Avg"] + ] + df_unit = display_df["Unit"][0] + nested_bar = multi_bar_chart(table_config["id"], display_df) + # generate chart for each coherency + for group, metric in nested_bar.items(): + d_figs.append( + px.bar( + title=group, + x=metric.values(), + y=metric.keys(), + labels={ + "x": df_unit, + "y": "" + }, + text=metric.values(), + orientation="h", + height=200 + ).update_xaxes(showgrid=False, rangemode="nonnegative").update_yaxes(showgrid=False).update_layout(title_x=0.5) + ) + # Speed-of-light bar chart else: display_df["Value"] = [ @@ -434,10 +479,22 @@ def build_layout( # a) Barchart if table_config["id"] in barchart_elements: d_figs = build_bar_chart(display_df, table_config) - for fig in d_figs: + # Smaller formatting if barchart yeilds several graphs + if len(d_figs) > 2: + temp_obj = [] + for fig in d_figs: + temp_obj.append( + html.Div(className="float-child", children=[dcc.Graph(figure=fig, style={"margin": "2%"})]) + ) content.append( - dcc.Graph(figure=fig, style={"margin": "2%"}) + html.Div(className="float-container", children=temp_obj) ) + # Normal formatting if < 2 graphs + else: + for fig in d_figs: + content.append( + dcc.Graph(figure=fig, style={"margin": "2%"}) + ) # B) Tablechart else: d_figs = build_table_chart(