1 Punkte von GN⁺ 2024-12-02 | 1 Kommentare | Auf WhatsApp teilen

AMD deaktiviert den Loop Buffer von Zen 4

  • Rolle des Loop Buffers: Er befindet sich im Frontend der CPU und speichert zuvor geholte Instruktionen. Kleine Schleifen können in den Loop Buffer passen, wodurch sich einige Frontend-Stufen deaktivieren lassen, um Strom zu sparen und die Leistung zu verbessern. Es handelt sich um eine alte Technik, die in Intel-, Arm- und AMD-Kernen verwendet wird.

  • Der Loop Buffer in Zen 4: Zen 4 ist der einzige Hochleistungskern von AMD, der einen Loop Buffer enthält. Experimente mit Performance Countern zeigen, dass der Kern bei Ausführung mit einem Thread 144 Einträge hat. Wenn zwei SMT-Threads aktiv sind, werden jedem Thread 72 Einträge zugewiesen. Treten innerhalb der Schleife Aufrufe und Rückgaben auf, werden diese nicht im Loop Buffer erfasst.

  • Änderung nach BIOS-Update: Nach einem Update des ASRock B650 PG Lightning auf BIOS-Version 3.10 zeigte das Hardware-Performance-Monitoring, dass das Frontend keine Mikro-Ops mehr aus dem Loop Buffer dispatcht. Nach einem Downgrade auf BIOS-Version 1.21 war der Loop Buffer wieder aktiv. AMD scheint den Loop Buffer zwischen BIOS 1.21 (AGESA-Version 1.0.0.6) und BIOS 3.10 (AGESA-Version 1.2.0.2a) deaktiviert zu haben.

SPEC CPU2017: Unterschiede finden

  • Leistungsauswirkung: Die SPEC-CPU2017-Ergebnisse zeigen keinen auffälligen Unterschied abhängig davon, ob der Loop Buffer aktiv ist oder nicht. Die Gesamtergebnisse der Integer- und Floating-Point-Suites unterscheiden sich um weniger als 1 %. Auch die SMT-Leistungssteigerung bleibt unbeeinflusst.

  • Rolle des Loop Buffers: Der Loop Buffer dient offenbar nicht in erster Linie der Leistungssteigerung, sondern soll es dem Kern ermöglichen, große Teile des Frontends zu deaktivieren. Laut der Processor Programming Reference für Zen 4 können Performance Counter so programmiert werden, dass sie jedes Mal um 1 erhöht werden, wenn die Anzahl der Ereignisse einen Schwellenwert überschreitet.

Cyberpunk 2077

  • Test der Spieleleistung: Mithilfe des integrierten Benchmarks von Cyberpunk 2077 wurde geprüft, welchen Einfluss die Deaktivierung des Loop Buffers auf die Spieleleistung hat. Dabei zeigte sich, dass sie nahezu keinen Einfluss auf die Gaming-Performance hat.

Versuch zur Überprüfung des Stromverbrauchs

  • Energieeffizienz: Es wurde versucht, mit den Core-Power-Countern von Zen 4 zu prüfen, ob der Loop Buffer die Energieeffizienz verbessert, aber die Ergebnisse waren nicht konsistent. Mit dem neuen BIOS lässt sich der Loop Buffer nicht mehr testen.

Fazit

  • Grund für die Deaktivierung des Loop Buffers: Warum AMD den Loop Buffer von Zen 4 deaktiviert hat, ist unklar. CPU-Funktionen können wegen Hardware-Bugs deaktiviert werden. Zen 4 war der erste Fall, in dem AMD einen Loop Buffer in seine Hochleistungs-CPUs integriert hat. Die Auswirkungen auf die Leistung sind nahezu null, und auch der Einfluss auf den Stromverbrauch dürfte gering sein.

1 Kommentare

 
GN⁺ 2024-12-02
Hacker-News-Kommentare
  • Möglicherweise wurde die Funktion deaktiviert, um Hardware-Schwachstellen zu verhindern. Das deutet darauf hin, dass der Loop Buffer weder Leistungs- noch Energieverbrauchsvorteile bringt

    • Es könnte sein, dass das Engineering-Team monatelang an einer neuen Funktion gearbeitet hat, die in der Praxis keinen Nutzen brachte und nur aus Prestigegründen veröffentlicht wurde
    • Auch Software-Teams schreiben Codebasen neu, um die Leistung zu steigern, nur damit nach Abschluss des Projekts mehr Code vorhanden ist und die Performance schlechter wird
    • In beiden Fällen hätte das Projekt nicht veröffentlicht werden sollen
  • Der Loop Buffer von Zen 4 zeigt, dass das Unternehmen über die Engineering-Fähigkeiten verfügt, mit solchen Dingen zu experimentieren

    • Diesmal hat es nichts gebracht, aber es ist ein guter Weg, Vertrauen aufzubauen, wenn Ingenieure mit risikoarmen und wenig folgenreichen Funktionen experimentieren
    • Ich hoffe in Zukunft auf mehr Selbstvertrauen
  • Ich nutze einen 7950x3d und habe von einem Skylake 6700k upgegradet

    • Offenbar fühle ich mich unbewusst zu Chips hingezogen, bei denen der Hardware-Loop-Buffer per Software deaktiviert wurde
  • In Spielen sinkt die Leistung um 5 %, wenn der Loop Buffer deaktiviert ist und der Prozess auf dem Die ohne Cache festgenagelt wird

    • Detailliertere Energiemessungen könnten zeigen, ob das mit dem Wärme-/Energiebudget zusammenhängt
    • Es klingt so, als diene diese Funktion dem Stromsparen
  • Der Loop Buffer war vermutlich so klein, dass er nur in bestimmten Szenarien einen Unterschied machte, und ein größerer Buffer hätte im Verhältnis zu den Kosten wenig Nutzen gebracht

    • Bei manchen Workloads könnte es zu einem kleinen Performance-Rückgang kommen, aber AMD hat seit der Veröffentlichung leichte Leistungsverbesserungen erreicht
    • Man hätte daraus eine BIOS-Option in Zen 4 machen sollen. Dass das nicht geschehen ist, deutet auf einen Bug oder ein Sicherheitsproblem hin
  • Beim Cortex-A15 ist es ein "wichtiges Designmerkmal"

    • Ich frage mich, ob es Zahlen dazu gibt, wie sich das auf andere Chips auswirkt
    • Bei Designs mit langer Einsatzdauer, etwa Konsolen, könnte es langfristig ein Optimierungsziel sein
  • Ich verstehe nicht, wie viel Platz der Loop Buffer auf dem Die einnimmt

    • Falls er entfernt wird, frage ich mich, ob man den Platz in künftigen Chips für etwas Nützlicheres wie L2-Cache verwenden könnte
  • Im Abschnitt "Power" wird nicht durch die Anzahl der pro Sekunde ausgeführten Instruktionen geteilt

    • Die relevante Metrik, um den Nutzen des Loop Buffers zu beurteilen, ist nicht Energie pro Sekunde, sondern Energieverbrauch pro Instruktion
  • Einer der Unterschiede zwischen dem 68000 von 1979 und dem 68010 von 1982 war die Ergänzung des "Loop Mode", eines 6-Byte-Loop-Buffers