Diese Version (2022/11/20 08:22) wurde bestätigt durch Daniel.Die zuvor bestätigte Version (2021/12/30 19:42) ist verfügbar.Diff

Undervolting

Das Undervolting ist ein sehr gutes Mittel, um ein System effizienter und leistungsfähiger zu machen, ohne hierbei Gefahr zu laufen, die Hardware wie Prozessor, Mainboard oder RAM irreperabel zu schädigen, was beim Overclocking durchaus passieren kann. Es lässt sich bei allen heutigen Systemen - ob alt, oder neu - anwenden und hat als positive Nebenwirkung, dass auch noch zusätzlich Strom im Leerlauf und auch unter Last gespart wird.

Zuerst ein wenig Hintergunderklärung: Man muss generell wissen, dass heutige Prozessoren einen sehr großen Arbeitsbereich haben und diesen sehr dynamisch steuern können. Dies tun sie über die Taktrate oder auch als Frequenz in Mega-, oder GigaHerz bezeichnet. Mehrkernprozessoren mit 6, 8 oder mehr Kernen können diese teilweise ganz Stilllegen wenn diese nicht gebraucht werden (0 Mhz). Oder einige Kerne werden nur mit einer niedrigen Taktrate betreiben, um kleinere Aufgaben zu erledigen.

In der allermeisten Zeit läuft ein heutiges PC- System nur mit einem Bruchteil seiner maximale Taktrate, um Energie zu sparen. Der Nutzer merkt dies nicht - in dem Moment, wo die volle Leistung gebraucht wird, schaltet der Prozessor sehr schnell um und steigert seinen Takt bis zur seiner Maximalgrenze.

Egal aber, in welchem Leistungsbereich sich der Kern gerade befindet: Seine Leistungsaufnahme (gemessen in Watt) ist immer Abhängig von der aktuellen Taktung und der dazugehörigen Spannung. Die Stromstärke - der dritte Leistungsfaktor - lässt sich nicht beeinflussen, da Änderungen hier sehr schnell physikalische Auswirkungen haben und den Prozessor schädigen würden.

Je mehr Leistung der Prozessor verbraucht, desto höher ist die Wärme, die er erzeugt. Hierbei können sehr große Wärmemengen auf einem sehr kleinen Bereich entstehen. Kein heutiger PC- Prozessor kann länger als ein paar Sekunden die volle Leistung liefern und schaltet zu seinem eigenen Schutz die Taktzahl herunter, sobald die Wärme zu groß wird, um sich zu schützen.

Beim Overcklocking, welches auf keinen Fall mit dem Undervolting zu verwechseln ist, stellt man die Taktrate hoch. Dies führt dazu, dass der Prozessor gezwungen wird, ausserhalb seiner Norm zu arbeiten. Hierdurch ist er in der Lage, für einen kurzen Moment mehr Maximalleistung zu bringen. Er verbraucht durch die höhere Taktung aber dauerhaft mehr Energie und wird schneller Heiss. Da sein thermales Budget schneller ausgereizt ist, wird er schneller seine Leistung wieder drosseln.

Zusätzlich führt der höhere Takt und dadurch größere Leistungsaufnahme dazu, dass bei gleicher Spannung ggfs. nicht genug Strom zur Verfügung steht. Hierdurch wird der Prozessor instabil und kann abstürzen. Dies kann man ausgleichen, indem man diesen zusätzlich mit höherer Spannung versorgt. Die höhere Spannung führt wieder zu noch mehr Hitze, so dass die Zeit bis zur Leistungsdrosselung noch kürzer wird und die Gefahr von einem Schaden an der hardware noch größer wird.

Diese Methode bringt also nur etwas, wenn man z.B. eine bessere Kühlung verbaut oder nur kurze Leistungsspitzen benötigt. In andere Fällen ist das Overclocking eher Energieverschwendung ohne großen Nutzen mit der großen Gefahr, den Prozessor oder das Mainboard im schlimmsten fall zu zerstören.

Ganz anders das Undervolting: hierbei stellt man bei den ansonsten unveränderten Taktraten die jeweilige Spannung möglichst niedrig ein. Dies geht, weil die Hersteller einen Puffer in der Spannung einbauen, der meistens recht groß ist. So werden die Prozessoren mit einer höheren Spannung betrieben, was alleine der Stabilität dient.

Der Prozessor bleibt in so jederzeit seiner Norm bezüglich Taktung und seine Leistung bleibt exakt gleich - es gibt keinen Einfluss auf die Rechenoperationen. Durch die niedrigere Spannung kann im schlimmsten Fall eine Berechnung nicht durchgeführt werden - was in leichten Fällen vom Betriebssystem bemerkt und wiederholt wird - oder schlimmstenfalls zum Aufhängen des Rechners führt. Nach einem Neustart, wird aber die alte Spannung wieder eingeschaltet und es ist kein Schaden entstanden.

Als sehr positiven Nebeneffekt kann der Rechner aufgrund der geringerem Wärmeerzegung in der maximale Leistungsstufe, diese sogar länger halten und damit hat über alles gesehen mehr Leistung. Zusätzlich spart er auch noch im Leerlauf Energie.

Undervolting ist damit das Mittel der Wahl, um Energie zu sparen und zeitgleich mehr Leistung zu erhalten.

Man kann sich nun Fragen: Warum stellen nicht die Hersteller gleich diesen Wert optimal ein? Nun die Antwort ist, dass jeder Prozessor sich in unterschiedlichen Situationen ganz leicht anders verhält. Das Herausfinden, was gerade noch geht, ist Zeitaufwändig und unter Umständen gar nicht richtig möglich. Schließlich weiss der Hersteller auch nicht, welches Mainboard, wieviel und welcher Speicher und welche Zusatzhardware verbaut wird. Deshalb werden die Prozessoren mit ganz sicheren Standarwerten geliefert - also sozusagen das Maximum, was auch in schlechtesten Bedingungen noch immer geht. Die Bedingungen sind aber bei 95% aller PCs besser - die mögliche optimalere Einstellung deshalb nur durch den Anwender möglich.

Wir wissen nun: 95% aller Rechner können durch Undervolting ohne Änderung von gefährlichen Werten erheblich Leistungsfähiger und zeitgleich Stromsparender werden, als ohne. Im Folgenden wird gezeigt, wie das in der Praxis geht.

Ich zeige anhand meines alten Testrechners auf welchem ein Linux/Fedora läuft nun, wie man im Terminal (als root) vorgehen kann, um korrekt zu undervolten. Das Vorgehen ist prinzipiell auch mit neuen Rechnern und mit Windows so anwendbar, auch wenn die benötigtem Programme dann anders heissen.

In meine Fall handelt es sich um einen alten AMD Phenom II, da dieser in der Werkseinstellung eine besonders ineffiziente Energieverwaltung hat und hier große Unterschiede sichtbar sind.

Zuerst sollte man die wichtigen Standardwerte herausfinden und sich notieren. Dies geht so:

>amdctl -g
 Pstate Status CpuFid CpuDid CpuVid CpuMult CpuFreq CpuVolt NbVid NbVolt IddVal IddDiv CpuCurr CpuPower
      0      1     16      0     14  16.00x 3200MHz  1375mV    30 1175mV    190     10  19.00A   26.12W
      1      1      9      0     22  12.50x 2500MHz  1275mV    30 1175mV    146     10  14.60A   18.62W
      2      1      3      0     28   9.50x 1900MHz  1200mV    30 1175mV    130     10  13.00A   15.60W
      3      1      0      1     42   4.00x  800MHz  1025mV    30 1175mV     76     10   7.60A    7.79W
      4      1      0      0      0   8.00x 1600MHz  1550mV     0 1550mV      0      1   0.00A    0.00W

Diese Tabelle zeigt die wichtigen Werte: Taktung (CpuFreq), Spannung (CpuVolt) und Leistung (CpuPower) pro Leistungslevel (Pstate).

Das Programm lässt die Änderung der Spannung pro Level -pX durch den Parameter -vXX (CpuVid) zu. Ein höherer Wert ist eine NIEDRIGERE Spannung.

Beispiel:

>amdctl -p0 -v15

Setzt die Spannung für den Pstate 0 auf den nächstniedrigeren Wert:

 Pstate Status CpuFid CpuDid CpuVid CpuMult CpuFreq CpuVolt NbVid NbVolt IddVal IddDiv CpuCurr CpuPower
      0      1     16      0     15  16.00x 3200MHz  1362mV    30 1175mV    190     10  19.00A   25.89W

Hinweise: zum Ausprobieren nur in einzelnen Schritten testen und zuerst die Theorie durchlesen, bevor irgendwas größeres verstellt wird!

Es ist sinnvoll, zuerst nur die Spannung von der höchsten Leistungsstufe zu ändern. Diese wird aber im Normalbetrieb nicht erreicht. Deshalb muss ein Stresstest eingeschaltet werden, der den Prozessor maximal fordert.

Ich setze hierzu das Tool „stress“ und das PIP-Tool „s-tui“ als dessen grafisches Frontend ein.

Installation:

>dnf install stress>pip install s-tui

Der Aufruf erfolt über „s-tui“. Die Bedienung ist selbsterklärend. Mit den Button „stress“ lassen sich alle Prozessorkerne auslasten und die Spannung und zeitgleich die Wärmeentwicklung beobachten, unter Monitoring schaltet man diesen Stresstest wieder aus.

Der Modus „Stress“ wird immer nur kurzzeitig aktiviert, nachdem die Spannung geändert wurde.

Während also in einem Fenster „s-tui“ läuft, verändere ich im anderen Fenster die Spannung von -p0. Nach jeder Änderung lasse ich kurz einen Stresstest laufen. Die Änderung erfolgt in Einzelschritten - also erst -v15, dann Stresstest, dann wieder Monitoring, bevor -v16 gewählt wird.

Es ist darauf zu achten, dass die Spannung und die Leistung immer weiter sinkt - bei sonst gleichen Werten!

Achtung: Irgendwann wird sich das System dabei aufhängen! Das ist das Ziel: den Wert zu finden, bevor sich das System aufhängt.

Beim nächsten Start, setze ich dann den Wert an, der zuletzt funktioniert hat. Nun kommt ein langer Stresstest. Hängt sich das System nach einiger Zeit immer noch auf, erhöht man die Spannung um noch einen Schritt.

Wichtig ist generell, dass die Prozessortemperatur niemals höher wird, als maximal erlaubt (siehe technische Spezifikation im Prozessorblatt). Sollte die Temperatur dennoch zu hoch werden, stimmt eine andere Einstellung nicht z.B. im Mainboard die Overheat- Funktion, oder aber die Kühlung ist defekt.

In Windows lässt sich das auch erreichen, hier schreibe ich kurz die Tools zusammen, die für die Messung verwendet werden können:

Die Einstellungen lassen sich im Bios einstellen. Tipps aus https://www.youtube.com/watch?v=i91s_1-546w für den Ryzen 5800X. Dieser CPU zeichnet sich durch extreme Leistungsaufnahme und damit Temperaturen bis zu 90 Grad im Normalbetrieb aus.

  • Windows Energiesparplan auf Ausbalanciert, dann nochmal Energieoptionen, Regler Leistung und Energie auf „Bessere Leistung“ einstellen (nicht „Maximale Leistung“)
  • Im Bios ins Overclocking- Menü gehen, Precision Boost Override, PPT Limit (W) 105 anstelle 142 im Default, TDC Limit (A) 75, EDC Limit (A) 105 anstelle 140
  • Max. CPU Boost Clock Override = 200 MHZ (Achtung: hohe Leistung, aber auch instabil)
  • Curve Optimizer, Negativ 10 - 15 setzen zum Probieren (Negativ = Undervolting)

Auswirkung: der beste Kern sollte über 5ghz kommen und dabei sollten die 105W eingehalten werden. Der Core bleibt an die, aber unter 80 Grad. Laut AMD kann 85 Grad unter dauerlast erreicht werden.

Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
  • content/undervolting.txt
  • Zuletzt geändert: 2022/11/20 08:21
  • von Daniel