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

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

  • 可扩展一致性结构 (SCF)

  • NVLink-C2C0

  • NVLink-C2C1

  • CNVLink

  • PCIE

PMU 驱动程序

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

SCF PMU

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

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

使用示例

  • 在插槽 0 中计数事件 ID 0x0

    perf stat -a -e nvidia_scf_pmu_0/event=0x0/
    
  • 在插槽 1 中计数事件 ID 0x0

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

PCIE PMU

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

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

每个 SoC 插槽可以支持多个根端口。用户可以使用 “root_port” 位图参数选择要监控的端口,即 “root_port=0xF” 对应于根端口 0 到 3。/sys/bus/event_sources/devices/nvidia_pcie_pmu_<socket-id>/format/root_port 显示可以在 “root_port” 参数中设置的有效位。

使用示例

  • 计数来自插槽 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.