PMU-Übersicht

In diesem Dokument werden das Verhalten, die Abrechnung und die Einschränkungen der Performance Monitoring Unit (PMU) in Compute Engine erläutert. Informationen zum Aktivieren der PMU in einer C4A- oder C4-VM-Instanz finden Sie unter PMU in VMs aktivieren.

Die PMU ist eine Hardwarekomponente im CPU-Kern, die überwacht, wie der Prozessor Code ausführt. Wenn Sie die PMU in einer C4A- oder C4-VM aktivieren, können Sie mit Software zur Leistungsüberwachung auf die Leistungszähler in der PMU zugreifen. Mit diesem Ansatz können Sie leistungsintensive Arbeitslasten wie Hochleistungs-Computing (HPC) oder maschinelles Lernen (ML) optimieren, indem Sie Leistungsengpässe in Ihren Anwendungen erkennen und beheben.

Funktionsweise des PMU

Die PMU besteht aus einer Reihe von Hardwarezählern, die als Leistungsüberwachungszähler (Performance Monitoring Counters, PMCs) bezeichnet werden. Diese Zähler sind modellbezogene Register, die jedes Mal hochgezählt werden, wenn ein Low-Level-Prozessorereignis wie eine falsche Verzweigungsvorhersage oder ein Cache-Fehler in der CPU auftritt. Sie können PMCs in der PMU mit Software zur Leistungsüberwachung wie Intel VTune Profiler lesen und konfigurieren.

Standardmäßig ist die PMU in VMs deaktiviert. Um sie zu aktivieren, geben Sie die Arten von CPU-Ereignissen auf niedriger Ebene an, die erfasst werden sollen. Aktivieren Sie dazu einen der folgenden PMU-Typen:

  • Architektur (ARCHITECTURAL): Sie können die folgenden Architektur-Leistungsereignisse messen:

    • Branch instructions retired (Abgeschlossene Verzweigungsanweisungen): Die Anzahl der abgeschlossenen Verzweigungsanweisungen. Mit diesem Ereignis können Sie die Ausführung Ihres Codes messen und potenzielle Leistungsengpässe identifizieren.

    • Branch misses retired (Abzweigungsfehler behoben): Die Anzahl der Abzweigungsanweisungen, die falsch vorhergesagt wurden, wodurch der Prozessor angehalten und abgerufene Anweisungen verworfen wurden. Wenn Sie eine hohe Anzahl für dieses Ereignis sehen, können Sie die CPU-Leistung wahrscheinlich optimieren.

    • Abgeschlossene Befehle: Die Anzahl der Befehle, die die CPU erfolgreich verarbeitet hat. Mit diesem Ereignis können Sie den Anweisungsdurchsatz der CPU messen.

    • Top-down-Slots: Die Anzahl der verfügbaren Slots in der Pipeline eines Prozessors, die zum gleichzeitigen Ausführen von Befehlen verwendet werden. Anhand dieses Ereignisses können Sie nachvollziehen, wie effizient Ihr Code die Ressourcen des Prozessors nutzt.

    • Unhalted core cycles (Nicht angehaltene Core-Zyklen): Die Anzahl der Core-Zyklen, in denen der Thread nicht angehalten wird, z. B. aufgrund von Energieverwaltung oder Unterbrechungen. Mit diesem Ereignis können Sie die Gesamtnutzung des Prozessors bewerten.

    • Unhalted reference cycles (Nicht angehaltene Referenzzyklen): Die Anzahl der Referenzzyklen, wenn der Kern nicht angehalten wird, z. B. beim Abrufen von Daten oder Befehlen. Der Core wird angehalten, wenn er die HLT- oder MWAIT-Anweisungen ausführt. Referenzzyklen werden mit einer festen Frequenz ausgeführt und bieten eine stabile Zeitreferenz, auch wenn sich die Geschwindigkeit des Prozessors ändert, um Energie zu sparen. Mit diesem Ereignis können Sie die für eine Aufgabe benötigte Zeit messen und Leistungsengpässe in Ihrem Code identifizieren.

  • Standard (STANDARD): Sie können alle Ereignisse vom PMU-Typ „Architektur“ und alle lokalen Ereignisse im CPU-Kern messen, einschließlich Ereignissen des L2-Cache.

  • Erweitert (ENHANCED): Sie können alle Ereignisse des Standard-PMU-Typs sowie alle lokalen Ereignisse außerhalb des CPU-Kerns, einschließlich L3-Cache-Ereignisse (Level 3), messen.

Nachdem Sie die PMU in einer VM aktiviert haben, wird sie im Hintergrund ausgeführt und überwacht kontinuierlich Leistungsereignisse mithilfe von PMCs. Optional können Sie mit Ihrer bevorzugten Software zur Leistungsüberwachung Grenzwerte für bestimmte PMCs konfigurieren. Wenn ein PMC den festgelegten Schwellenwert überschreitet, benachrichtigt die PMU die Software.

Beschränkungen

Für die PMU gelten die folgenden Einschränkungen:

  • Sie können die PMU nur auf den folgenden CPU-Plattformen aktivieren:

    CPU-Plattform Unterstützte Maschinenserien Unterstützte Leistungsereignisse
    Google Axion™-Prozessor C4A Arm Neoverse V2 PMU Guide
    Skalierbarer Intel Xeon-Prozessor (Emerald Rapids) der 5. Generation C4 emeraldrapids_core.json
  • Sie können den erweiterten PMU-Typ nur in VMs aktivieren, die einen C4-Maschinentyp mit 96 oder 192 vCPUs verwenden.

Preise

Das Aktivieren oder Deaktivieren der PMU in einer VM ist kostenlos.

Nächste Schritte