# NOTE: Metrics representing a superset of other metrics must be declared first
# if they appear in the same group (displayRows). Otherwise different metrics will
# dominate in the group row depending on zoom level if overlay display mode is used.
version: 3
metricSets:
- alias: ga100
  name: General Metrics for NVIDIA GA100 (any frequency)
  chips: [GA100]
  counterWidth: wide
  displayRows:
  - name: $root:Activity
    type: overlay
    displayHeightScale: 0.5
    metrics:
    - GR Active
  - name: $root:Memory
    type: overlay
    displayHeightScale: -0.5
    metrics:
    - NVLink RX Responses User Data
    - NVLink TX Responses User Data
    - PCIe RX Throughput
    - PCIe TX Throughput
  - name: GPC Clock Frequency
    type: overlay
    metrics:
    - GPC Clock Frequency
  - name: SYS Clock Frequency
    type: overlay
    metrics:
    - SYS Clock Frequency
  - name: GPU Active
    description: The graphics or copy engine is active
    type: overlay
    metrics:
    - GR Active
  - name: SMs Active
    type: overlay
    metrics:
    - SMs Active
  - name: SM Instructions
    type: overlay
    metrics:
    - SM Issue
    - Tensor Active
  - name: SM Warp Occupancy
    type: stacked
    displayHeightScale: 3.0
    metrics:
    - Vertex/Tess/Geometry Warps in Flight
    - Pixel Warps in Flight
    - Compute Warps in Flight
    - Unallocated Warps in Active SMs
  - name: DRAM Bandwidth
    type: stacked
    metrics:
    - DRAM Read Bandwidth
    - DRAM Write Bandwidth
  - name: NVLink RX Bandwidth
    type: stacked
    metrics:
    - NVLink RX Requests Protocol Data
    - NVLink RX Requests User Data
    - NVLink RX Responses Protocol Data
    - NVLink RX Responses User Data
  - name: NVLink TX Bandwidth
    type: stacked
    metrics:
    - NVLink TX Requests Protocol Data
    - NVLink TX Requests User Data
    - NVLink TX Responses Protocol Data
    - NVLink TX Responses User Data
  - name: PCIe Bandwidth
    type: overlay
    metrics:
    - PCIe RX Throughput
    - PCIe TX Throughput
  metrics:
  - name: GPC Clock Frequency
    id: gpc__cycles_elapsed
    description: The frequency of the GPC graphics clock. In NVIDIA GPU Specs this
      is the Boost Clock and Base Clock. In nvidia-smi this is the "gr", "graphics",
      "Graphics Clock".
    color: '#8BDDB4'
    subMetrics:
    - name: MHz
      label: $freq
      suffix: .avg.per_second
      multiplier: 1.0e-06
  - name: SYS Clock Frequency
    id: sys__cycles_elapsed
    description: The frequency of the SYS clock. The SYS clock is the clock used for
      the copy engines, compute and graphics command processor, and the hardware performance
      monitor streaming unit.
    color: '#118E44'
    schedulingRule: migOptional
    subMetrics:
    - name: MHz
      label: $freq
      suffix: .avg.per_second
      multiplier: 1.0e-06
  - name: GR Active
    id: gr__cycles_active
    description: Number of cycles the graphics/compute engine is active. The graphics
      and compute engine are active if there is any work in the graphics pipe or if
      the compute pipe is processing a dispatch.
    color: '#ED6A32'
    subMetrics:
    - name: Throughput %
      label: $pct
      suffix: .sum.pct_of_peak_sustained_elapsed
  - name: SMs Active
    id: sm__cycles_active
    description: The ratio of cycles SMs had at least 1 warp in flight to the number
      of cycles
    color: '#FFA5A5'
    subMetrics:
    - name: Throughput %
      label: $pct
      suffix: .avg.pct_of_peak_sustained_elapsed
  - name: SM Issue
    id: sm__inst_executed_realtime
    description: SM instruction issue rate. Each SM can issue 4 instructions/cycle
      (1 instruction/SMSP/cycle).
    color: '#98C4DD'
    subMetrics:
    - name: Throughput %
      label: $pct
      suffix: .avg.pct_of_peak_sustained_elapsed
  - name: Tensor Active
    id: sm__pipe_tensor_cycles_active_realtime
    description: Cycles the tensor pipe is active
    color: '#B3FF70'
    subMetrics:
    - name: Throughput %
      label: $pct
      suffix: .avg.pct_of_peak_sustained_elapsed
  - name: Vertex/Tess/Geometry Warps in Flight
    id: tpc__warps_active_shader_vtg_realtime
    description: Total number of graphics vertex, tesselation, geometry, and mesh
      shader warps in flight
    color: '#FFA5A5'
    subMetrics:
    - name: Throughput %
      label: $pct
      suffix: .avg.pct_of_peak_sustained_elapsed
    - name: Avg
      suffix: .avg
    - name: Avg Warps per Cycle
      suffix: .avg.per_cycle_elapsed
  - name: Pixel Warps in Flight
    id: tpc__warps_active_shader_ps_realtime
    description: Total number of pixel shader warps in flight
    color: '#8BDDB4'
    subMetrics:
    - name: Throughput %
      label: $pct
      suffix: .avg.pct_of_peak_sustained_elapsed
    - name: Avg
      suffix: .avg
    - name: Avg Warps per Cycle
      suffix: .avg.per_cycle_elapsed
  - name: Compute Warps in Flight
    id: tpc__warps_active_shader_cs_realtime
    description: Total number of compute shader warps in flight
    color: '#FFD179'
    subMetrics:
    - name: Throughput %
      label: $pct
      suffix: .avg.pct_of_peak_sustained_elapsed
    - name: Avg
      suffix: .avg
    - name: Avg Warps per Cycle
      suffix: .avg.per_cycle_elapsed
  - name: Unallocated Warps in Active SMs
    id: tpc__warps_inactive_sm_active_realtime
    description: Total number of warp slots available on active SMs
    color: '#696969'
    subMetrics:
    - name: Throughput %
      label: $pct
      suffix: .avg.pct_of_peak_sustained_elapsed
    - name: Avg
      suffix: .avg
    - name: Avg Warps per Cycle
      suffix: .avg.per_cycle_elapsed
  - name: DRAM Read Bandwidth
    id: dram__read_throughput
    description: The ratio of cycles the DRAM interface was active reading data to
      the elapsed cycles in the same period as a percentage
    color: '#FFA5A5'
    subMetrics:
    - name: Throughput %
      label: $pct
      suffix: .avg.pct_of_peak_sustained_elapsed
  - name: DRAM Write Bandwidth
    id: dram__write_throughput
    description: The ratio of cycles the DRAM interface was active writing data to
      the elapsed cycles in the same period as a percentage
    color: '#98C4DD'
    subMetrics:
    - name: Throughput %
      label: $pct
      suffix: .avg.pct_of_peak_sustained_elapsed
  - name: NVLink RX Requests Protocol Data
    id: nvlrx__bytes_packet_request_data_protocol
    description: Number of bytes of NVLRX request protocol data
    color: '#C79536'
    schedulingRule: optional
    subMetrics:
    - name: Throughput %
      label: $pct
      suffix: .avg.pct_of_peak_sustained_elapsed
  - name: NVLink RX Requests User Data
    id: nvlrx__bytes_packet_request_data_user
    description: Number of bytes of NVLRX request user data
    color: '#FFD179'
    schedulingRule: optional
    subMetrics:
    - name: Throughput %
      label: $pct
      suffix: .avg.pct_of_peak_sustained_elapsed
  - name: NVLink RX Responses Protocol Data
    id: nvlrx__bytes_packet_response_data_protocol
    description: Number of bytes of NVLRX response protocol data
    color: '#C25D5D'
    schedulingRule: optional
    subMetrics:
    - name: Throughput %
      label: $pct
      suffix: .avg.pct_of_peak_sustained_elapsed
  - name: NVLink RX Responses User Data
    id: nvlrx__bytes_packet_response_data_user
    description: Number of bytes of NVLRX response user data
    color: '#FFA5A5'
    schedulingRule: optional
    subMetrics:
    - name: Throughput %
      label: $pct
      suffix: .avg.pct_of_peak_sustained_elapsed
  - name: NVLink TX Requests Protocol Data
    id: nvltx__bytes_packet_request_data_protocol
    description: Number of bytes of NVLTX request protocol data
    color: '#9052BF'
    schedulingRule: optional
    subMetrics:
    - name: Throughput %
      label: $pct
      suffix: .avg.pct_of_peak_sustained_elapsed
  - name: NVLink TX Requests User Data
    id: nvltx__bytes_packet_request_data_user
    description: Number of bytes of NVLTX request user data
    color: '#D6A4FC'
    schedulingRule: optional
    subMetrics:
    - name: Throughput %
      label: $pct
      suffix: .avg.pct_of_peak_sustained_elapsed
  - name: NVLink TX Responses Protocol Data
    id: nvltx__bytes_packet_response_data_protocol
    description: Number of bytes of NVLTX response protocol data
    color: '#6999B5'
    schedulingRule: optional
    subMetrics:
    - name: Throughput %
      label: $pct
      suffix: .avg.pct_of_peak_sustained_elapsed
  - name: NVLink TX Responses User Data
    id: nvltx__bytes_packet_response_data_user
    description: Number of bytes of NVLTX response user data
    color: '#98C4DD'
    schedulingRule: optional
    subMetrics:
    - name: Throughput %
      label: $pct
      suffix: .avg.pct_of_peak_sustained_elapsed
  - name: PCIe RX Throughput
    id: pcie__read_bytes
    description: Number of bytes received by GPU (includes protocol)
    color: '#FF3D00'
    schedulingRule: migOptional
    subMetrics:
    - name: Throughput %
      label: $pct
      suffix: .avg.pct_of_peak_sustained_elapsed
  - name: PCIe TX Throughput
    id: pcie__write_bytes
    description: Number of bytes transmitted by GPU (includes protocol)
    color: '#00CFCF'
    schedulingRule: migOptional
    subMetrics:
    - name: Throughput %
      label: $pct
      suffix: .avg.pct_of_peak_sustained_elapsed
