Was macht das harte Power Limit?
Ich hatte das Ganze ja in Bezug auf NVIDIAs Boost unlängst schon einmal in einem ausführlicheren Artikel. Aber es passt hier so gut rein, dass ich es noch einmal kurz zusammenfasse. Denn die Aufgabe der sogenannten Telemetrie ist es ja, die maximale Grafikperformance bei möglichst minimaler Leistungsaufnahme und der entstehenden Nebenwirkungen wie z.B. die Abwärme zu erreichen und die ganzen Überwachungsdaten dafür heranzuziehen. Das Hauptanliegen besteht darin, die Kernspannung der GPU in Echtzeit möglichst so anzupassen, dass nur so viel Leistung zugeführt wird, wie man für die aktuelle Auslastung der GPU und das Erreichen der optimalen Taktrate auch wirklich benötigt. Andererseits sorgen Dinge wie die Power Limits dafür, diesem Mechanismus auch echte Obergrenzen zu setzen. Genau diese beiden Aufgaben müssen wir für das bessere Verständnis wirklich trennen!
Kommen wir deshalb zunächst zu unserer harten Limitierung über die eingangsseitigen Power Limits (Firmware, Adapter-Varianten). Die Firmware schätzt in sehr kurzen Intervallen ständig den Energieverbrauch (quasi in Echtzeit), fragt gleichzeitig die ganzen Sensoren sowie die GPU-Vorhersage ab und bezieht dazu auch die Telemetrie-Daten des Spannungsreglers und der Eingangsüberwachung (Shunts, Bild unten) mit ein. Diese Werte werden an das vorprogrammierten DPM (digitales Power-Management), also den Arbitrator (Mittler) gesendet. Dieser Regelkomplex kennt auch die Power-, thermischen und Stromstärken-Limits der GPU (BIOS, Treiber), die er aus den jeweiligen Registern auslesen kann. Wenn auch nur eine der Eingangsgrößen überschritten wird, in diesem Falle sind es dann die maximalen Ströme, kann der Mittler Spannung oder Takt zurücknehmen. Was dann die Leistungsaufnahme begrenzt, wie in unserem Fall!
Die Software-Begrenzung nutzt die VFE
Was macht die Software beim Afterburner nun anders? Um es einmal gebrauchsfertig zu formulieren: Es wurden ja in der Firmware die einzelnen Boost-Steps samt Vorgabespannung hinterlegt, wobei der Takt der untersten Boost-Stufe durch einen sogenannten Offset verschoben bzw. festgelegt wird und sich der Rest dann aus den Berechnungen des Arbitrators (Mittlers) ergibt. Bei AMD legt man die Taktraten und Spannungen für einige vorgegebene DPM-States fest, was deutlich ungenauer (granulärer) ist, aber am Ende so ähnlich funktioniert.
Das Nachteilige an so einer öffentlich sichtbaren (und mit geeigneter Software auch anpassbarer) „Frequenz-/Spannungskurve“ ist, dass man sie eigentlich gar nicht so einfach pauschal festlegen kann. Das, was der Endanwender in Wirklichkeit nur modifizieren kann, ist eine gewisse partielle Verschiebung auf der Basis von zuvor errechneten, individuellen Grenz- und Richtwerten eines jeden einzelnen Chips unter den aktuellen Bedingungen! Hier kommt nun die sogenannte VFE ( Voltage Frequency Engine) ins Spiel, die einen flexiblen Rahmen bietet, um die Beziehung zwischen den Taktfrequenzen zu spezifizieren bzw. zu bewerten, die normalerweise eine Funktion von Spannung, Speedo und Temperatur ist. Oder um es kurz auf den Punkt zu bringen: Die ermittelte Spannung für jeden dieser Frequenzpunkte einer solchen Kurve ist eigentlich eine Funktion des Speedos der GPU, der durch das „Continuous Virtual Binning“ bestimmt wird. Beim Herabsetzen des Power Limits über den Afterburner wird ebenfalls in die VFE eingegriffen.
Die Hauptfunktion der VFE besteht also darin, die Spannung und Frequenz der Prozessoren dynamisch anzupassen, um die Leistung und Energieeffizienz zu optimieren. Die VFE arbeitet eng mit der PMU (Power Management Unit) zusammen, um die richtigen Spannungs- und Frequenzwerte für verschiedene Betriebszustände und Lastbedingungen zu liefern. Die VFE ist für die Anpassung der Spannung und Frequenz verantwortlich, während Speedo die PVT-Variationen überwacht und die notwendigen Informationen für die VFE liefert, um die richtigen Anpassungen vorzunehmen.
In der PMU-Laufzeitphase (siehe Telemetrie-Schema am Anfang der Seite) nimmt der Perf-Task dann z.B. alle 200 ms (programmierbar) u.a. Stichproben der GPU-Temperatur. Wenn die Temperatur einen (programmierbaren) Hysterese-Wert überschreitet, wird die V/F-Kurve erneut ausgewertet, indem die entsprechende VFE-Gleichung gelöst und die AVFS-Hardware neu programmiert wird. Und diesen netten Loop wiederholt die Karte so lange, bis wir den Rechner wieder brav ausschalten. Nur dass wir hier manuell gar nichts ändern können, außer dem Setzen der Prozentzahl im Afterburner.
Zusammenfassung und Fazit
Interessanterweise lässt sich eine 500-Watt-Karte mit dem Afterburner besser bei 300 Watt betreiben als eine 450-Watt-Karte, zumindest was die Varianzen und die Frame Times betrifft. Ansonsten würde ich nicht versuchen, den Hard-Cut einfach mittels eines Adapters zu lösen, sondern stets per Software die gesamte Telemetrie samt VFE mit ins Boot zu holen. Das regelt am Schluss doch genauer und kommt dem Sinn der gesamten Lösung bis hin zum „Continuous Virtual Binning“, dessen Spielraum ohne engere Hard-Limits deutlich größer ausfällt, eher entgegen.
Ja, es kann auch zum leichten Überschreiten des „Requested Power Limits“ kommen, aber das macht ja nichts, solange man trotz allem in ungefähren Rahmen bleibt. Der heutige Artikel beruht übrigens au^f einem Zufallsfund, der mir beim Benchmarken quasi vor die Füße gefallen ist. Danke dafür an Mafia II und das Abschalten eines Netzteils. Man lernt nie aus. Weiterführende Lektüre zum Thema findet Ihr auch hier:
180 Antworten
Kommentar
Lade neue Kommentare
Urgestein
Veteran
1
Urgestein
Urgestein
Urgestein
Neuling
Urgestein
Mitglied
Veteran
Mitglied
Urgestein
Urgestein
1
1
Urgestein
Urgestein
Urgestein
Urgestein
Alle Kommentare lesen unter igor´sLAB Community →