In diesem Dokument werden das Verhalten, die Abrechnung und die Einschränkungen der Leistungsüberwachungseinheit (PMU) in der 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 mithilfe von Leistungsüberwachungssoftware auf die Leistungszähler in der PMU zugreifen. Mit diesem Ansatz können Sie leistungssensible Arbeitslasten wie Hochleistungs-Computing (HPC) oder maschinelles Lernen (ML) optimieren, indem Sie Leistungsengpässe in Ihren Anwendungen erkennen und beheben.
Funktionsweise der 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 modellspezifische Register, die jedes Mal gezählt werden, wenn ein Low-Level-Prozessorereignis wie eine falsche Verzweigungsvorhersage oder ein Cache-Miss innerhalb der CPU auftritt. Sie können PMCs in der PMU mithilfe von Leistungsüberwachungssoftware wie Intel VTune Profiler lesen und konfigurieren.
Die PMU ist standardmäßig in VMs deaktiviert. Um die Funktion zu aktivieren, geben Sie die Arten von Low-Level-CPU-Ereignissen an, die erfasst werden sollen. Aktivieren Sie dazu einen der folgenden PMU-Typen:
Architektur (
ARCHITECTURAL
): Sie können die folgenden Architekturleistungsereignisse erfassen:Nicht mehr verwendete Branch-Anweisungen: Die Anzahl der nicht mehr verwendeten Branch-Anweisungen. Verwenden Sie dieses Ereignis, um die Ausführung Ihres Codes zu messen und potenzielle Leistungsengpässe zu identifizieren.
Abzweigfehler, die nicht ausgeführt wurden: Die Anzahl der Abzweigvorhersagen, die falsch waren, wodurch der Prozessor gestoppt und abgerufene Anweisungen verworfen wurden. Wenn für dieses Ereignis eine hohe Zahl angezeigt wird, können Sie die CPU-Leistung wahrscheinlich optimieren.
Nicht ausgeführte Anweisungen: Die Anzahl der Anweisungen, die die CPU erfolgreich verarbeitet hat. Mit diesem Ereignis können Sie den Instruktionsdurchsatz der CPU messen.
Top-Down-Slots: Die Anzahl der verfügbaren Slots in der Pipeline eines Prozessors, die zum gleichzeitigen Ausführen von Anweisungen verwendet werden. Anhand dieses Ereignisses können Sie nachvollziehen, wie effizient Ihr Code die Ressourcen des Prozessors nutzt.
Nicht angehaltene Kernzyklen: Die Anzahl der Kernzyklen, wenn der Thread nicht angehalten wird, z. B. aufgrund von Energieverwaltung oder Unterbrechungen. Anhand dieses Ereignisses können Sie die Gesamtnutzung des Prozessors bewerten.
Nicht angehaltene Referenzzyklen: Die Anzahl der Referenzzyklen, wenn der Kern nicht angehalten wird, z. B. beim Abrufen von Daten oder Anweisungen. Der Kern wird angehalten, wenn er die Anweisungen
HLT
oderMWAIT
ausführt. Referenzzyklen laufen mit einer festen Frequenz 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 aufgewendete Zeit messen und Leistungsengpässe in Ihrem Code identifizieren.
Standard (
STANDARD
): Sie können alle Ereignisse vom Typ „Architectural PMU“ und alle lokalen Ereignisse innerhalb des CPU-Kerns erfassen, einschließlich L2-Cache-Ereignisse.Erweitert (
ENHANCED
): Sie können alle Ereignisse vom Typ „Standard-PMU“ und alle lokalen Ereignisse außerhalb des CPU-Kerns erfassen, einschließlich L3-Cache-Ereignisse.
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 Schwellenwerte für bestimmte PMCs konfigurieren. Wenn ein PMC den festgelegten Grenzwert ü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-Leitfaden 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.