From d5974aba788e418136afb97017b9cbacb2223dce Mon Sep 17 00:00:00 2001 From: Kiumars Sabeti Date: Tue, 8 Feb 2022 00:59:47 +0000 Subject: [PATCH] SWDEV-302380: [ROCm QA][Mainline][Navi21] 6 tests are failing in rocprofiler-stg2 This is an attempt to support basic and derived counters for navi21. This code will not work correctly unless we add navi counters to metrics.xml and gfx_metrics.xml Change-Id: Ied06a81345a6fbb02fa0fde1889d94bbe64e9a03 [ROCm/rocprofiler commit: b53fd84ade9a1686ac41bf3a0ad0b1d2c9107707] --- projects/rocprofiler/src/core/metrics.h | 7 +- .../rocprofiler/test/tool/gfx_metrics.xml | 58 ++++++ projects/rocprofiler/test/tool/metrics.xml | 185 ++++++++---------- 3 files changed, 143 insertions(+), 107 deletions(-) mode change 100644 => 100755 projects/rocprofiler/src/core/metrics.h mode change 100644 => 100755 projects/rocprofiler/test/tool/gfx_metrics.xml mode change 100644 => 100755 projects/rocprofiler/test/tool/metrics.xml diff --git a/projects/rocprofiler/src/core/metrics.h b/projects/rocprofiler/src/core/metrics.h old mode 100644 new mode 100755 index 6eeebee3ac..7ba9e35bbb --- a/projects/rocprofiler/src/core/metrics.h +++ b/projects/rocprofiler/src/core/metrics.h @@ -198,8 +198,11 @@ class MetricsDict { agent_name_ = agent_info->name; if (std::string("gfx906") == agent_info->name || std::string("gfx908") == agent_info->name || - std::string("gfx90a") == agent_info->name) { - ImportMetrics(agent_info, agent_info->name); + std::string("gfx90a") == agent_info->name || + std::string("gfx1032") == agent_info->name || + std::string("gfx1031") == agent_info->name || + std::string("gfx1030") == agent_info->name){ + ImportMetrics(agent_info, agent_info->name); } else { agent_name_ = agent_info->gfxip; ImportMetrics(agent_info, agent_info->gfxip); diff --git a/projects/rocprofiler/test/tool/gfx_metrics.xml b/projects/rocprofiler/test/tool/gfx_metrics.xml old mode 100644 new mode 100755 index 628a629a55..46dcfbb4fd --- a/projects/rocprofiler/test/tool/gfx_metrics.xml +++ b/projects/rocprofiler/test/tool/gfx_metrics.xml @@ -365,3 +365,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/projects/rocprofiler/test/tool/metrics.xml b/projects/rocprofiler/test/tool/metrics.xml old mode 100644 new mode 100755 index 2f8e10dd17..85f3e6fb1b --- a/projects/rocprofiler/test/tool/metrics.xml +++ b/projects/rocprofiler/test/tool/metrics.xml @@ -16,6 +16,22 @@ + + + + + + + + + + + + + + + # LDSBankConflict The percentage of GPUTime LDS is stalled by bank conflicts. Value range: 0% (optimal) to 100% (bad). + @@ -36,6 +52,22 @@ + + + + + + + + + + + + + + + # LDSBankConflict The percentage of GPUTime LDS is stalled by bank conflicts. Value range: 0% (optimal) to 100% (bad). + @@ -183,14 +215,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + # Vega20 # Arcturus # Aldebaran +#Navi21 + + + + + # GPUBusy The percentage of time GPU was busy. @@ -221,13 +301,6 @@ expr=SQ_INSTS_SALU/SQ_WAVES > - # VFetchInsts The average number of vector fetch instructions from the video memory executed per work-item (affected by flow control). Excludes FLAT instructions that fetch from video memory. - - # SFetchInsts The average number of scalar fetch instructions from the video memory executed per work-item (affected by flow control). - # VWriteInsts The average number of vector write instructions to the video memory executed per work-item (affected by flow control). Excludes FLAT instructions that write to video memory. - - - # FlatVMemInsts The average number of FLAT instructions that read from or write to the video memory executed per work item (affected by flow control). Includes FLAT instructions that read from or write to scratch. - - - # LDSInsts The average number of LDS read or LDS write instructions executed per work item (affected by flow control). Excludes FLAT instructions that read from or write to LDS. - - - # FlatLDSInsts The average number of FLAT instructions that read or write to LDS executed per work item (affected by flow control). - - # GDSInsts The average number of GDS read or GDS write instructions executed per work item (affected by flow control). - # VALUUtilization The percentage of active vector ALU threads in a wave. A lower number can mean either more thread divergence in a wave or that the work-group size is not a multiple of 64. Value range: 0% (bad), 100% (ideal - no thread divergence). - - - # VALUBusy The percentage of GPUTime vector ALU instructions are processed. Value range: 0% (bad) to 100% (optimal). - - - # SALUBusy The percentage of GPUTime scalar ALU instructions are processed. Value range: 0% (bad) to 100% (optimal). - - - # FetchSize The total kilobytes fetched from the video memory. This is measured with all extra fetches and any cache or memory effects taken into account. - - - # WriteSize The total kilobytes written to the video memory. This is measured with all extra fetches and any cache or memory effects taken into account. - - - # MemWrites32B The total number of effective 32B write transactions to the memory - - - # L2CacheHit The percentage of fetch, write, atomic, and other instructions that hit the data in L2 cache. Value range: 0% (no hit) to 100% (optimal). - - # MemUnitBusy The percentage of GPUTime the memory unit is active. The result includes the stall time (MemUnitStalled). This is measured with all extra fetches and writes and any cache or memory effects taken into account. Value range: 0% to 100% (fetch-bound). - # MemUnitStalled The percentage of GPUTime the memory unit is stalled. Try reducing the number or size of fetches and writes if possible. Value range: 0% (optimal) to 100% (bad). - - - # WriteUnitStalled The percentage of GPUTime the Write unit is stalled. Value range: 0% to 100% (bad). - - # ALUStalledByLDS The percentage of GPUTime ALU units are stalled by the LDS input queue being full or the output queue being not ready. If there are LDS bank conflicts, reduce them. Otherwise, try reducing the number of LDS accesses if possible. Value range: 0% (optimal) to 100% (bad). - # LDSBankConflict The percentage of GPUTime LDS is stalled by bank conflicts. Value range: 0% (optimal) to 100% (bad). - -