MI200 performance counters and metrics#

Applies to Linux and Windows

2024-01-16

47 min read time

This document lists and describes the hardware performance counters and derived metrics available on the AMD Instinct™ MI200 GPU. All the hardware basic counters and derived metrics are accessible via ROCProfiler tool.

MI200 performance counters list#

See the category-wise listing of MI200 performance counters in the following tables.

Note

Preliminary validation of all MI200 performance counters is in progress. Those with “*” appended to the names require further evaluation.

Graphics Register Bus Management (GRBM) counters#

Hardware Counter

Unit

Definition

GRBM_​COUNT

Cycles

Number of free-running GPU cycles

GRBM_​GUI_​ACTIVE

Cycles

Number of GPU active cycles

GRBM_​CP_​BUSY

Cycles

Number of cycles any of the Command Processor (CP) blocks are busy

GRBM_​SPI_​BUSY

Cycles

Number of cycles any of the Shader Processor Input (SPI) are busy in the shader engine(s)

GRBM_​TA_​BUSY

Cycles

Number of cycles any of the Texture Addressing Unit (TA) are busy in the shader engine(s)

GRBM_​TC_​BUSY

Cycles

Number of cycles any of the Texture Cache Blocks (TCP/TCI/TCA/TCC) are busy

GRBM_​CPC_​BUSY

Cycles

Number of cycles the Command Processor - Compute (CPC) is busy

GRBM_​CPF_​BUSY

Cycles

Number of cycles the Command Processor - Fetcher (CPF) is busy

GRBM_​UTCL2_​BUSY

Cycles

Number of cycles the Unified Translation Cache - Level 2 (UTCL2) block is busy

GRBM_​EA_​BUSY

Cycles

Number of cycles the Efficiency Arbiter (EA) block is busy

Command Processor (CP) counters#

The CP counters are further classified into CP-Fetcher (CPF) and CP-Compute (CPC).

CPF counters#

Hardware Counter

Unit

Definition

CPF_​CMP_​UTCL1_​STALL_​ON_​TRANSLATION

Cycles

Number of cycles one of the Compute UTCL1s is stalled waiting on translation

CPF_​CPF_​STAT_​BUSY

Cycles

Number of cycles CPF is busy

CPF_​CPF_​STAT_​IDLE*

Cycles

Number of cycles CPF is idle

CPF_​CPF_​STAT_​STALL

Cycles

Number of cycles CPF is stalled

CPF_​CPF_​TCIU_​BUSY

Cycles

Number of cycles CPF Texture Cache Interface Unit (TCIU) interface is busy

CPF_​CPF_​TCIU_​IDLE

Cycles

Number of cycles CPF TCIU interface is idle

CPF_​CPF_​TCIU_​STALL*

Cycles

Number of cycles CPF TCIU interface is stalled waiting on free tags

CPC counters#

Hardware Counter

Unit

Definition

CPC_​ME1_​BUSY_​FOR_​PACKET_​DECODE

Cycles

Number of cycles CPC Micro Engine (ME1) is busy decoding packets

CPC_​UTCL1_​STALL_​ON_​TRANSLATION

Cycles

Number of cycles one of the UTCL1s is stalled waiting on translation

CPC_​CPC_​STAT_​BUSY

Cycles

Number of cycles CPC is busy

CPC_​CPC_​STAT_​IDLE

Cycles

Number of cycles CPC is idle

CPC_​CPC_​STAT_​STALL

Cycles

Number of cycles CPC is stalled

CPC_​CPC_​TCIU_​BUSY

Cycles

Number of cycles CPC TCIU interface is busy

CPC_​CPC_​TCIU_​IDLE

Cycles

Number of cycles CPC TCIU interface is idle

CPC_​CPC_​UTCL2IU_​BUSY

Cycles

Number of cycles CPC UTCL2 interface is busy

CPC_​CPC_​UTCL2IU_​IDLE

Cycles

Number of cycles CPC UTCL2 interface is idle

CPC_​CPC_​UTCL2IU_​STALL

Cycles

Number of cycles CPC UTCL2 interface is stalled

CPC_​ME1_​DC0_​SPI_​BUSY

Cycles

Number of cycles CPC ME1 Processor is busy

Shader Processor Input (SPI) counters#

Hardware Counter

Unit

Definition

SPI_​CSN_​BUSY

Cycles

Number of cycles with outstanding waves

SPI_​CSN_​WINDOW_​VALID

Cycles

Number of cycles enabled by perfcounter_​start event

SPI_​CSN_​NUM_​THREADGROUPS

Workgroups

Number of dispatched workgroups

SPI_​CSN_​WAVE

Wavefronts

Number of dispatched wavefronts

SPI_​RA_​REQ_​NO_​ALLOC

Cycles

Number of Arb cycles with requests but no allocation

SPI_​RA_​REQ_​NO_​ALLOC_​CSN

Cycles

Number of Arb cycles with Compute Shader, n-th pipe (CSn) requests but no CSn allocation

SPI_​RA_​RES_​STALL_​CSN

Cycles

Number of Arb stall cycles due to shortage of CSn pipeline slots

SPI_​RA_​TMP_​STALL_​CSN*

Cycles

Number of stall cycles due to shortage of temp space

SPI_​RA_​WAVE_​SIMD_​FULL_​CSN

SIMD-cycles

Accumulated number of Single Instruction Multiple Data (SIMDs) per cycle affected by shortage of wave slots for CSn wave dispatch

SPI_​RA_​VGPR_​SIMD_​FULL_​CSN*

SIMD-cycles

Accumulated number of SIMDs per cycle affected by shortage of VGPR slots for CSn wave dispatch

SPI_​RA_​SGPR_​SIMD_​FULL_​CSN*

SIMD-cycles

Accumulated number of SIMDs per cycle affected by shortage of SGPR slots for CSn wave dispatch

SPI_​RA_​LDS_​CU_​FULL_​CSN

CUs

Number of Compute Units (CUs) affected by shortage of LDS space for CSn wave dispatch

SPI_​RA_​BAR_​CU_​FULL_​CSN*

CUs

Number of CUs with CSn waves waiting at a BARRIER

SPI_​RA_​BULKY_​CU_​FULL_​CSN*

CUs

Number of CUs with CSn waves waiting for BULKY resource

SPI_​RA_​TGLIM_​CU_​FULL_​CSN*

Cycles

Number of CSn wave stall cycles due to restriction of tg_​limit for thread group size

SPI_​RA_​WVLIM_​STALL_​CSN*

Cycles

Number of cycles CSn is stalled due to WAVE_LIMIT

SPI_​VWC_​CSC_​WR

Qcycles

Number of quad-cycles taken to initialize Vector General Purpose Register (VGPRs) when launching waves

SPI_​SWC_​CSC_​WR

Qcycles

Number of quad-cycles taken to initialize Vector General Purpose Register (SGPRs) when launching waves

Compute Unit (CU) counters#

The CU counters are further classified into instruction mix, Matrix Fused Multiply Add (MFMA) operation counters, level counters, wavefront counters, wavefront cycle counters and Local Data Share (LDS) counters.

Instruction mix#

Hardware Counter

Unit

Definition

SQ_​INSTS

Instr

Number of instructions issued.

SQ_​INSTS_​VALU

Instr

Number of Vector Arithmetic Logic Unit (VALU) instructions including MFMA issued.

SQ_​INSTS_​VALU_​ADD_​F16

Instr

Number of VALU Half Precision Floating Point (F16) ADD/SUB instructions issued.

SQ_​INSTS_​VALU_​MUL_​F16

Instr

Number of VALU F16 Multiply instructions issued.

SQ_​INSTS_​VALU_​FMA_​F16

Instr

Number of VALU F16 Fused Multiply Add (FMA)/ Multiply Add (MAD) instructions issued.

SQ_​INSTS_​VALU_​TRANS_​F16

Instr

Number of VALU F16 Transcendental instructions issued.

SQ_​INSTS_​VALU_​ADD_​F32

Instr

Number of VALU Full Precision Floating Point (F32) ADD/SUB instructions issued.

SQ_​INSTS_​VALU_​MUL_​F32

Instr

Number of VALU F32 Multiply instructions issued.

SQ_​INSTS_​VALU_​FMA_​F32

Instr

Number of VALU F32 FMA/MAD instructions issued.

SQ_​INSTS_​VALU_​TRANS_​F32

Instr

Number of VALU F32 Transcendental instructions issued.

SQ_​INSTS_​VALU_​ADD_​F64

Instr

Number of VALU F64 ADD/SUB instructions issued.

SQ_​INSTS_​VALU_​MUL_​F64

Instr

Number of VALU F64 Multiply instructions issued.

SQ_​INSTS_​VALU_​FMA_​F64

Instr

Number of VALU F64 FMA/MAD instructions issued.

SQ_​INSTS_​VALU_​TRANS_​F64

Instr

Number of VALU F64 Transcendental instructions issued.

SQ_​INSTS_​VALU_​INT32

Instr

Number of VALU 32-bit integer instructions (signed or unsigned) issued.

SQ_​INSTS_​VALU_​INT64

Instr

Number of VALU 64-bit integer instructions (signed or unsigned) issued.

SQ_​INSTS_​VALU_​CVT

Instr

Number of VALU Conversion instructions issued.

SQ_​INSTS_​VALU_​MFMA_​I8

Instr

Number of 8-bit Integer MFMA instructions issued.

SQ_​INSTS_​VALU_​MFMA_​F16

Instr

Number of F16 MFMA instructions issued.

SQ_​INSTS_​VALU_​MFMA_​BF16

Instr

Number of Brain Floating Point - 16 (BF16) MFMA instructions issued.

SQ_​INSTS_​VALU_​MFMA_​F32

Instr

Number of F32 MFMA instructions issued.

SQ_​INSTS_​VALU_​MFMA_​F64

Instr

Number of F64 MFMA instructions issued.

SQ_​INSTS_​MFMA

Instr

Number of MFMA instructions issued.

SQ_​INSTS_​VMEM_​WR

Instr

Number of Vector Memory (VMEM) Write instructions (including FLAT) issued.

SQ_​INSTS_​VMEM_​RD

Instr

Number of VMEM Read instructions (including FLAT) issued.

SQ_​INSTS_​VMEM

Instr

Number of VMEM instructions issued, including both FLAT and Buffer instructions.

SQ_​INSTS_​SALU

Instr

Number of SALU instructions issued.

SQ_​INSTS_​SMEM

Instr

Number of Scalar Memory (SMEM) instructions issued.

SQ_​INSTS_​SMEM_​NORM

Instr

Number of SMEM instructions normalized to match smem_​level issued.

SQ_​INSTS_​FLAT

Instr

Number of FLAT instructions issued.

SQ_​INSTS_​FLAT_​LDS_​ONLY

Instr

Number of FLAT instructions that read/write only from/to LDS issued. Works only if EARLY_​TA_​DONE is enabled.

SQ_​INSTS_​LDS

Instr

Number of Local Data Share (LDS) instructions issued (including FLAT).

SQ_​INSTS_​GDS

Instr

Number of Global Data Share (GDS) instructions issued.

SQ_​INSTS_​EXP_​GDS

Instr

Number of EXP and GDS instructions excluding skipped export instructions issued.

SQ_​INSTS_​BRANCH

Instr

Number of Branch instructions issued.

SQ_​INSTS_​SENDMSG

Instr

Number of SENDMSG instructions including s_​endpgm issued.

SQ_​INSTS_​VSKIPPED*

Instr

Number of vector instructions skipped.

MFMA operation counters#

Hardware Counter

Unit

Definition

SQ_​INSTS_​VALU_​MFMA_​MOPS_​I8

IOP

Number of 8-bit integer MFMA ops in the unit of 512

SQ_​INSTS_​VALU_​MFMA_​MOPS_​F16

FLOP

Number of F16 floating MFMA ops in the unit of 512

SQ_​INSTS_​VALU_​MFMA_​MOPS_​BF16

FLOP

Number of BF16 floating MFMA ops in the unit of 512

SQ_​INSTS_​VALU_​MFMA_​MOPS_​F32

FLOP

Number of F32 floating MFMA ops in the unit of 512

SQ_​INSTS_​VALU_​MFMA_​MOPS_​F64

FLOP

Number of F64 floating MFMA ops in the unit of 512

Level counters#

Note

All level counters must be followed by SQ_ACCUM_PREV_HIRES counter to measure average latency.

Hardware Counter

Unit

Definition

SQ_​ACCUM_​PREV

Count

Accumulated counter sample value where accumulation takes place once every four cycles.

SQ_​ACCUM_​PREV_​HIRES

Count

Accumulated counter sample value where accumulation takes place once every cycle.

SQ_​LEVEL_​WAVES

Waves

Number of inflight waves. To calculate the wave latency, divide SQ_​ACCUM_​PREV_​HIRES by SQ_​WAVE.

SQ_​INST_​LEVEL_​VMEM

Instr

Number of inflight VMEM (including FLAT) instructions. To calculate the VMEM latency, divide SQ_​ACCUM_​PREV_​HIRES by SQ_​INSTS_​VMEM.

SQ_​INST_​LEVEL_​SMEM

Instr

Number of inflight SMEM instructions. To calculate the SMEM latency, divide SQ_​ACCUM_​PREV_​HIRES by SQ_​INSTS_​SMEM_​NORM.

SQ_​INST_​LEVEL_​LDS

Instr

Number of inflight LDS (including FLAT) instructions. To calculate the LDS latency, divide SQ_​ACCUM_​PREV_​HIRES by SQ_​INSTS_​LDS.

SQ_​IFETCH_​LEVEL

Instr

Number of inflight instruction fetch requests from the cache. To calculate the instruction fetch latency, divide SQ_​ACCUM_​PREV_​HIRES by SQ_​IFETCH.

Wavefront counters#

Hardware Counter

Unit

Definition

SQ_​WAVES

Waves

Number of wavefronts dispatched to Sequencers (SQs), including both new and restored wavefronts

SQ_​WAVES_​SAVED*

Waves

Number of context-saved waves

SQ_​WAVES_​RESTORED*

Waves

Number of context-restored waves sent to SQs

SQ_​WAVES_​EQ_​64

Waves

Number of wavefronts with exactly 64 active threads sent to SQs

SQ_​WAVES_​LT_​64

Waves

Number of wavefronts with less than 64 active threads sent to SQs

SQ_​WAVES_​LT_​48

Waves

Number of wavefronts with less than 48 active threads sent to SQs

SQ_​WAVES_​LT_​32

Waves

Number of wavefronts with less than 32 active threads sent to SQs

SQ_​WAVES_​LT_​16

Waves

Number of wavefronts with less than 16 active threads sent to SQs

Wavefront cycle counters#

Hardware Counter

Unit

Definition

SQ_​CYCLES

Cycles

Clock cycles.

SQ_​BUSY_​CYCLES

Cycles

Number of cycles while SQ reports it to be busy.

SQ_​BUSY_​CU_​CYCLES

Qcycles

Number of quad-cycles each CU is busy.

SQ_​VALU_​MFMA_​BUSY_​CYCLES

Cycles

Number of cycles the MFMA ALU is busy.

SQ_​WAVE_​CYCLES

Qcycles

Number of quad-cycles spent by waves in the CUs.

SQ_​WAIT_​ANY

Qcycles

Number of quad-cycles spent waiting for anything.

SQ_​WAIT_​INST_​ANY

Qcycles

Number of quad-cycles spent waiting for any instruction to be issued.

SQ_​ACTIVE_​INST_​ANY

Qcycles

Number of quad-cycles spent by each wave to work on an instruction.

SQ_​ACTIVE_​INST_​VMEM

Qcycles

Number of quad-cycles spent by the SQ instruction arbiter to work on a VMEM instruction.

SQ_​ACTIVE_​INST_​LDS

Qcycles

Number of quad-cycles spent by the SQ instruction arbiter to work on an LDS instruction.

SQ_​ACTIVE_​INST_​VALU

Qcycles

Number of quad-cycles spent by the SQ instruction arbiter to work on a VALU instruction.

SQ_​ACTIVE_​INST_​SCA

Qcycles

Number of quad-cycles spent by the SQ instruction arbiter to work on a SALU or SMEM instruction.

SQ_​ACTIVE_​INST_​EXP_​GDS

Qcycles

Number of quad-cycles spent by the SQ instruction arbiter to work on an EXPORT or GDS instruction.

SQ_​ACTIVE_​INST_​MISC

Qcycles

Number of quad-cycles spent by the SQ instruction aribter to work on a BRANCH or SENDMSG instruction.

SQ_​ACTIVE_​INST_​FLAT

Qcycles

Number of quad-cycles spent by the SQ instruction arbiter to work on a FLAT instruction.

SQ_​INST_​CYCLES_​VMEM_​WR

Qcycles

Number of quad-cycles spent to send addr and cmd data for VMEM Write instructions.

SQ_​INST_​CYCLES_​VMEM_​RD

Qcycles

Number of quad-cycles spent to send addr and cmd data for VMEM Read instructions.

SQ_​INST_​CYCLES_​SMEM

Qcycles

Number of quad-cycles spent to execute scalar memory reads.

SQ_​INST_​CYCLES_​SALU

Qcycles

Number of quad-cycles spent to execute non-memory read scalar operations.

SQ_​THREAD_​CYCLES_​VALU

Cycles

Number of thread-cycles spent to execute VALU operations. This is similar to INST_​CYCLES_​VALU but multiplied by the number of active threads.

SQ_​WAIT_​INST_​LDS

Qcycles

Number of quad-cycles spent waiting for LDS instruction to be issued.

LDS counters#

Hardware Counter

Unit

Definition

SQ_​LDS_​ATOMIC_​RETURN

Cycles

Number of atomic return cycles in LDS

SQ_​LDS_​BANK_​CONFLICT

Cycles

Number of cycles LDS is stalled by bank conflicts

SQ_​LDS_​ADDR_​CONFLICT*

Cycles

Number of cycles LDS is stalled by address conflicts

SQ_​LDS_​UNALIGNED_​STALL*

Cycles

Number of cycles LDS is stalled processing flat unaligned load/store ops

SQ_​LDS_​MEM_​VIOLATIONS*

Count

Number of threads that have a memory violation in the LDS

SQ_​LDS_​IDX_​ACTIVE

Cycles

Number of cycles LDS is used for indexed operations

Miscellaneous counters#

Hardware Counter

Unit

Definition

SQ_​IFETCH

Count

Number of instruction fetch requests from L1I cache, in 32-byte width

SQ_​ITEMS

Threads

Number of valid items per wave

L1I and sL1D cache counters#

Hardware Counter

Unit

Definition

SQC_​ICACHE_​REQ

Req

Number of L1I cache requests

SQC_​ICACHE_​HITS

Count

Number of L1I cache hits

SQC_​ICACHE_​MISSES

Count

Number of non-duplicate L1I cache misses including uncached requests

SQC_​ICACHE_​MISSES_​DUPLICATE

Count

Number of duplicate L1I cache misses whose previous lookup miss on the same cache line is not fulfilled yet

SQC_​DCACHE_​REQ

Req

Number of s​L1D cache requests

SQC_​DCACHE_​INPUT_​VALID_​READYB

Cycles

Number of cycles while SQ input is valid but sL1D cache is not ready

SQC_​DCACHE_​HITS

Count

Number of s​L1D cache hits

SQC_​DCACHE_​MISSES

Count

Number of non-duplicate s​L1D cache misses including uncached requests

SQC_​DCACHE_​MISSES_​DUPLICATE

Count

Number of duplicate s​L1D cache misses

SQC_​DCACHE_​REQ_​READ_​1

Req

Number of constant cache read requests in a single DW

SQC_​DCACHE_​REQ_​READ_​2

Req

Number of constant cache read requests in two DW

SQC_​DCACHE_​REQ_​READ_​4

Req

Number of constant cache read requests in four DW

SQC_​DCACHE_​REQ_​READ_​8

Req

Number of constant cache read requests in eight DW

SQC_​DCACHE_​REQ_​READ_​16

Req

Number of constant cache read requests in 16 DW

SQC_​DCACHE_​ATOMIC*

Req

Number of atomic requests

SQC_​TC_​REQ

Req

Number of TC requests that were issued by instruction and constant caches

SQC_​TC_​INST_​REQ

Req

Number of instruction requests to the L2 cache

SQC_​TC_​DATA_​READ_​REQ

Req

Number of data Read requests to the L2 cache

SQC_​TC_​DATA_​WRITE_​REQ*

Req

Number of data write requests to the L2 cache

SQC_​TC_​DATA_​ATOMIC_​REQ*

Req

Number of data atomic requests to the L2 cache

SQC_​TC_​STALL*

Cycles

Number of cycles while the valid requests to the L2 cache are stalled

Vector L1 cache subsystem#

The vector L1 cache subsystem counters are further classified into Texture Addressing Unit (TA), Texture Data Unit (TD), vector L1D cache or Texture Cache per Pipe (TCP), and Texture Cache Arbiter (TCA) counters.

TA counters#

Hardware Counter

Unit

Definition

TA_​TA_​BUSY[n]

Cycles

TA busy cycles. Value range for n: [0-15].

TA_​TOTAL_​WAVEFRONTS[n]

Instr

Number of wavefronts processed by TA. Value range for n: [0-15].

TA_​BUFFER_​WAVEFRONTS[n]

Instr

Number of buffer wavefronts processed by TA. Value range for n: [0-15].

TA_​BUFFER_​READ_​WAVEFRONTS[n]

Instr

Number of buffer read wavefronts processed by TA. Value range for n: [0-15].

TA_​BUFFER_​WRITE_​WAVEFRONTS[n]

Instr

Number of buffer write wavefronts processed by TA. Value range for n: [0-15].

TA_​BUFFER_​ATOMIC_​WAVEFRONTS[n]

Instr

Number of buffer atomic wavefronts processed by TA. Value range for n: [0-15].

TA_​BUFFER_​TOTAL_​CYCLES[n]

Cycles

Number of buffer cycles (including read and write) issued to TC. Value range for n: [0-15].

TA_​BUFFER_​COALESCED_​READ_​CYCLES[n]

Cycles

Number of coalesced buffer read cycles issued to TC. Value range for n: [0-15].

TA_​BUFFER_​COALESCED_​WRITE_​CYCLES[n]

Cycles

Number of coalesced buffer write cycles issued to TC. Value range for n: [0-15].

TA_​ADDR_​STALLED_​BY_​TC_​CYCLES[n]

Cycles

Number of cycles TA address path is stalled by TC. Value range for n: [0-15].

TA_​DATA_​STALLED_​BY_​TC_​CYCLES[n]

Cycles

Number of cycles TA data path is stalled by TC. Value range for n: [0-15].

TA_​ADDR_​STALLED_​BY_​TD_​CYCLES[n]

Cycles

Number of cycles TA address path is stalled by TD. Value range for n: [0-15].

TA_​FLAT_​WAVEFRONTS[n]

Instr

Number of flat opcode wavefronts processed by TA. Value range for n: [0-15].

TA_​FLAT_​READ_​WAVEFRONTS[n]

Instr

Number of flat opcode read wavefronts processed by TA. Value range for n: [0-15].

TA_​FLAT_​WRITE_​WAVEFRONTS[n]

Instr

Number of flat opcode write wavefronts processed by TA. Value range for n: [0-15].

TA_​FLAT_​ATOMIC_​WAVEFRONTS[n]

Instr

Number of flat opcode atomic wavefronts processed by TA. Value range for n: [0-15].

TD counters#

Hardware Counter

Unit

Definition

TD_​TD_​BUSY[n]

Cycle

TD busy cycles while it is processing or waiting for data. Value range for n: [0-15].

TD_​TC_​STALL[n]

Cycle

Number of cycles TD is stalled waiting for TC data. Value range for n: [0-15].

TD_​SPI_​STALL[n]

Cycle

Number of cycles TD is stalled by SPI. Value range for n: [0-15].

TD_​LOAD_​WAVEFRONT[n]

Instr

Number of wavefront instructions (read/write/atomic). Value range for n: [0-15].

TD_​STORE_​WAVEFRONT[n]

Instr

Number of write wavefront instructions. Value range for n: [0-15].

TD_​ATOMIC_​WAVEFRONT[n]

Instr

Number of atomic wavefront instructions. Value range for n: [0-15].

TD_​COALESCABLE_​WAVEFRONT[n]

Instr

Number of coalescable wavefronts according to TA. Value range for n: [0-15].

TCP counters#

Hardware Counter

Unit

Definition

TCP_​GATE_​EN1[n]

Cycles

Number of cycles vL1D interface clocks are turned on. Value range for n: [0-15].

TCP_​GATE_​EN2[n]

Cycles

Number of cycles vL1D core clocks are turned on. Value range for n: [0-15].

TCP_​TD_​TCP_​STALL_​CYCLES[n]

Cycles

Number of cycles TD stalls vL1D. Value range for n: [0-15].

TCP_​TCR_​TCP_​STALL_​CYCLES[n]

Cycles

Number of cycles TCR stalls vL1D. Value range for n: [0-15].

TCP_​READ_​TAGCONFLICT_​STALL_​CYCLES[n]

Cycles

Number of cycles tagram conflict stalls on a read. Value range for n: [0-15].

TCP_​WRITE_​TAGCONFLICT_​STALL_​CYCLES[n]

Cycles

Number of cycles tagram conflict stalls on a write. Value range for n: [0-15].

TCP_​ATOMIC_​TAGCONFLICT_​STALL_​CYCLES[n]

Cycles

Number of cycles tagram conflict stalls on an atomic. Value range for n: [0-15].

TCP_​PENDING_​STALL_​CYCLES[n]

Cycles

Number of cycles vL1D cache is stalled due to data pending from L2 Cache. Value range for n: [0-15].

TCP_​TCP_​TA_​DATA_​STALL_​CYCLES

Cycles

Number of cycles TCP stalls TA data interface.

TCP_​TA_​TCP_​STATE_​READ[n]

Req

Number of state reads. Value range for n: [0-15].

TCP_​VOLATILE[n]

Req

Number of L1 volatile pixels/buffers from TA. Value range for n: [0-15].

TCP_​TOTAL_​ACCESSES[n]

Req

Number of vL1D accesses. Equals TCP_​PERF_​SEL_​TOTAL_​READ+TCP_​PERF_​SEL_​TOTAL_​NONREAD. Value range for n: [0-15].

TCP_​TOTAL_​READ[n]

Req

Number of vL1D read accesses. Equals TCP_​PERF_​SEL_​TOTAL_​HIT_​LRU_​READ + TCP_​PERF_​SEL_​TOTAL_​MISS_​LRU_​READ + TCP_​PERF_​SEL_​TOTAL_​MISS_​EVICT_​READ. Value range for n: [0-15].

TCP_​TOTAL_​WRITE[n]

Req

Number of vL1D write accesses. Equals TCP_​PERF_​SEL_​TOTAL_​MISS_​LRU_​WRITE+ TCP_​PERF_​SEL_​TOTAL_​MISS_​EVICT_​WRITE. Value range for n: [0-15].

TCP_​TOTAL_​ATOMIC_​WITH_​RET[n]

Req

Number of vL1D atomic requests with return. Value range for n: [0-15].

TCP_​TOTAL_​ATOMIC_​WITHOUT_​RET[n]

Req

Number of vL1D atomic without return. Value range for n: [0-15].

TCP_​TOTAL_​WRITEBACK_​INVALIDATES[n]

Count

Total number of vL1D writebacks and invalidates. Equals TCP_​PERF_​SEL_​TOTAL_​WBINVL1+ TCP_​PERF_​SEL_​TOTAL_​WBINVL1_​VOL+ TCP_​PERF_​SEL_​CP_​TCP_​INVALIDATE+ TCP_​PERF_​SEL_​SQ_​TCP_​INVALIDATE_​VOL. Value range for n: [0-15].

TCP_​UTCL1_​REQUEST[n]

Req

Number of address translation requests to UTCL1. Value range for n: [0-15].

TCP_​UTCL1_​TRANSLATION_​HIT[n]

Req

Number of UTCL1 translation hits. Value range for n: [0-15].

TCP_​UTCL1_​TRANSLATION_​MISS[n]

Req

Number of UTCL1 translation misses. Value range for n: [0-15].

TCP_​UTCL1_​PERMISSION_​MISS[n]

Req

Number of UTCL1 permission misses. Value range for n: [0-15].

TCP_​TOTAL_​CACHE_​ACCESSES[n]

Req

Number of vL1D cache accesses including hits and misses. Value range for n: [0-15].

TCP_​TCP_​LATENCY[n]

Cycles

Accumulated wave access latency to vL1D over all wavefronts. Value range for n: [0-15].

TCP_​TCC_​READ_​REQ_​LATENCY[n]

Cycles

Total vL1D to L2 request latency over all wavefronts for reads and atomics with return. Value range for n: [0-15].

TCP_​TCC_​WRITE_​REQ_​LATENCY[n]

Cycles

Total vL1D to L2 request latency over all wavefronts for writes and atomics without return. Value range for n: [0-15].

TCP_​TCC_​READ_​REQ[n]

Req

Number of read requests to L2 cache. Value range for n: [0-15].

TCP_​TCC_​WRITE_​REQ[n]

Req

Number of write requests to L2 cache. Value range for n: [0-15].

TCP_​TCC_​ATOMIC_​WITH_​RET_​REQ[n]

Req

Number of atomic requests to L2 cache with return. Value range for n: [0-15].

TCP_​TCC_​ATOMIC_​WITHOUT_​RET_​REQ[n]

Req

Number of atomic requests to L2 cache without return. Value range for n: [0-15].

TCP_​TCC_​NC_​READ_​REQ[n]

Req

Number of NC read requests to L2 cache. Value range for n: [0-15].

TCP_​TCC_​UC_​READ_​REQ[n]

Req

Number of UC read requests to L2 cache. Value range for n: [0-15].

TCP_​TCC_​CC_​READ_​REQ[n]

Req

Number of CC read requests to L2 cache. Value range for n: [0-15].

TCP_​TCC_​RW_​READ_​REQ[n]

Req

Number of RW read requests to L2 cache. Value range for n: [0-15].

TCP_​TCC_​NC_​WRITE_​REQ[n]

Req

Number of NC write requests to L2 cache. Value range for n: [0-15].

TCP_​TCC_​UC_​WRITE_​REQ[n]

Req

Number of UC write requests to L2 cache. Value range for n: [0-15].

TCP_​TCC_​CC_​WRITE_​REQ[n]

Req

Number of CC write requests to L2 cache. Value range for n: [0-15].

TCP_​TCC_​RW_​WRITE_​REQ[n]

Req

Number of RW write requests to L2 cache. Value range for n: [0-15].

TCP_​TCC_​NC_​ATOMIC_​REQ[n]

Req

Number of NC atomic requests to L2 cache. Value range for n: [0-15].

TCP_​TCC_​UC_​ATOMIC_​REQ[n]

Req

Number of UC atomic requests to L2 cache. Value range for n: [0-15].

TCP_​TCC_​CC_​ATOMIC_​REQ[n]

Req

Number of CC atomic requests to L2 cache. Value range for n: [0-15].

TCP_​TCC_​RW_​ATOMIC_​REQ[n]

Req

Number of RW atomic requests to L2 cache. Value range for n: [0-15].

TCA counters#

Hardware Counter

Unit

Definition

TCA_​CYCLE[n]

Cycles

Number of TCA cycles. Value range for n: [0-31].

TCA_​BUSY[n]

Cycles

Number of cycles TCA has a pending request. Value range for n: [0-31].

L2 cache access counters#

L2 Cache is also known as Texture Cache per Channel (TCC).

Hardware Counter

Unit

Definition

TCC_​CYCLE[n]

Cycle

Number of L2 cache free-running clocks. Value range for n: [0-31].

TCC_​BUSY[n]

Cycle

Number of L2 cache busy cycles. Value range for n: [0-31].

TCC_​REQ[n]

Req

Number of L2 cache requests of all types. This is measured at the tag block. This may be more than the number of requests arriving at the TCC, but it is a good indication of the total amount of work that needs to be performed. Value range for n: [0-31].

TCC_​STREAMING_​REQ[n]

Req

Number of L2 cache streaming requests. This is measured at the tag block. Value range for n: [0-31].

TCC_​NC_​REQ[n]

Req

Number of NC requests. This is measured at the tag block. Value range for n: [0-31].

TCC_​UC_​REQ[n]

Req

Number of UC requests. This is measured at the tag block. Value range for n: [0-31].

TCC_​CC_​REQ[n]

Req

Number of CC requests. This is measured at the tag block. Value range for n: [0-31].

TCC_​RW_​REQ[n]

Req

Number of RW requests. This is measured at the tag block. Value range for n: [0-31].

TCC_​PROBE[n]

Req

Number of probe requests. Value range for n: [0-31].

TCC_​PROBE_​ALL[n]

Req

Number of external probe requests with EA_​TCC_​preq_​all== 1. Value range for n: [0-31].

TCC_​READ[n]

Req

Number of L2 cache read requests. This includes compressed reads but not metadata reads. Value range for n: [0-31].

TCC_​WRITE[n]

Req

Number of L2 cache write requests. Value range for n: [0-31].

TCC_​ATOMIC[n]

Req

Number of L2 cache atomic requests of all types. Value range for n: [0-31].

TCC_​HIT[n]

Req

Number of L2 cache hits. Value range for n: [0-31].

TCC_​MISS[n]

Req

Number of L2 cache misses. Value range for n: [0-31].

TCC_​WRITEBACK[n]

Req

Number of lines written back to the main memory, including writebacks of dirty lines and uncached write/atomic requests. Value range for n: [0-31].

TCC_​EA_​WRREQ[n]

Req

Number of 32-byte and 64-byte transactions going over the TC_​EA_​wrreq interface. Atomics may travel over the same interface and are generally classified as write requests. This does not include probe commands. Value range for n: [0-31].

TCC_​EA_​WRREQ_​64B[n]

Req

Total number of 64-byte transactions (write or CMPSWAP) going over the TC_​EA_​wrreq interface. Value range for n: [0-31].

TCC_​EA_​WR_​UNCACHED_​32B[n]

Req

Number of 32-byte write/atomic going over the TC_​EA_​wrreq interface due to uncached traffic. Note that CC mtypes can produce uncached requests, and those are included in this. A 64-byte request is counted as 2. Value range for n: [0-31].

TCC_​EA_​WRREQ_​STALL[n]

Cycles

Number of cycles a write request is stalled. Value range for n: [0-31].

TCC_​EA_​WRREQ_​IO_​CREDIT_​STALL[n]

Cycles

Number of cycles an EA write request is stalled due to the interface running out of IO credits. Value range for n: [0-31].

TCC_​EA_​WRREQ_​GMI_​CREDIT_​STALL[n]

Cycles

Number of cycles an EA write request is stalled due to the interface running out of GMI credits. Value range for n: [0-31].

TCC_​EA_​WRREQ_​DRAM_​CREDIT_​STALL[n]

Cycles

Number of cycles an EA write request is stalled due to the interface running out of DRAM credits. Value range for n: [0-31].

TCC_​TOO_​MANY_​EA_​WRREQS_​STALL[n]

Cycles

Number of cycles the L2 cache is unable to send an EA write request due to it reaching its maximum capacity of pending EA write requests. Value range for n: [0-31].

TCC_​EA_​WRREQ_​LEVEL[n]

Req

The accumulated number of EA write requests in flight. This is primarily intended to measure average EA write latency. Average write latency = TCC_​PERF_​SEL_​EA_​WRREQ_​LEVEL/TCC_​PERF_​SEL_​EA_​WRREQ. Value range for n: [0-31].

TCC_​EA_​ATOMIC[n]

Req

Number of 32-byte or 64-byte atomic requests going over the TC_​EA_​wrreq interface. Value range for n: [0-31].

TCC_​EA_​ATOMIC_​LEVEL[n]

Req

The accumulated number of EA atomic requests in flight. This is primarily intended to measure average EA atomic latency. Average atomic latency = TCC_​PERF_​SEL_​EA_​WRREQ_​ATOMIC_​LEVEL/TCC_​PERF_​SEL_​EA_​WRREQ_​ATOMIC. Value range for n: [0-31].

TCC_​EA_​RDREQ[n]

Req

Number of 32-byte or 64-byte read requests to EA. Value range for n: [0-31].

TCC_​EA_​RDREQ_​32B[n]

Req

Number of 32-byte read requests to EA. Value range for n: [0-31].

TCC_​EA_​RD_​UNCACHED_​32B[n]

Req

Number of 32-byte EA reads due to uncached traffic. A 64-byte request is counted as 2. Value range for n: [0-31].

TCC_​EA_​RDREQ_​IO_​CREDIT_​STALL[n]

Cycles

Number of cycles there is a stall due to the read request interface running out of IO credits. Stalls occur irrespective of the need for a read to be performed. Value range for n: [0-31].

TCC_​EA_​RDREQ_​GMI_​CREDIT_​STALL[n]

Cycles

Number of cycles there is a stall due to the read request interface running out of GMI credits. Stalls occur irrespective of the need for a read to be performed. Value range for n: [0-31].

TCC_​EA_​RDREQ_​DRAM_​CREDIT_​STALL[n]

Cycles

Number of cycles there is a stall due to the read request interface running out of DRAM credits. Stalls occur irrespective of the need for a read to be performed. Value range for n: [0-31].

TCC_​EA_​RDREQ_​LEVEL[n]

Req

The accumulated number of EA read requests in flight. This is primarily intended to measure average EA read latency. Average read latency = TCC_​PERF_​SEL_​EA_​RDREQ_​LEVEL/TCC_​PERF_​SEL_​EA_​RDREQ. Value range for n: [0-31].

TCC_​EA_​RDREQ_​DRAM[n]

Req

Number of 32-byte or 64-byte EA read requests to High Bandwidth Memory (HBM). Value range for n: [0-31].

TCC_​EA_​WRREQ_​DRAM[n]

Req

Number of 32-byte or 64-byte EA write requests to HBM. Value range for n: [0-31].

TCC_​TAG_​STALL[n]

Cycles

Number of cycles the normal request pipeline in the tag is stalled for any reason. Normally, stalls of this nature are measured exactly at one point in the pipeline however in case of this counter, probes can stall the pipeline at a variety of places and there is no single point that can reasonably measure the total stalls accurately. Value range for n: [0-31].

TCC_​NORMAL_​WRITEBACK[n]

Req

Number of writebacks due to requests that are not writeback requests. Value range for n: [0-31].

TCC_​ALL_​TC_​OP_​WB_​WRITEBACK[n]

Req

Number of writebacks due to all TC_​OP writeback requests. Value range for n: [0-31].

TCC_​NORMAL_​EVICT[n]

Req

Number of evictions due to requests that are not invalidate or probe requests. Value range for n: [0-31].

TCC_​ALL_​TC_​OP_​INV_​EVICT[n]

Req

Number of evictions due to all TC_​OP invalidate requests. Value range for n: [0-31].

MI200 derived metrics list#

Derived Metric

Description

ALUStalled​By​LDS

Percentage of GPU time ALU units are stalled due to the LDS input queue being full or the output queue not being ready. Reduce this by reducing the LDS bank conflicts or the number of LDS accesses if possible. Value range: 0% (optimal) to 100% (bad).

Fetch​Size

Total kilobytes fetched from the video memory. This is measured with all extra fetches and any cache or memory effects taken into account.

Flat​LDSInsts

Average number of FLAT instructions that read from or write to LDS, executed per work item (affected by flow control).

Flat​VMem​Insts

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.

GDSInsts

Average number of GDS read/write instructions executed per work item (affected by flow control).

GPUBusy

Percentage of time GPU is busy.

L2Cache​Hit

Percentage of fetch, write, atomic, and other instructions that hit the data in L2 cache. Value range: 0% (no hit) to 100% (optimal).

LDSBank​Conflict

Percentage of GPU time LDS is stalled by bank conflicts. Value range: 0% (optimal) to 100% (bad).

LDSInsts

Average number of LDS read/write instructions executed per work item (affected by flow control). Excludes FLAT instructions that read from or write to LDS.

Mem​Unit​Busy

Percentage of GPU time the memory unit is active. The result includes the stall time (Mem​Unit​Stalled). 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).

Mem​Unit​Stalled

Percentage of GPU time the memory unit is stalled. Try reducing the number or size of fetches and writes if possible. Value range: 0% (optimal) to 100% (bad).

Mem​Writes32B

Total number of effective 32B write transactions to the memory.

SALUBusy

Percentage of GPU time scalar ALU instructions are processed. Value range: 0% (bad) to 100% (optimal).

SALUInsts

Average number of scalar ALU instructions executed per work item (affected by flow control).

SFetch​Insts

Average number of scalar fetch instructions from the video memory executed per work item (affected by flow control).

TA_​ADDR_​STALLED_​BY_​TC_​CYCLES_​sum

Total number of cycles TA address path is stalled by TC, over all TA instances.

TA_​ADDR_​STALLED_​BY_​TD_​CYCLES_​sum

Total number of cycles TA address path is stalled by TD, over all TA instances.

TA_​BUFFER_​WAVEFRONTS_​sum

Total number of buffer wavefronts processed by all TA instances.

TA_​BUFFER_​READ_​WAVEFRONTS_​sum

Total number of buffer read wavefronts processed by all TA instances.

TA_​BUFFER_​WRITE_​WAVEFRONTS_​sum

Total number of buffer write wavefronts processed by all TA instances.

TA_​BUFFER_​ATOMIC_​WAVEFRONTS_​sum

Total number of buffer atomic wavefronts processed by all TA instances.

TA_​BUFFER_​TOTAL_​CYCLES_​sum

Total number of buffer cycles (including read and write) issued to TC by all TA instances.

TA_​BUFFER_​COALESCED_​READ_​CYCLES_​sum

Total number of coalesced buffer read cycles issued to TC by all TA instances.

TA_​BUFFER_​COALESCED_​WRITE_​CYCLES_​sum

Total number of coalesced buffer write cycles issued to TC by all TA instances.

TA_​BUSY_​avr

Average number of busy cycles over all TA instances.

TA_​BUSY_​max

Maximum number of TA busy cycles over all TA instances.

TA_​BUSY_​min

Minimum number of TA busy cycles over all TA instances.

TA_​DATA_​STALLED_​BY_​TC_​CYCLES_​sum

Total number of cycles TA data path is stalled by TC, over all TA instances.

TA_​FLAT_​READ_​WAVEFRONTS_​sum

Sum of flat opcode reads processed by all TA instances.

TA_​FLAT_​WRITE_​WAVEFRONTS_​sum

Sum of flat opcode writes processed by all TA instances.

TA_​FLAT_​WAVEFRONTS_​sum

Total number of flat opcode wavefronts processed by all TA instances.

TA_​FLAT_​READ_​WAVEFRONTS_​sum

Total number of flat opcode read wavefronts processed by all TA instances.

TA_​FLAT_​ATOMIC_​WAVEFRONTS_​sum

Total number of flat opcode atomic wavefronts processed by all TA instances.

TA_​TA_​BUSY_​sum

Total number of TA busy cycles over all TA instances.

TA_​TOTAL_​WAVEFRONTS_​sum

Total number of wavefronts processed by all TA instances.

TCA_​BUSY_​sum

Total number of cycles TCA has a pending request, over all TCA instances.

TCA_​CYCLE_​sum

Total number of cycles over all TCA instances.

TCC_​ALL_​TC_​OP_​WB_​WRITEBACK_​sum

Total number of writebacks due to all TC_OP writeback requests, over all TCC instances.

TCC_​ALL_​TC_​OP_​INV_​EVICT_​sum

Total number of evictions due to all TC_OP invalidate requests, over all TCC instances.

TCC_​ATOMIC_​sum

Total number of L2 cache atomic requests of all types, over all TCC instances.

TCC_​BUSY_​avr

Average number of L2 cache busy cycles, over all TCC instances.

TCC_​BUSY_​sum

Total number of L2 cache busy cycles, over all TCC instances.

TCC_​CC_​REQ_​sum

Total number of CC requests over all TCC instances.

TCC_​CYCLE_​sum

Total number of L2 cache free running clocks, over all TCC instances.

TCC_​EA_​WRREQ_​sum

Total number of 32-byte and 64-byte transactions going over the TC_EA_wrreq interface, over all TCC instances. Atomics may travel over the same interface and are generally classified as write requests. This does not include probe commands.

TCC_​EA_​WRREQ_​64B_​sum

Total number of 64-byte transactions (write or CMPSWAP) going over the TC_EA_wrreq interface, over all TCC instances.

TCC_​EA_​WR_​UNCACHED_​32B_​sum

Total Number of 32-byte write/atomic going over the TC_EA_wrreq interface due to uncached traffic, over all TCC instances. Note that CC mtypes can produce uncached requests, and those are included in this. A 64-byte request is counted as 2.

TCC_​EA_​WRREQ_​STALL_​sum

Total Number of cycles a write request is stalled, over all instances.

TCC_​EA_​WRREQ_​IO_​CREDIT_​STALL_​sum

Total number of cycles an EA write request is stalled due to the interface running out of IO credits, over all instances.

TCC_​EA_​WRREQ_​GMI_​CREDIT_​STALL_​sum

Total number of cycles an EA write request is stalled due to the interface running out of GMI credits, over all instances.

TCC_​EA_​WRREQ_​DRAM_​CREDIT_​STALL_​sum

Total number of cycles an EA write request is stalled due to the interface running out of DRAM credits, over all instances.

TCC_​EA_​WRREQ_​LEVEL_​sum

Total number of EA write requests in flight over all TCC instances.

TCC_​EA_​RDREQ_​LEVEL_​sum

Total number of EA read requests in flight over all TCC instances.

TCC_​EA_​ATOMIC_​sum

Total Number of 32-byte or 64-byte atomic requests going over the TC_EA_wrreq interface, over all TCC instances.

TCC_​EA_​ATOMIC_​LEVEL_​sum

Total number of EA atomic requests in flight, over all TCC instances.

TCC_​EA_​RDREQ_​sum

Total number of 32-byte or 64-byte read requests to EA, over all TCC instances.

TCC_​EA_​RDREQ_​32B_​sum

Total number of 32-byte read requests to EA, over all TCC instances.

TCC_​EA_​RD_​UNCACHED_​32B_​sum

Total number of 32-byte EA reads due to uncached traffic, over all TCC instances.

TCC_​EA_​RDREQ_​IO_​CREDIT_​STALL_​sum

Total number of cycles there is a stall due to the read request interface running out of IO credits, over all TCC instances.

TCC_​EA_​RDREQ_​GMI_​CREDIT_​STALL_​sum

Total number of cycles there is a stall due to the read request interface running out of GMI credits, over all TCC instances.

TCC_​EA_​RDREQ_​DRAM_​CREDIT_​STALL_​sum

Total number of cycles there is a stall due to the read request interface running out of DRAM credits, over all TCC instances.

TCC_​EA_​RDREQ_​DRAM_​sum

Total number of 32-byte or 64-byte EA read requests to HBM, over all TCC instances.

TCC_​EA_​WRREQ_​DRAM_​sum

Total number of 32-byte or 64-byte EA write requests to HBM, over all TCC instances.

TCC_​HIT_​sum

Total number of L2 cache hits over all TCC instances.

TCC_​MISS_​sum

Total number of L2 cache misses over all TCC instances.

TCC_​NC_​REQ_​sum

Total number of NC requests over all TCC instances.

TCC_​NORMAL_​WRITEBACK_​sum

Total number of writebacks due to requests that are not writeback requests, over all TCC instances.

TCC_​NORMAL_​EVICT_​sum

Total number of evictions due to requests that are not invalidate or probe requests, over all TCC instances.

TCC_​PROBE_​sum

Total number of probe requests over all TCC instances.

TCC_​PROBE_​ALL_​sum

Total number of external probe requests with EA_TCC_preq_all== 1, over all TCC instances.

TCC_​READ_​sum

Total number of L2 cache read requests (including compressed reads but not metadata reads) over all TCC instances.

TCC_​REQ_​sum

Total number of all types of L2 cache requests over all TCC instances.

TCC_​RW_​REQ_​sum

Total number of RW requests over all TCC instances.

TCC_​STREAMING_​REQ_​sum

Total number of L2 cache streaming requests over all TCC instances.

TCC_​TAG_​STALL_​sum

Total number of cycles the normal request pipeline in the tag is stalled for any reason, over all TCC instances.

TCC_​TOO_​MANY_​EA_​WRREQS_​STALL_​sum

Total number of cycles L2 cache is unable to send an EA write request due to it reaching its maximum capacity of pending EA write requests, over all TCC instances.

TCC_​UC_​REQ_​sum

Total number of UC requests over all TCC instances.

TCC_​WRITE_​sum

Total number of L2 cache write requests over all TCC instances.

TCC_​WRITEBACK_​sum

Total number of lines written back to the main memory including writebacks of dirty lines and uncached write/atomic requests, over all TCC instances.

TCC_​WRREQ_​STALL_​max

Maximum number of cycles a write request is stalled, over all TCC instances.

TCP_​ATOMIC_​TAGCONFLICT_​STALL_​CYCLES_​sum

Total number of cycles tagram conflict stalls on an atomic, over all TCP instances.

TCP_​GATE_​EN1_​sum

Total number of cycles vL1D interface clocks are turned on, over all TCP instances.

TCP_​GATE_​EN2_​sum

Total number of cycles vL1D core clocks are turned on, over all TCP instances.

TCP_​PENDING_​STALL_​CYCLES_​sum

Total number of cycles vL1D cache is stalled due to data pending from L2 Cache, over all TCP instances.

TCP_​READ_​TAGCONFLICT_​STALL_​CYCLES_​sum

Total number of cycles tagram conflict stalls on a read, over all TCP instances.

TCP_​TA_​TCP_​STATE_​READ_​sum

Total number of state reads by all TCP instances.

TCP_​TCC_​ATOMIC_​WITH_​RET_​REQ_​sum

Total number of atomic requests to L2 cache with return, over all TCP instances.

TCP_​TCC_​ATOMIC_​WITHOUT_​RET_​REQ_​sum

Total number of atomic requests to L2 cache without return, over all TCP instances.

TCP_​TCC_​CC_​READ_​REQ_​sum

Total number of CC read requests to L2 cache, over all TCP instances.

TCP_​TCC_​CC_​WRITE_​REQ_​sum

Total number of CC write requests to L2 cache, over all TCP instances.

TCP_​TCC_​CC_​ATOMIC_​REQ_​sum

Total number of CC atomic requests to L2 cache, over all TCP instances.

TCP_​TCC_​NC_​READ_​REQ_​sum

Total number of NC read requests to L2 cache, over all TCP instances.

TCP_​TCC_​NC_​WRITE_​REQ_​sum

Total number of NC write requests to L2 cache, over all TCP instances.

TCP_​TCC_​NC_​ATOMIC_​REQ_​sum

Total number of NC atomic requests to L2 cache, over all TCP instances.

TCP_​TCC_​READ_​REQ_​LATENCY_​sum

Total vL1D to L2 request latency over all wavefronts for reads and atomics with return for all TCP instances.

TCP_​TCC_​READ_​REQ_​sum

Total number of read requests to L2 cache, over all TCP instances.

TCP_​TCC_​RW_​READ_​REQ_​sum

Total number of RW read requests to L2 cache, over all TCP instances.

TCP_​TCC_​RW_​WRITE_​REQ_​sum

Total number of RW write requests to L2 cache, over all TCP instances.

TCP_​TCC_​RW_​ATOMIC_​REQ_​sum

Total number of RW atomic requests to L2 cache, over all TCP instances.

TCP_​TCC_​UC_​READ_​REQ_​sum

Total number of UC read requests to L2 cache, over all TCP instances.

TCP_​TCC_​UC_​WRITE_​REQ_​sum

Total number of UC write requests to L2 cache, over all TCP instances.

TCP_​TCC_​UC_​ATOMIC_​REQ_​sum

Total number of UC atomic requests to L2 cache, over all TCP instances.

TCP_​TCC_​WRITE_​REQ_​LATENCY_​sum

Total vL1D to L2 request latency over all wavefronts for writes and atomics without return for all TCP instances.

TCP_​TCC_​WRITE_​REQ_​sum

Total number of write requests to L2 cache, over all TCP instances.

TCP_​TCP_​LATENCY_​sum

Total wave access latency to vL1D over all wavefronts for all TCP instances.

TCP_​TCR_​TCP_​STALL_​CYCLES_​sum

Total number of cycles TCR stalls vL1D, over all TCP instances.

TCP_​TD_​TCP_​STALL_​CYCLES_​sum

Total number of cycles TD stalls vL1D, over all TCP instances.

TCP_​TOTAL_​ACCESSES_​sum

Total number of vL1D accesses, over all TCP instances.

TCP_​TOTAL_​READ_​sum

Total number of vL1D read accesses, over all TCP instances.

TCP_​TOTAL_​WRITE_​sum

Total number of vL1D write accesses, over all TCP instances.

TCP_​TOTAL_​ATOMIC_​WITH_​RET_​sum

Total number of vL1D atomic requests with return, over all TCP instances.

TCP_​TOTAL_​ATOMIC_​WITHOUT_​RET_​sum

Total number of vL1D atomic requests without return, over all TCP instances.

TCP_​TOTAL_​CACHE_​ACCESSES_​sum

Total number of vL1D cache accesses (including hits and misses) by all TCP instances.

TCP_​TOTAL_​WRITEBACK_​INVALIDATES_​sum

Total number of vL1D writebacks and invalidates, over all TCP instances.

TCP_​UTCL1_​PERMISSION_​MISS_​sum

Total number of UTCL1 permission misses by all TCP instances.

TCP_​UTCL1_​REQUEST_​sum

Total number of address translation requests to UTCL1 by all TCP instances.

TCP_​UTCL1_​TRANSLATION_​MISS_​sum

Total number of UTCL1 translation misses by all TCP instances.

TCP_​UTCL1_​TRANSLATION_​HIT_​sum

Total number of UTCL1 translation hits by all TCP instances.

TCP_​VOLATILE_​sum

Total number of L1 volatile pixels/buffers from TA, over all TCP instances.

TCP_​WRITE_​TAGCONFLICT_​STALL_​CYCLES_​sum

Total number of cycles tagram conflict stalls on a write, over all TCP instances.

TD_​ATOMIC_​WAVEFRONT_​sum

Total number of atomic wavefront instructions, over all TD instances.

TD_​COALESCABLE_​WAVEFRONT_​sum

Total number of coalescable wavefronts according to TA, over all TD instances.

TD_​LOAD_​WAVEFRONT_​sum

Total number of wavefront instructions (read/write/atomic), over all TD instances.

TD_​SPI_​STALL_​sum

Total number of cycles TD is stalled by SPI, over all TD instances.

TD_​STORE_​WAVEFRONT_​sum

Total number of write wavefront instructions, over all TD instances.

TD_​TC_​STALL_​sum

Total number of cycles TD is stalled waiting for TC data, over all TD instances.

TD_​TD_​BUSY_​sum

Total number of TD busy cycles while it is processing or waiting for data, over all TD instances.

VALUBusy

Percentage of GPU time vector ALU instructions are processed. Value range: 0% (bad) to 100% (optimal).

VALUInsts

Average number of vector ALU instructions executed per work item (affected by flow control).

VALUUtilization

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).

VFetch​Insts

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.

VWrite​Insts

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.

Wavefronts

Total wavefronts.

WRITE_​REQ_​32B

Total number of 32-byte effective memory writes.

Write​Size

Total kilobytes written to the video memory. This is measured with all extra fetches and any cache or memory effects taken into account.

Write​Unit​Stalled

Percentage of GPU time the write unit is stalled. Value range: 0% to 100% (bad).

Abbreviations#

Abbreviation

Meaning

ALU

Arithmetic Logic Unit

Arb

Arbiter

BF16

Brain Floating Point - 16 bits

CC

Coherently Cached

CP

Command Processor

CPC

Command Processor - Compute

CPF

Command Processor - Fetcher

CS

Compute Shader

CSC

Compute Shader Controller

CSn

Compute Shader, the n-th pipe

CU

Compute Unit

DW

32-bit Data Word, DWORD

EA

Efficiency Arbiter

F16

Half Precision Floating Point

F32

Full Precision Floating Point

FLAT

FLAT instructions allow read/write/atomic access to a generic memory address pointer, which can resolve to any of the following physical memories:
. Global Memory
. Scratch (“private”)
. LDS (“shared”)
. Invalid - MEM_VIOL TrapStatus

FMA

Fused Multiply Add

GDS

Global Data Share

GRBM

Graphics Register Bus Manager

HBM

High Bandwidth Memory

Instr

Instructions

IOP

Integer Operation

L2

Level-2 Cache

LDS

Local Data Share

ME1

Micro Engine, running packet processing firmware on CPC

MFMA

Matrix Fused Multiply Add

NC

Noncoherently Cached

RW

Coherently Cached with Write

SALU

Scalar ALU

SGPR

Scalar General Purpose Register

SIMD

Single Instruction Multiple Data

s​L1D

Scalar Level-1 Data Cache

SMEM

Scalar Memory

SPI

Shader Processor Input

SQ

Sequencer

TA

Texture Addressing Unit

TC

Texture Cache

TCA

Texture Cache Arbiter

TCC

Texture Cache per Channel, known as L2 Cache

TCIU

Texture Cache Interface Unit (interface between CP and the memory system)

TCP

Texture Cache per Pipe, known as vector L1 Cache

TCR

Texture Cache Router

TD

Texture Data Unit

UC

Uncached

UTCL1

Unified Translation Cache - Level 1

UTCL2

Unified Translation Cache - Level 2

VALU

Vector ALU

VGPR

Vector General Purpose Register

v​L1D

Vector Level -1 Data Cache

VMEM

Vector Memory