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.