MI300 and MI200 series performance counters and metrics#

Applies to Linux and Windows

2024-02-20

52 min read time

This document lists and describes the hardware performance counters and derived metrics available for the AMD Instinct™ MI300 and MI200 GPU. You can also access this information using the ROCProfiler tool.

MI300 and MI200 series performance counters#

Series performance counters include the following categories:

The following sections provide additional details for each category.

Note

Preliminary validation of all MI300 and MI200 series performance counters is in progress. Those with an asterisk (*) require further evaluation.

Command processor counters#

Command processor counters are further classified into command processor-fetcher and command processor-compute.

Command processor-fetcher counters#

Hardware counter

Unit

Definition

CPF_​CMP_​UTCL1_​STALL_​ON_​TRANSLATION

Cycles

Number of cycles one of the compute unified translation caches (L1) is stalled waiting on translation

CPF_​CPF_​STAT_​BUSY

Cycles

Number of cycles command processor-fetcher is busy

CPF_​CPF_​STAT_​IDLE

Cycles

Number of cycles command processor-fetcher is idle

CPF_​CPF_​STAT_​STALL

Cycles

Number of cycles command processor-fetcher is stalled

CPF_​CPF_​TCIU_​BUSY

Cycles

Number of cycles command processor-fetcher texture cache interface unit interface is busy

CPF_​CPF_​TCIU_​IDLE

Cycles

Number of cycles command processor-fetcher texture cache interface unit interface is idle

CPF_​CPF_​TCIU_​STALL

Cycles

Number of cycles command processor-fetcher texture cache interface unit interface is stalled waiting on free tags

The texture cache interface unit is the interface between the command processor and the memory system.

Command processor-compute counters#

Hardware counter

Unit

Definition

CPC_​ME1_​BUSY_​FOR_​PACKET_​DECODE

Cycles

Number of cycles command processor-compute micro engine is busy decoding packets

CPC_​UTCL1_​STALL_​ON_​TRANSLATION

Cycles

Number of cycles one of the unified translation caches (L1) is stalled waiting on translation

CPC_​CPC_​STAT_​BUSY

Cycles

Number of cycles command processor-compute is busy

CPC_​CPC_​STAT_​IDLE

Cycles

Number of cycles command processor-compute is idle

CPC_​CPC_​STAT_​STALL

Cycles

Number of cycles command processor-compute is stalled

CPC_​CPC_​TCIU_​BUSY

Cycles

Number of cycles command processor-compute texture cache interface unit interface is busy

CPC_​CPC_​TCIU_​IDLE

Cycles

Number of cycles command processor-compute texture cache interface unit interface is idle

CPC_​CPC_​UTCL2IU_​BUSY

Cycles

Number of cycles command processor-compute unified translation cache (L2) interface is busy

CPC_​CPC_​UTCL2IU_​IDLE

Cycles

Number of cycles command processor-compute unified translation cache (L2) interface is idle

CPC_​CPC_​UTCL2IU_​STALL

Cycles

Number of cycles command processor-compute unified translation cache (L2) interface is stalled

CPC_​ME1_​DC0_​SPI_​BUSY

Cycles

Number of cycles command processor-compute micro engine processor is busy

The micro engine runs packet-processing firmware on the command processor-compute counter.

Graphics register bus manager 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 blocks are busy

GRBM_​SPI_​BUSY

Cycles

Number of cycles any of the shader processor input is busy in the shader engines

GRBM_​TA_​BUSY

Cycles

Number of cycles any of the texture addressing unit is busy in the shader engines

GRBM_​TC_​BUSY

Cycles

Number of cycles any of the texture cache blocks are busy

GRBM_​CPC_​BUSY

Cycles

Number of cycles the command processor-compute is busy

GRBM_​CPF_​BUSY

Cycles

Number of cycles the command processor-fetcher is busy

GRBM_​UTCL2_​BUSY

Cycles

Number of cycles the unified translation cache (Level 2 [L2]) block is busy

GRBM_​EA_​BUSY

Cycles

Number of cycles the efficiency arbiter block is busy

Texture cache blocks include:

  • Texture cache arbiter

  • Texture cache per pipe, also known as vector Level 1 (L1) cache

  • Texture cache per channel, also known as known as L2 cache

  • Texture cache interface

Shader processor input 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 arbiter cycles with requests but no allocation

SPI_​RA_​REQ_​NO_​ALLOC_​CSN

Cycles

Number of arbiter cycles with compute shader (nth pipe) requests but no compute shader (nth pipe) allocation

SPI_​RA_​RES_​STALL_​CSN

Cycles

Number of arbiter stall cycles due to shortage of compute shader (nth pipe) 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 (SIMD) per cycle affected by shortage of wave slots for compute shader (nth pipe) wave dispatch

SPI_​RA_​VGPR_​SIMD_​FULL_​CSN

SIMD-cycles

Accumulated number of SIMDs per cycle affected by shortage of vector general-purpose register (VGPR) slots for compute shader (nth pipe) wave dispatch

SPI_​RA_​SGPR_​SIMD_​FULL_​CSN

SIMD-cycles

Accumulated number of SIMDs per cycle affected by shortage of scalar general-purpose register (SGPR) slots for compute shader (nth pipe) wave dispatch

SPI_​RA_​LDS_​CU_​FULL_​CSN

CU

Number of compute units affected by shortage of local data share (LDS) space for compute shader (nth pipe) wave dispatch

SPI_​RA_​BAR_​CU_​FULL_​CSN

CU

Number of compute units with compute shader (nth pipe) waves waiting at a BARRIER

SPI_​RA_​BULKY_​CU_​FULL_​CSN

CU

Number of compute units with compute shader (nth pipe) waves waiting for BULKY resource

SPI_​RA_​TGLIM_​CU_​FULL_​CSN

Cycles

Number of compute shader (nth pipe) wave stall cycles due to restriction of tg_​limit for thread group size

SPI_​RA_​WVLIM_​STALL_​CSN

Cycles

Number of cycles compute shader (nth pipe) is stalled due to WAVE_​LIMIT

SPI_​VWC_​CSC_​WR

Qcycles

Number of quad-cycles taken to initialize VGPRs when launching waves

SPI_​SWC_​CSC_​WR

Qcycles

Number of quad-cycles taken to initialize SGPRs when launching waves

Compute unit counters#

The compute unit counters are further classified into instruction mix, matrix fused multiply-add (FMA) operation counters, level counters, wavefront counters, wavefront cycle counters, and 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 matrix FMA issued

SQ_​INSTS_​VALU_​ADD_​F16

Instr

Number of VALU half-precision floating-point (F16) ADD or 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 FMA or multiply-add 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 or 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 FMAor multiply-add 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 or 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 or multiply-add 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 matrix FMA instructions issued

SQ_​INSTS_​VALU_​MFMA_​F16

Instr

Number of F16 matrix FMA instructions issued

SQ_​INSTS_​VALU_​MFMA_​F32

Instr

Number of F32 matrix FMA instructions issued

SQ_​INSTS_​VALU_​MFMA_​F64

Instr

Number of F64 matrix FMA instructions issued

SQ_​INSTS_​MFMA

Instr

Number of matrix FMA instructions issued

SQ_​INSTS_​VMEM_​WR

Instr

Number of vector memory write instructions (including flat) issued

SQ_​INSTS_​VMEM_​RD

Instr

Number of vector memory read instructions (including flat) issued

SQ_​INSTS_​VMEM

Instr

Number of vector memory instructions issued, including both flat and buffer instructions

SQ_​INSTS_​SALU

Instr

Number of scalar arithmetic logic unit (SALU) instructions issued

SQ_​INSTS_​SMEM

Instr

Number of scalar memory instructions issued

SQ_​INSTS_​SMEM_​NORM

Instr

Number of scalar memory instructions normalized to match smem_​level issued

SQ_​INSTS_​FLAT

Instr

Number of flat instructions issued

SQ_​INSTS_​FLAT_​LDS_​ONLY

Instr

MI200 series only 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 LDS instructions issued (MI200: includes flat; MI300: does not include flat)

SQ_​INSTS_​GDS

Instr

Number of global data share instructions issued

SQ_​INSTS_​EXP_​GDS

Instr

Number of EXP and global data share 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

Flat instructions allow read, write, and atomic access to a generic memory address pointer that can resolve to any of the following physical memories:

  • Global Memory

  • Scratch (“private”)

  • LDS (“shared”)

  • Invalid - MEM_VIOL TrapStatus

Matrix fused multiply-add operation counters#

Hardware counter

Unit

Definition

SQ_​INSTS_​VALU_​MFMA_​MOPS_​I8

IOP

Number of 8-bit integer matrix FMA ops in the unit of 512

SQ_​INSTS_​VALU_​MFMA_​MOPS_​F16

FLOP

Number of F16 floating matrix FMA ops in the unit of 512

SQ_​INSTS_​VALU_​MFMA_​MOPS_​BF16

FLOP

Number of BF16 floating matrix FMA ops in the unit of 512

SQ_​INSTS_​VALU_​MFMA_​MOPS_​F32

FLOP

Number of F32 floating matrix FMA ops in the unit of 512

SQ_​INSTS_​VALU_​MFMA_​MOPS_​F64

FLOP

Number of F64 floating matrix FMA 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

SQ_​INST_​LEVEL_​VMEM

Instr

Number of inflight vector memory (including flat) instructions

SQ_​INST_​LEVEL_​SMEM

Instr

Number of inflight scalar memory instructions

SQ_​INST_​LEVEL_​LDS

Instr

Number of inflight LDS (including flat) instructions

SQ_​IFETCH_​LEVEL

Instr

Number of inflight instruction fetch requests from the cache

Use the following formulae to calculate latencies:

  • Vector memory latency = SQ_ACCUM_PREV_HIRES divided by SQ_INSTS_VMEM

  • Wave latency = SQ_ACCUM_PREV_HIRES divided by SQ_WAVE

  • LDS latency = SQ_ACCUM_PREV_HIRES divided by SQ_INSTS_LDS

  • Scalar memory latency = SQ_ACCUM_PREV_HIRES divided by SQ_INSTS_SMEM_NORM

  • Instruction fetch latency = SQ_ACCUM_PREV_HIRES divided by SQ_IFETCH

Wavefront counters#

Hardware counter

Unit

Definition

SQ_​WAVES

Waves

Number of wavefronts dispatched to sequencers, 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 sequencers

SQ_​WAVES_​EQ_​64

Waves

Number of wavefronts with exactly 64 active threads sent to sequencers

SQ_​WAVES_​LT_​64

Waves

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

SQ_​WAVES_​LT_​48

Waves

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

SQ_​WAVES_​LT_​32

Waves

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

SQ_​WAVES_​LT_​16

Waves

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

Wavefront cycle counters#

Hardware counter

Unit

Definition

SQ_​CYCLES

Cycles

Clock cycles

SQ_​BUSY_​CYCLES

Cycles

Number of cycles while sequencers reports it to be busy

SQ_​BUSY_​CU_​CYCLES

Qcycles

Number of quad-cycles each compute unit is busy

SQ_​VALU_​MFMA_​BUSY_​CYCLES

Cycles

Number of cycles the matrix FMA arithmetic logic unit (ALU) is busy

SQ_​WAVE_​CYCLES

Qcycles

Number of quad-cycles spent by waves in the compute units

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 sequencer instruction arbiter to work on a vector memory instruction

SQ_​ACTIVE_​INST_​LDS

Qcycles

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

SQ_​ACTIVE_​INST_​VALU

Qcycles

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

SQ_​ACTIVE_​INST_​SCA

Qcycles

Number of quad-cycles spent by the sequencer instruction arbiter to work on a SALU or scalar memory instruction

SQ_​ACTIVE_​INST_​EXP_​GDS

Qcycles

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

SQ_​ACTIVE_​INST_​MISC

Qcycles

Number of quad-cycles spent by the sequencer instruction arbiter to work on a BRANCH or SENDMSG instruction

SQ_​ACTIVE_​INST_​FLAT

Qcycles

Number of quad-cycles spent by the sequencer 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 vector memory write instructions

SQ_​INST_​CYCLES_​VMEM_​RD

Qcycles

Number of quad-cycles spent to send addr and cmd data for vector memory 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

Qcycles

Number of quad-cycles spent to execute VALU operations on active threads

SQ_​WAIT_​INST_​LDS

Qcycles

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

SQ_THREAD_CYCLES_VALU is similar to INST_CYCLES_VALU, but it’s multiplied by the number of active threads.

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 or store operations

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, in 32-byte width

SQ_​ITEMS

Threads

Number of valid items per wave

L1 instruction cache (L1i) and scalar L1 data cache (L1d) counters#

Hardware counter

Unit

Definition

SQC_​ICACHE_​REQ

Req

Number of L1 instruction (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 scalar L1d requests

SQC_​DCACHE_​INPUT_​VALID_​READYB

Cycles

Number of cycles while sequencer input is valid but scalar L1d is not ready

SQC_​DCACHE_​HITS

Count

Number of scalar L1d hits

SQC_​DCACHE_​MISSES

Count

Number of non-duplicate scalar L1d misses including uncached requests

SQC_​DCACHE_​MISSES_​DUPLICATE

Count

Number of duplicate scalar L1d misses

SQC_​DCACHE_​REQ_​READ_​1

Req

Number of constant cache read requests in a single 32-bit data word

SQC_​DCACHE_​REQ_​READ_​2

Req

Number of constant cache read requests in two 32-bit data words

SQC_​DCACHE_​REQ_​READ_​4

Req

Number of constant cache read requests in four 32-bit data words

SQC_​DCACHE_​REQ_​READ_​8

Req

Number of constant cache read requests in eight 32-bit data words

SQC_​DCACHE_​REQ_​READ_​16

Req

Number of constant cache read requests in 16 32-bit data words

SQC_​DCACHE_​ATOMIC

Req

Number of atomic requests

SQC_​TC_​REQ

Req

Number of texture cache 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 counters#

The vector L1 cache subsystem counters are further classified into texture addressing unit, texture data unit, vector L1d or texture cache per pipe, and texture cache arbiter counters.

Texture addressing unit counters#

Hardware counter

Unit

Definition

Value range for n

TA_​TA_​BUSY[n]

Cycles

Texture addressing unit busy cycles

0-15

TA_​TOTAL_​WAVEFRONTS[n]

Instr

Number of wavefronts processed by texture addressing unit

0-15

TA_​BUFFER_​WAVEFRONTS[n]

Instr

Number of buffer wavefronts processed by texture addressing unit

0-15

TA_​BUFFER_​READ_​WAVEFRONTS[n]

Instr

Number of buffer read wavefronts processed by texture addressing unit

0-15

TA_​BUFFER_​WRITE_​WAVEFRONTS[n]

Instr

Number of buffer write wavefronts processed by texture addressing unit

0-15

TA_​BUFFER_​ATOMIC_​WAVEFRONTS[n]

Instr

Number of buffer atomic wavefronts processed by texture addressing unit

0-15

TA_​BUFFER_​TOTAL_​CYCLES[n]

Cycles

Number of buffer cycles (including read and write) issued to texture cache

0-15

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

Cycles

Number of coalesced buffer read cycles issued to texture cache

0-15

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

Cycles

Number of coalesced buffer write cycles issued to texture cache

0-15

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

Cycles

Number of cycles texture addressing unit address path is stalled by texture cache

0-15

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

Cycles

Number of cycles texture addressing unit data path is stalled by texture cache

0-15

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

Cycles

Number of cycles texture addressing unit address path is stalled by texture data unit

0-15

TA_​FLAT_​WAVEFRONTS[n]

Instr

Number of flat opcode wavefronts processed by texture addressing unit

0-15

TA_​FLAT_​READ_​WAVEFRONTS[n]

Instr

Number of flat opcode read wavefronts processed by texture addressing unit

0-15

TA_​FLAT_​WRITE_​WAVEFRONTS[n]

Instr

Number of flat opcode write wavefronts processed by texture addressing unit

0-15

TA_​FLAT_​ATOMIC_​WAVEFRONTS[n]

Instr

Number of flat opcode atomic wavefronts processed by texture addressing unit

0-15

Texture data unit counters#

Hardware counter

Unit

Definition

Value range for n

TD_​TD_​BUSY[n]

Cycle

Texture data unit busy cycles while it is processing or waiting for data

0-15

TD_​TC_​STALL[n]

Cycle

Number of cycles texture data unit is stalled waiting for texture cache data

0-15

TD_​SPI_​STALL[n]

Cycle

Number of cycles texture data unit is stalled by shader processor input

0-15

TD_​LOAD_​WAVEFRONT[n]

Instr

Number of wavefront instructions (read, write, atomic)

0-15

TD_​STORE_​WAVEFRONT[n]

Instr

Number of write wavefront instructions

0-15

TD_​ATOMIC_​WAVEFRONT[n]

Instr

Number of atomic wavefront instructions

0-15

TD_​COALESCABLE_​WAVEFRONT[n]

Instr

Number of coalescable wavefronts according to texture addressing unit

0-15

Texture cache per pipe counters#

Hardware counter

Unit

Definition

Value range for n

TCP_​GATE_​EN1[n]

Cycles

Number of cycles vector L1d interface clocks are turned on

0-15

TCP_​GATE_​EN2[n]

Cycles

Number of cycles vector L1d core clocks are turned on

0-15

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

Cycles

Number of cycles texture data unit stalls vector L1d

0-15

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

Cycles

Number of cycles texture cache router stalls vector L1d

0-15

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

Cycles

Number of cycles tag RAM conflict stalls on a read

0-15

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

Cycles

Number of cycles tag RAM conflict stalls on a write

0-15

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

Cycles

Number of cycles tag RAM conflict stalls on an atomic

0-15

TCP_​PENDING_​STALL_​CYCLES[n]

Cycles

Number of cycles vector L1d is stalled due to data pending from L2 Cache

0-15

TCP_​TCP_​TA_​DATA_​STALL_​CYCLES

Cycles

Number of cycles texture cache per pipe stalls texture addressing unit data interface

NA

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

Req

Number of state reads

0-15

TCP_​VOLATILE[n]

Req

Number of L1 volatile pixels or buffers from texture addressing unit

0-15

TCP_​TOTAL_​ACCESSES[n]

Req

Number of vector L1d accesses. Equals TCP_​PERF_​SEL_​TOTAL_​READ`+`TCP_​PERF_​SEL_​TOTAL_​NONREAD

0-15

TCP_​TOTAL_​READ[n]

Req

Number of vector L1d read accesses

0-15

TCP_​TOTAL_​WRITE[n]

Req

Number of vector L1d write accesses

0-15

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

Req

Number of vector L1d atomic requests with return

0-15

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

Req

Number of vector L1d atomic without return

0-15

TCP_​TOTAL_​WRITEBACK_​INVALIDATES[n]

Count

Total number of vector L1d writebacks and invalidates

0-15

TCP_​UTCL1_​REQUEST[n]

Req

Number of address translation requests to unified translation cache (L1)

0-15

TCP_​UTCL1_​TRANSLATION_​HIT[n]

Req

Number of unified translation cache (L1) translation hits

0-15

TCP_​UTCL1_​TRANSLATION_​MISS[n]

Req

Number of unified translation cache (L1) translation misses

0-15

TCP_​UTCL1_​PERMISSION_​MISS[n]

Req

Number of unified translation cache (L1) permission misses

0-15

TCP_​TOTAL_​CACHE_​ACCESSES[n]

Req

Number of vector L1d cache accesses including hits and misses

0-15

TCP_​TCP_​LATENCY[n]

Cycles

MI200 series only Accumulated wave access latency to vL1D over all wavefronts

0-15

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

Cycles

MI200 series only Total vL1D to L2 request latency over all wavefronts for reads and atomics with return

0-15

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

Cycles

MI200 series only Total vL1D to L2 request latency over all wavefronts for writes and atomics without return

0-15

TCP_​TCC_​READ_​REQ[n]

Req

Number of read requests to L2 cache

0-15

TCP_​TCC_​WRITE_​REQ[n]

Req

Number of write requests to L2 cache

0-15

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

Req

Number of atomic requests to L2 cache with return

0-15

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

Req

Number of atomic requests to L2 cache without return

0-15

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

Req

Number of non-coherently cached read requests to L2 cache

0-15

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

Req

Number of uncached read requests to L2 cache

0-15

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

Req

Number of coherently cached read requests to L2 cache

0-15

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

Req

Number of coherently cached with write read requests to L2 cache

0-15

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

Req

Number of non-coherently cached write requests to L2 cache

0-15

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

Req

Number of uncached write requests to L2 cache

0-15

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

Req

Number of coherently cached write requests to L2 cache

0-15

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

Req

Number of coherently cached with write write requests to L2 cache

0-15

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

Req

Number of non-coherently cached atomic requests to L2 cache

0-15

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

Req

Number of uncached atomic requests to L2 cache

0-15

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

Req

Number of coherently cached atomic requests to L2 cache

0-15

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

Req

Number of coherently cached with write atomic requests to L2 cache

0-15

Note that:

  • TCP_TOTAL_READ[n] = TCP_PERF_SEL_TOTAL_HIT_LRU_READ + TCP_PERF_SEL_TOTAL_MISS_LRU_READ + TCP_PERF_SEL_TOTAL_MISS_EVICT_READ

  • TCP_TOTAL_WRITE[n] = TCP_PERF_SEL_TOTAL_MISS_LRU_WRITE``+ ``TCP_PERF_SEL_TOTAL_MISS_EVICT_WRITE

  • TCP_TOTAL_WRITEBACK_INVALIDATES[n] = TCP_PERF_SEL_TOTAL_WBINVL1``+ ``TCP_PERF_SEL_TOTAL_WBINVL1_VOL``+ ``TCP_PERF_SEL_CP_TCP_INVALIDATE``+ ``TCP_PERF_SEL_SQ_TCP_INVALIDATE_VOL

Texture cache arbiter counters#

Hardware counter

Unit

Definition

Value range for n

TCA_​CYCLE[n]

Cycles

Number of texture cache arbiter cycles

0-31

TCA_​BUSY[n]

Cycles

Number of cycles texture cache arbiter has a pending request

0-31

L2 cache access counters#

L2 cache is also known as texture cache per channel.

Hardware counter

Unit

Definition

Value range for n

TCC_​CYCLE[n]

Cycles

Number of L2 cache free-running clocks

0-31

TCC_​BUSY[n]

Cycles

Number of L2 cache busy cycles

0-31

TCC_​REQ[n]

Req

Number of L2 cache requests of all types (measured at the tag block)

0-31

TCC_​STREAMING_​REQ[n]

Req

Number of L2 cache streaming requests (measured at the tag block)

0-31

TCC_​NC_​REQ[n]

Req

Number of non-coherently cached requests (measured at the tag block)

0-31

TCC_​UC_​REQ[n]

Req

Number of uncached requests. This is measured at the tag block

0-31

TCC_​CC_​REQ[n]

Req

Number of coherently cached requests. This is measured at the tag block

0-31

TCC_​RW_​REQ[n]

Req

Number of coherently cached with write requests. This is measured at the tag block

0-31

TCC_​PROBE[n]

Req

Number of probe requests

0-31

TCC_​PROBE_​ALL[n]

Req

Number of external probe requests with EA_​TCC_​preq_​all == 1

0-31

TCC_​READ[n]

Req

Number of L2 cache read requests (includes compressed reads but not metadata reads)

0-31

TCC_​WRITE[n]

Req

Number of L2 cache write requests

0-31

TCC_​ATOMIC[n]

Req

Number of L2 cache atomic requests of all types

0-31

TCC_​HIT[n]

Req

Number of L2 cache hits

0-31

TCC_​MISS[n]

Req

Number of L2 cache misses

0-31

TCC_​WRITEBACK[n]

Req

Number of lines written back to the main memory, including writebacks of dirty lines and uncached write or atomic requests

0-31

TCC_​EA0_​WRREQ[n]

Req

Number of 32-byte and 64-byte transactions going over the TC_​EA_​wrreq interface (doesn’t include probe commands)

0-31

TCC_​EA0_​WRREQ_​64B[n]

Req

Total number of 64-byte transactions (write or CMPSWAP) going over the TC_​EA_​wrreq interface

0-31

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

Req

Number of 32 or 64-byte write or atomic going over the TC_​EA_​wrreq interface due to uncached traffic

0-31

TCC_​EA0_​WRREQ_​STALL[n]

Cycles

Number of cycles a write request is stalled

0-31

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

Cycles

Number of cycles an efficiency arbiter write request is stalled due to the interface running out of input-output (IO) credits

0-31

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

Cycles

Number of cycles an efficiency arbiter write request is stalled due to the interface running out of GMI credits

0-31

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

Cycles

Number of cycles an efficiency arbiter write request is stalled due to the interface running out of DRAM credits

0-31

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

Cycles

Number of cycles the L2 cache is unable to send an efficiency arbiter write request due to it reaching its maximum capacity of pending efficiency arbiter write requests

0-31

TCC_​EA0_​WRREQ_​LEVEL[n]

Req

The accumulated number of efficiency arbiter write requests in flight

0-31

TCC_​EA0_​ATOMIC[n]

Req

Number of 32-byte or 64-byte atomic requests going over the TC_​EA_​wrreq interface

0-31

TCC_​EA0_​ATOMIC_​LEVEL[n]

Req

The accumulated number of efficiency arbiter atomic requests in flight

0-31

TCC_​EA0_​RDREQ[n]

Req

Number of 32-byte or 64-byte read requests to efficiency arbiter

0-31

TCC_​EA0_​RDREQ_​32B[n]

Req

Number of 32-byte read requests to efficiency arbiter

0-31

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

Req

Number of 32-byte efficiency arbiter reads due to uncached traffic. A 64-byte request is counted as 2

0-31

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

Cycles

Number of cycles there is a stall due to the read request interface running out of IO credits

0-31

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

Cycles

Number of cycles there is a stall due to the read request interface running out of GMI credits

0-31

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

Cycles

Number of cycles there is a stall due to the read request interface running out of DRAM credits

0-31

TCC_​EA0_​RDREQ_​LEVEL[n]

Req

The accumulated number of efficiency arbiter read requests in flight

0-31

TCC_​EA0_​RDREQ_​DRAM[n]

Req

Number of 32-byte or 64-byte efficiency arbiter read requests to High Bandwidth Memory (HBM)

0-31

TCC_​EA0_​WRREQ_​DRAM[n]

Req

Number of 32-byte or 64-byte efficiency arbiter write requests to HBM

0-31

TCC_​TAG_​STALL[n]

Cycles

Number of cycles the normal request pipeline in the tag is stalled for any reason

0-31

TCC_​NORMAL_​WRITEBACK[n]

Req

Number of writebacks due to requests that are not writeback requests

0-31

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

Req

Number of writebacks due to all TC_​OP writeback requests

0-31

TCC_​NORMAL_​EVICT[n]

Req

Number of evictions due to requests that are not invalidate or probe requests

0-31

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

Req

Number of evictions due to all TC_​OP invalidate requests

0-31

Hardware counter

Unit

Definition

Value range for n

TCC_​CYCLE[n]

Cycles

Number of L2 cache free-running clocks

0-31

TCC_​BUSY[n]

Cycles

Number of L2 cache busy cycles

0-31

TCC_​REQ[n]

Req

Number of L2 cache requests of all types (measured at the tag block)

0-31

TCC_​STREAMING_​REQ[n]

Req

Number of L2 cache streaming requests (measured at the tag block)

0-31

TCC_​NC_​REQ[n]

Req

Number of non-coherently cached requests (measured at the tag block)

0-31

TCC_​UC_​REQ[n]

Req

Number of uncached requests. This is measured at the tag block

0-31

TCC_​CC_​REQ[n]

Req

Number of coherently cached requests. This is measured at the tag block

0-31

TCC_​RW_​REQ[n]

Req

Number of coherently cached with write requests. This is measured at the tag block

0-31

TCC_​PROBE[n]

Req

Number of probe requests

0-31

TCC_​PROBE_​ALL[n]

Req

Number of external probe requests with EA_​TCC_​preq_​all == 1

0-31

TCC_​READ[n]

Req

Number of L2 cache read requests (includes compressed reads but not metadata reads)

0-31

TCC_​WRITE[n]

Req

Number of L2 cache write requests

0-31

TCC_​ATOMIC[n]

Req

Number of L2 cache atomic requests of all types

0-31

TCC_​HIT[n]

Req

Number of L2 cache hits

0-31

TCC_​MISS[n]

Req

Number of L2 cache misses

0-31

TCC_​WRITEBACK[n]

Req

Number of lines written back to the main memory, including writebacks of dirty lines and uncached write or atomic requests

0-31

TCC_​EA_​WRREQ[n]

Req

Number of 32-byte and 64-byte transactions going over the TC_​EA_​wrreq interface (doesn’t include probe commands)

0-31

TCC_​EA_​WRREQ_​64B[n]

Req

Total number of 64-byte transactions (write or CMPSWAP) going over the TC_​EA_​wrreq interface

0-31

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

Req

Number of 32 write or atomic going over the TC_​EA_​wrreq interface due to uncached traffic. A 64-byte request will be counted as 2

0-31

TCC_​EA_​WRREQ_​STALL[n]

Cycles

Number of cycles a write request is stalled

0-31

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

Cycles

Number of cycles an efficiency arbiter write request is stalled due to the interface running out of input-output (IO) credits

0-31

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

Cycles

Number of cycles an efficiency arbiter write request is stalled due to the interface running out of GMI credits

0-31

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

Cycles

Number of cycles an efficiency arbiter write request is stalled due to the interface running out of DRAM credits

0-31

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

Cycles

Number of cycles the L2 cache is unable to send an efficiency arbiter write request due to it reaching its maximum capacity of pending efficiency arbiter write requests

0-31

TCC_​EA_​WRREQ_​LEVEL[n]

Req

The accumulated number of efficiency arbiter write requests in flight

0-31

TCC_​EA_​ATOMIC[n]

Req

Number of 32-byte or 64-byte atomic requests going over the TC_​EA_​wrreq interface

0-31

TCC_​EA_​ATOMIC_​LEVEL[n]

Req

The accumulated number of efficiency arbiter atomic requests in flight

0-31

TCC_​EA_​RDREQ[n]

Req

Number of 32-byte or 64-byte read requests to efficiency arbiter

0-31

TCC_​EA_​RDREQ_​32B[n]

Req

Number of 32-byte read requests to efficiency arbiter

0-31

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

Req

Number of 32-byte efficiency arbiter reads due to uncached traffic. A 64-byte request is counted as 2

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

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

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

0-31

TCC_​EA_​RDREQ_​LEVEL[n]

Req

The accumulated number of efficiency arbiter read requests in flight

0-31

TCC_​EA_​RDREQ_​DRAM[n]

Req

Number of 32-byte or 64-byte efficiency arbiter read requests to High Bandwidth Memory (HBM)

0-31

TCC_​EA_​WRREQ_​DRAM[n]

Req

Number of 32-byte or 64-byte efficiency arbiter write requests to HBM

0-31

TCC_​TAG_​STALL[n]

Cycles

Number of cycles the normal request pipeline in the tag is stalled for any reason

0-31

TCC_​NORMAL_​WRITEBACK[n]

Req

Number of writebacks due to requests that are not writeback requests

0-31

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

Req

Number of writebacks due to all TC_​OP writeback requests

0-31

TCC_​NORMAL_​EVICT[n]

Req

Number of evictions due to requests that are not invalidate or probe requests

0-31

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

Req

Number of evictions due to all TC_​OP invalidate requests

0-31

Note the following:

  • TCC_REQ[n] may be more than the number of requests arriving at the texture cache per channel, but it’s a good indication of the total amount of work that needs to be performed.

  • For TCC_EA0_WRREQ[n], atomics may travel over the same interface and are generally classified as write requests.

  • CC mtypes can produce uncached requests, and those are included in TCC_EA0_WR_UNCACHED_32B[n]

  • TCC_EA0_WRREQ_LEVEL[n] is primarily intended to measure average efficiency arbiter write latency.

    • Average write latency = TCC_PERF_SEL_EA0_WRREQ_LEVEL divided by TCC_PERF_SEL_EA0_WRREQ

  • TCC_EA0_ATOMIC_LEVEL[n] is primarily intended to measure average efficiency arbiter atomic latency

    • Average atomic latency = TCC_PERF_SEL_EA0_WRREQ_ATOMIC_LEVEL divided by TCC_PERF_SEL_EA0_WRREQ_ATOMIC

  • TCC_EA0_RDREQ_LEVEL[n] is primarily intended to measure average efficiency arbiter read latency.

    • Average read latency = TCC_PERF_SEL_EA0_RDREQ_LEVEL divided by TCC_PERF_SEL_EA0_RDREQ

  • Stalls can occur regardless of the need for a read to be performed

  • Normally, stalls are measured exactly at one point in the pipeline however in the case of TCC_TAG_STALL[n], probes can stall the pipeline at a variety of places. There is no single point that can accurately measure the total stalls

MI300 and MI200 series derived metrics list#

Hardware counter

Definition

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 (value range: 0% (optimal) to 100%)

Fetch​Size

Total kilobytes fetched from the video memory; 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, run per work item (affected by flow control)

Flat​VMem​Insts

Average number of flat instructions that read from or write to the video memory, run per work item (affected by flow control). Includes flat instructions that read from or write to scratch

GDSInsts

Average number of global data share read or write instructions run 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%)

LDSInsts

Average number of LDS read or write instructions run 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, which 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 (value range: 0% (optimal) to 100%)

Mem​Writes32B

Total number of effective 32B write transactions to the memory

TCA_​BUSY_​sum

Total number of cycles texture cache arbiter has a pending request, over all texture cache arbiter instances

TCA_​CYCLE_​sum

Total number of cycles over all texture cache arbiter instances

SALUBusy

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

SALUInsts

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

SFetch​Insts

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

VALUBusy

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

VALUInsts

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

VALUUtilization

Percentage of active vector ALU threads in a wave, where 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%, 100% (optimal - no thread divergence))

VFetch​Insts

Average number of vector fetch instructions from the video memory run 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 run 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; 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% (optimal) to 100%)

You can lower ALUStalledByLDS by reducing LDS bank conflicts or number of LDS accesses. You can lower MemUnitStalled by reducing the number or size of fetches and writes. MemUnitBusy includes the stall time (MemUnitStalled).

Hardware counters by and over all texture addressing unit instances#

The following table shows the hardware counters by all texture addressing unit instances.

Hardware counter

Definition

TA_​BUFFER_​WAVEFRONTS_​sum

Total number of buffer wavefronts processed

TA_​BUFFER_​READ_​WAVEFRONTS_​sum

Total number of buffer read wavefronts processed

TA_​BUFFER_​WRITE_​WAVEFRONTS_​sum

Total number of buffer write wavefronts processed

TA_​BUFFER_​ATOMIC_​WAVEFRONTS_​sum

Total number of buffer atomic wavefronts processed

TA_​BUFFER_​TOTAL_​CYCLES_​sum

Total number of buffer cycles (including read and write) issued to texture cache

TA_​BUFFER_​COALESCED_​READ_​CYCLES_​sum

Total number of coalesced buffer read cycles issued to texture cache

TA_​BUFFER_​COALESCED_​WRITE_​CYCLES_​sum

Total number of coalesced buffer write cycles issued to texture cache

TA_​FLAT_​READ_​WAVEFRONTS_​sum

Sum of flat opcode reads processed

TA_​FLAT_​WRITE_​WAVEFRONTS_​sum

Sum of flat opcode writes processed

TA_​FLAT_​WAVEFRONTS_​sum

Total number of flat opcode wavefronts processed

TA_​FLAT_​READ_​WAVEFRONTS_​sum

Total number of flat opcode read wavefronts processed

TA_​FLAT_​ATOMIC_​WAVEFRONTS_​sum

Total number of flat opcode atomic wavefronts processed

TA_​TOTAL_​WAVEFRONTS_​sum

Total number of wavefronts processed

The following table shows the hardware counters over all texture addressing unit instances.

Hardware counter

Definition

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

Total number of cycles texture addressing unit address path is stalled by texture cache

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

Total number of cycles texture addressing unit address path is stalled by texture data unit

TA_​BUSY_​avr

Average number of busy cycles

TA_​BUSY_​max

Maximum number of texture addressing unit busy cycles

TA_​BUSY_​min

Minimum number of texture addressing unit busy cycles

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

Total number of cycles texture addressing unit data path is stalled by texture cache

TA_​TA_​BUSY_​sum

Total number of texture addressing unit busy cycles

Hardware counters over all texture cache per channel instances#

Hardware counter

Definition

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

Total number of writebacks due to all TC_​OP writeback requests.

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

Total number of evictions due to all TC_​OP invalidate requests.

TCC_​ATOMIC_​sum

Total number of L2 cache atomic requests of all types.

TCC_​BUSY_​avr

Average number of L2 cache busy cycles.

TCC_​BUSY_​sum

Total number of L2 cache busy cycles.

TCC_​CC_​REQ_​sum

Total number of coherently cached requests.

TCC_​CYCLE_​sum

Total number of L2 cache free running clocks.

TCC_​EA0_​WRREQ_​sum

Total number of 32-byte and 64-byte transactions going over the TC_​EA0_​wrreq interface. Atomics may travel over the same interface and are generally classified as write requests. This does not include probe commands.

TCC_​EA0_​WRREQ_​64B_​sum

Total number of 64-byte transactions (write or CMPSWAP) going over the TC_​EA0_​wrreq interface.

TCC_​EA0_​WR_​UNCACHED_​32B_​sum

Total Number of 32-byte write or atomic going over the TC_​EA0_​wrreq interface due to uncached traffic. Note that coherently cached mtypes can produce uncached requests, and those are included in this. A 64-byte request is counted as 2.

TCC_​EA0_​WRREQ_​STALL_​sum

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

TCC_​EA0_​WRREQ_​IO_​CREDIT_​STALL_​sum

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

TCC_​EA0_​WRREQ_​GMI_​CREDIT_​STALL_​sum

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

TCC_​EA0_​WRREQ_​DRAM_​CREDIT_​STALL_​sum

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

TCC_​EA0_​WRREQ_​LEVEL_​sum

Total number of efficiency arbiter write requests in flight.

TCC_​EA0_​RDREQ_​LEVEL_​sum

Total number of efficiency arbiter read requests in flight.

TCC_​EA0_​ATOMIC_​sum

Total Number of 32-byte or 64-byte atomic requests going over the TC_​EA0_​wrreq interface.

TCC_​EA0_​ATOMIC_​LEVEL_​sum

Total number of efficiency arbiter atomic requests in flight.

TCC_​EA0_​RDREQ_​sum

Total number of 32-byte or 64-byte read requests to efficiency arbiter.

TCC_​EA0_​RDREQ_​32B_​sum

Total number of 32-byte read requests to efficiency arbiter.

TCC_​EA0_​RD_​UNCACHED_​32B_​sum

Total number of 32-byte efficiency arbiter reads due to uncached traffic.

TCC_​EA0_​RDREQ_​IO_​CREDIT_​STALL_​sum

Total number of cycles there is a stall due to the read request interface running out of IO credits.

TCC_​EA0_​RDREQ_​GMI_​CREDIT_​STALL_​sum

Total number of cycles there is a stall due to the read request interface running out of GMI credits.

TCC_​EA0_​RDREQ_​DRAM_​CREDIT_​STALL_​sum

Total number of cycles there is a stall due to the read request interface running out of DRAM credits.

TCC_​EA0_​RDREQ_​DRAM_​sum

Total number of 32-byte or 64-byte efficiency arbiter read requests to HBM.

TCC_​EA0_​WRREQ_​DRAM_​sum

Total number of 32-byte or 64-byte efficiency arbiter write requests to HBM.

TCC_​HIT_​sum

Total number of L2 cache hits.

TCC_​MISS_​sum

Total number of L2 cache misses.

TCC_​NC_​REQ_​sum

Total number of non-coherently cached requests.

TCC_​NORMAL_​WRITEBACK_​sum

Total number of writebacks due to requests that are not writeback requests.

TCC_​NORMAL_​EVICT_​sum

Total number of evictions due to requests that are not invalidate or probe requests.

TCC_​PROBE_​sum

Total number of probe requests.

TCC_​PROBE_​ALL_​sum

Total number of external probe requests with EA0_​TCC_​preq_​all == 1.

TCC_​READ_​sum

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

TCC_​REQ_​sum

Total number of all types of L2 cache requests.

TCC_​RW_​REQ_​sum

Total number of coherently cached with write requests.

TCC_​STREAMING_​REQ_​sum

Total number of L2 cache streaming requests.

TCC_​TAG_​STALL_​sum

Total number of cycles the normal request pipeline in the tag is stalled for any reason.

TCC_​TOO_​MANY_​EA0_​WRREQS_​STALL_​sum

Total number of cycles L2 cache is unable to send an efficiency arbiter write request due to it reaching its maximum capacity of pending efficiency arbiter write requests.

TCC_​UC_​REQ_​sum

Total number of uncached requests.

TCC_​WRITE_​sum

Total number of L2 cache write requests.

TCC_​WRITEBACK_​sum

Total number of lines written back to the main memory including writebacks of dirty lines and uncached write or atomic requests.

TCC_​WRREQ_​STALL_​max

Maximum number of cycles a write request is stalled.

Hardware counters by, for, or over all texture cache per pipe instances#

The following table shows the hardware counters by all texture cache per pipe instances.

Hardware counter

Definition

TCP_​TA_​TCP_​STATE_​READ_​sum

Total number of state reads by ATCPPI

TCP_​TOTAL_​CACHE_​ACCESSES_​sum

Total number of vector L1d accesses (including hits and misses)

TCP_​UTCL1_​PERMISSION_​MISS_​sum

Total number of unified translation cache (L1) permission misses

TCP_​UTCL1_​REQUEST_​sum

Total number of address translation requests to unified translation cache (L1)

TCP_​UTCL1_​TRANSLATION_​MISS_​sum

Total number of unified translation cache (L1) translation misses

TCP_​UTCL1_​TRANSLATION_​HIT_​sum

Total number of unified translation cache (L1) translation hits

The following table shows the hardware counters for all texture cache per pipe instances.

Hardware counter

Definition

TCP_​TCC_​READ_​REQ_​LATENCY_​sum

Total vector L1d to L2 request latency over all wavefronts for reads and atomics with return

TCP_​TCC_​WRITE_​REQ_​LATENCY_​sum

Total vector L1d to L2 request latency over all wavefronts for writes and atomics without return

TCP_​TCP_​LATENCY_​sum

Total wave access latency to vector L1d over all wavefronts

The following table shows the hardware counters over all texture cache per pipe instances.

Hardware counter

Definition

TCP_​ATOMIC_​TAGCONFLICT_​STALL_​CYCLES_​sum

Total number of cycles tag RAM conflict stalls on an atomic

TCP_​GATE_​EN1_​sum

Total number of cycles vector L1d interface clocks are turned on

TCP_​GATE_​EN2_​sum

Total number of cycles vector L1d core clocks are turned on

TCP_​PENDING_​STALL_​CYCLES_​sum

Total number of cycles vector L1d cache is stalled due to data pending from L2 Cache

TCP_​READ_​TAGCONFLICT_​STALL_​CYCLES_​sum

Total number of cycles tag RAM conflict stalls on a read

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

Total number of atomic requests to L2 cache with return

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

Total number of atomic requests to L2 cache without return

TCP_​TCC_​CC_​READ_​REQ_​sum

Total number of coherently cached read requests to L2 cache

TCP_​TCC_​CC_​WRITE_​REQ_​sum

Total number of coherently cached write requests to L2 cache

TCP_​TCC_​CC_​ATOMIC_​REQ_​sum

Total number of coherently cached atomic requests to L2 cache

TCP_​TCC_​NC_​READ_​REQ_​sum

Total number of non-coherently cached read requests to L2 cache

TCP_​TCC_​NC_​WRITE_​REQ_​sum

Total number of non-coherently cached write requests to L2 cache

TCP_​TCC_​NC_​ATOMIC_​REQ_​sum

Total number of non-coherently cached atomic requests to L2 cache

TCP_​TCC_​READ_​REQ_​sum

Total number of read requests to L2 cache

TCP_​TCC_​RW_​READ_​REQ_​sum

Total number of coherently cached with write read requests to L2 cache

TCP_​TCC_​RW_​WRITE_​REQ_​sum

Total number of coherently cached with write write requests to L2 cache

TCP_​TCC_​RW_​ATOMIC_​REQ_​sum

Total number of coherently cached with write atomic requests to L2 cache

TCP_​TCC_​UC_​READ_​REQ_​sum

Total number of uncached read requests to L2 cache

TCP_​TCC_​UC_​WRITE_​REQ_​sum

Total number of uncached write requests to L2 cache

TCP_​TCC_​UC_​ATOMIC_​REQ_​sum

Total number of uncached atomic requests to L2 cache

TCP_​TCC_​WRITE_​REQ_​sum

Total number of write requests to L2 cache

TCP_​TCR_​TCP_​STALL_​CYCLES_​sum

Total number of cycles texture cache router stalls vector L1d

TCP_​TD_​TCP_​STALL_​CYCLES_​sum

Total number of cycles texture data unit stalls vector L1d

TCP_​TOTAL_​ACCESSES_​sum

Total number of vector L1d accesses

TCP_​TOTAL_​READ_​sum

Total number of vector L1d read accesses

TCP_​TOTAL_​WRITE_​sum

Total number of vector L1d write accesses

TCP_​TOTAL_​ATOMIC_​WITH_​RET_​sum

Total number of vector L1d atomic requests with return

TCP_​TOTAL_​ATOMIC_​WITHOUT_​RET_​sum

Total number of vector L1d atomic requests without return

TCP_​TOTAL_​WRITEBACK_​INVALIDATES_​sum

Total number of vector L1d writebacks and invalidates

TCP_​VOLATILE_​sum

Total number of L1 volatile pixels or buffers from texture addressing unit

TCP_​WRITE_​TAGCONFLICT_​STALL_​CYCLES_​sum

Total number of cycles tag RAM conflict stalls on a write

Hardware counter over all texture data unit instances#

Hardware counter

Definition

TD_​ATOMIC_​WAVEFRONT_​sum

Total number of atomic wavefront instructions

TD_​COALESCABLE_​WAVEFRONT_​sum

Total number of coalescable wavefronts according to texture addressing unit

TD_​LOAD_​WAVEFRONT_​sum

Total number of wavefront instructions (read, write, atomic)

TD_​SPI_​STALL_​sum

Total number of cycles texture data unit is stalled by shader processor input

TD_​STORE_​WAVEFRONT_​sum

Total number of write wavefront instructions

TD_​TC_​STALL_​sum

Total number of cycles texture data unit is stalled waiting for texture cache data

TD_​TD_​BUSY_​sum

Total number of texture data unit busy cycles while it is processing or waiting for data