PMU 概览


本文档说明了 Compute Engine 中性能监控单元 (PMU) 的行为、结算和限制。如需了解如何在 C4A 或 C4 虚拟机 (VM) 实例中启用 PMU,请参阅在虚拟机中启用 PMU

PMU 是 CPU 核心中的硬件组件,用于监控处理器运行代码的方式。通过在 C4A 或 C4 虚拟机中启用 PMU,您可以使用性能监控软件访问 PMU 中的性能计数器。借助这种方法,您可以优化对性能敏感的工作负载,例如高性能计算 (HPC) 或机器学习 (ML) 工作负载,从而帮助您发现和解决应用中的性能瓶颈。

PMU 的工作原理

PMU 由一组称为性能监控计数器 (PMC) 的硬件计数器组成。这些计数器是特定于模型的寄存器,用于统计 CPU 中每次发生的低级别处理器事件(例如分支预测错误或缓存未命中)。您可以使用性能监控软件(例如 Intel VTune Profiler)在 PMU 中读取和配置 PMC。

默认情况下,PMU 在虚拟机中处于停用状态。如需启用 PMU,请通过启用以下 PMU 类型之一来指定要跟踪的低级别 CPU 事件的类型:

  • 架构 (ARCHITECTURAL):您可以衡量以下架构性能事件:

    • 已弃用的分支指令:已弃用的分支指令数。使用此事件可衡量代码的执行情况并找出潜在的性能瓶颈。

    • 已弃用的分支未命中:被错误预测的分支指令数,导致处理器暂停并舍弃提取的指令。如果您看到此事件的数量较多,则可以优化 CPU 性能。

    • 已弃用的指令:CPU 成功处理的指令数。使用此事件可衡量 CPU 的指令吞吐量。

    • 自上而下的槽数:处理器流水线中用于同时执行指令的可用槽数。使用此事件可了解您的代码在多大程度上高效地使用了处理器的资源。

    • 未暂停的核心周期:线程未暂停时(例如,由于电源管理或中断)的核心周期数。使用此事件可评估处理器的总体使用情况。

    • 未暂停的引用周期:核心未暂停时(例如,提取数据或指令时)的引用周期数。当核心运行 HLTMWAIT 指令时,会被暂停。即使处理器的速度发生变化以节省能源,引用周期也会以固定频率运行,从而提供稳定的时间引用。使用此事件可衡量执行任务所用的时间,并找出代码中的性能瓶颈。

  • 标准 (STANDARD):您可以衡量架构 PMU 类型的所有事件以及 CPU 核心内的任何本地事件,包括第 2 级 (L2) 缓存事件。

  • 增强型 (ENHANCED):您可以衡量标准 PMU 类型的所有事件以及 CPU 核心之外的任何本地事件,包括第 3 级 (L3) 缓存事件。

在虚拟机中启用 PMU 后,PMU 会在后台运行,并使用 PMC 持续监控性能事件。您可以选择使用首选的性能监控软件为特定 PMC 配置阈值。如果 PMC 超出指定阈值,则 PMU 会通知软件。

限制

PMU 具有以下限制:

  • 您只能在以下 CPU 平台中启用 PMU:

    CPU 平台 支持的机器系列 支持的性能事件
    Google Axion™ 处理器 C4A Arm Neoverse V2 PMU 指南
    Intel Xeon 可扩缩处理器 (Emerald Rapids) 第 5 代 C4 emeraldrapids_core.json
  • 您只能在使用具有 96 个或 192 个 vCPU 的 C4 机器类型的虚拟机中启用增强型 PMU 类型。

价格

在虚拟机中启用或停用 PMU 不会产生任何费用。

后续步骤