NVIDIA Tegra SoC Uncore 性能监控单元 (PMU)

NVIDIA Tegra SoC 包含各种系统 PMU,用于测量关键性能指标,例如内存带宽、延迟和利用率

  • 可伸缩一致性互连 (SCF)

  • NVLink-C2C0

  • NVLink-C2C1

  • CNVLink

  • PCIE

PMU 驱动

本文档中的 PMU 基于文档 ARM IHI 0091 中描述的 ARM CoreSight PMU 架构。由于这是一种标准架构,因此 PMU 由通用驱动“arm-cs-arch-pmu”管理。该驱动在 sysfs 中描述了每个 PMU 可用的事件和配置。请参阅以下部分以获取每个 PMU 的 sysfs 路径。与其他 uncore PMU 驱动一样,该驱动提供了“cpumask”sysfs 属性来显示用于处理 PMU 事件的 CPU ID。还有一个“associated_cpus”sysfs 属性,其中包含与 PMU 实例关联的 CPU 列表。

SCF PMU

SCF PMU 监控系统级缓存事件、CPU 流量以及到本地/远程内存的强序 (SO) PCIE 写入流量。有关 PMU 流量覆盖范围的更多信息,请参阅流量覆盖范围

此 PMU 设备的事件和配置选项在 sysfs 中描述,请参阅 /sys/bus/event_source/devices/nvidia_scf_pmu_<socket-id>。

使用示例

  • 统计 socket 0 中的事件 ID 0x0

    perf stat -a -e nvidia_scf_pmu_0/event=0x0/
    
  • 统计 socket 1 中的事件 ID 0x0

    perf stat -a -e nvidia_scf_pmu_1/event=0x0/
    

PCIE PMU

PCIE PMU 监控从 PCIE 根端口到本地/远程内存的所有读/写流量。有关 PMU 流量覆盖范围的更多信息,请参阅流量覆盖范围

此 PMU 设备的事件和配置选项在 sysfs 中描述,请参阅 /sys/bus/event_source/devices/nvidia_pcie_pmu_<socket-id>。

每个 SoC socket 可以支持多个根端口。用户可以使用“root_port”位图参数选择要监控的端口,即“root_port=0xF”对应根端口 0 到 3。如果未指定,PMU 默认会监控所有根端口。/sys/bus/event_source/devices/nvidia_pcie_pmu_<socket-id>/format/root_port 显示了可以在“root_port”参数中设置的有效位。

使用示例

  • 统计来自 socket 0 的根端口 0 和 1 的事件 ID 0x0

    perf stat -a -e nvidia_pcie_pmu_0/event=0x0,root_port=0x3/
    
  • 统计来自 socket 1 的根端口 0 和 1 的事件 ID 0x0

    perf stat -a -e nvidia_pcie_pmu_1/event=0x0,root_port=0x3/
    

流量覆盖范围

PMU 流量覆盖范围可能因芯片配置而异

  • NVIDIA Grace Hopper 超级芯片:Hopper GPU 连接到 Grace SoC。

    包含两个 Grace SoC 的配置示例

    *********************************          *********************************
    * SOCKET-A                      *          * SOCKET-B                      *
    *                               *          *                               *
    *                     ::::::::  *          *  ::::::::                     *
    *                     : PCIE :  *          *  : PCIE :                     *
    *                     ::::::::  *          *  ::::::::                     *
    *                         |     *          *      |                        *
    *                         |     *          *      |                        *
    *  :::::::            ::::::::: *          *  :::::::::            ::::::: *
    *  :     :            :       : *          *  :       :            :     : *
    *  : GPU :<--NVLink-->: Grace :<---CNVLink--->: Grace :<--NVLink-->: GPU : *
    *  :     :    C2C     :  SoC  : *          *  :  SoC  :    C2C     :     : *
    *  :::::::            ::::::::: *          *  :::::::::            ::::::: *
    *     |                   |     *          *      |                   |    *
    *     |                   |     *          *      |                   |    *
    *  &&&&&&&&           &&&&&&&&  *          *   &&&&&&&&           &&&&&&&& *
    *  & GMEM &           & CMEM &  *          *   & CMEM &           & GMEM & *
    *  &&&&&&&&           &&&&&&&&  *          *   &&&&&&&&           &&&&&&&& *
    *                               *          *                               *
    *********************************          *********************************
    
    GMEM = GPU Memory (e.g. HBM)
    CMEM = CPU Memory (e.g. LPDDR5X)
    

    下表包含 socket-A 中 Grace SoC PMU 的流量覆盖范围
    +--------------+-------+-----------+-----------+-----+----------+----------+
    |              |                        Source                             |
    +              +-------+-----------+-----------+-----+----------+----------+
    | Destination  |       |GPU ATS    |GPU Not-ATS|     | Socket-B | Socket-B |
    |              |PCI R/W|Translated,|Translated | CPU | CPU/PCIE1| GPU/PCIE2|
    |              |       |EGM        |           |     |          |          |
    +==============+=======+===========+===========+=====+==========+==========+
    | Local        | PCIE  |NVLink-C2C0|NVLink-C2C1| SCF | SCF PMU  | CNVLink  |
    | SYSRAM/CMEM  | PMU   |PMU        |PMU        | PMU |          | PMU      |
    +--------------+-------+-----------+-----------+-----+----------+----------+
    | Local GMEM   | PCIE  |    N/A    |NVLink-C2C1| SCF | SCF PMU  | CNVLink  |
    |              | PMU   |           |PMU        | PMU |          | PMU      |
    +--------------+-------+-----------+-----------+-----+----------+----------+
    | Remote       | PCIE  |NVLink-C2C0|NVLink-C2C1| SCF |          |          |
    | SYSRAM/CMEM  | PMU   |PMU        |PMU        | PMU |   N/A    |   N/A    |
    | over CNVLink |       |           |           |     |          |          |
    +--------------+-------+-----------+-----------+-----+----------+----------+
    | Remote GMEM  | PCIE  |NVLink-C2C0|NVLink-C2C1| SCF |          |          |
    | over CNVLink | PMU   |PMU        |PMU        | PMU |   N/A    |   N/A    |
    +--------------+-------+-----------+-----------+-----+----------+----------+
    
    PCIE1 traffic represents strongly ordered (SO) writes.
    PCIE2 traffic represents reads and relaxed ordered (RO) writes.
    
  • NVIDIA Grace CPU 超级芯片:两个 Grace CPU SoC 连接。

    包含两个 Grace SoC 的配置示例

    *******************             *******************
    * SOCKET-A        *             * SOCKET-B        *
    *                 *             *                 *
    *    ::::::::     *             *    ::::::::     *
    *    : PCIE :     *             *    : PCIE :     *
    *    ::::::::     *             *    ::::::::     *
    *        |        *             *        |        *
    *        |        *             *        |        *
    *    :::::::::    *             *    :::::::::    *
    *    :       :    *             *    :       :    *
    *    : Grace :<--------NVLink------->: Grace :    *
    *    :  SoC  :    *     C2C     *    :  SoC  :    *
    *    :::::::::    *             *    :::::::::    *
    *        |        *             *        |        *
    *        |        *             *        |        *
    *     &&&&&&&&    *             *     &&&&&&&&    *
    *     & CMEM &    *             *     & CMEM &    *
    *     &&&&&&&&    *             *     &&&&&&&&    *
    *                 *             *                 *
    *******************             *******************
    
    GMEM = GPU Memory (e.g. HBM)
    CMEM = CPU Memory (e.g. LPDDR5X)
    

    下表包含 socket-A 中 Grace SoC PMU 的流量覆盖范围
    +-----------------+-----------+---------+----------+-------------+
    |                 |                      Source                  |
    +                 +-----------+---------+----------+-------------+
    | Destination     |           |         | Socket-B | Socket-B    |
    |                 |  PCI R/W  |   CPU   | CPU/PCIE1| PCIE2       |
    |                 |           |         |          |             |
    +=================+===========+=========+==========+=============+
    | Local           |  PCIE PMU | SCF PMU | SCF PMU  | NVLink-C2C0 |
    | SYSRAM/CMEM     |           |         |          | PMU         |
    +-----------------+-----------+---------+----------+-------------+
    | Remote          |           |         |          |             |
    | SYSRAM/CMEM     |  PCIE PMU | SCF PMU |   N/A    |     N/A     |
    | over NVLink-C2C |           |         |          |             |
    +-----------------+-----------+---------+----------+-------------+
    
    PCIE1 traffic represents strongly ordered (SO) writes.
    PCIE2 traffic represents reads and relaxed ordered (RO) writes.