Ich habe mich jetzt dem Thema Ryzen und Windows vs. Linux Energieverbrauch nochmal intensiv gewidmet und die untenstehenden Ergebnisse gewonnen. Unterschiedliche Stabilität festzustellen war dabei eher ein Nebeneffekt.
Wen nur die Schlussfolgerungen interessieren, kann ganz zum Ende springen.
Wesentliche TestkomponentenAMD Ryzen 5 1600X
Asus ROG Crosshair VI Hero
Asus ROG GTX 1080 Advanced
G.Skill Flare X DDR4-3200 CL14
Softwareversionen im TestAsus BIOS 1403 (AGESA 1.0.0.6)
Windows 10 Version 1703
Fedora 26
Ubuntu 17.04
Prime95 Version 28.10 64-bit (sowohl für Windows wie auch für Linux von
https://www.mersenne.org/download/)
Raumtemperatur war 26.3C bis 27.2C bei 50% Luftfeuchtigkeit während der Tests. Die CPU blieb immer unter 75C (Tdie) und damit weit entfernt von einer Drosselung, was die Ergebnisse in ihrer Vergleichbarkeit natürlich negativ beeinflusst hätte.
TestbeschreibungUntersucht wurde der Stromverbrauch unter Windows und Linux im Idle und unter Last, wobei beim Lasttest alle drei Prime95 Tortue Tests ausgeführt wurden. Der Idle Verbrauch wurde 1 Minute nach Systemboot gemessen, wobei in Windows sichergestellt wurde, dass keine "großen" Hintergrunddienste wie Skype oder Steam laufen. Der Monitor war aus, um eine Beeinflussung durch unterschiedliche Standardhintergründe im Energieverbrauch zu vermeiden. Ebenso waren die Lüfter im BIOS auf ein Standardprofil fixiert, so dass höherere Drehzahl der Lüfter zu keinem höheren Stromverbrauch aufgrund mehr Abwärme führen konnte. Wobei hier angemerkt sei, dass wenn der CPU Lüfter hochdreht nur 1-2 Watt mehr in der Praxis verbraucht werden, was diesen Test unwesentlich verändert hätte im Ergebnis.
Die Prime95 Tests wurden immer in der Reihenfolge Blend, SmallFFT, LargeFFT durchgeführt, da normalerweise der Stromverbrauch erwartungsgemäß mit jedem Test steigen sollte. Die Tests liefen jeweils für 3 Minuten und der Stromverbrauch wurde auf ganze Watt gerundet. Gemessen wurde an der Steckdose mit Hilfe einer AVM Steckdose (FRITZ!DECT 200) über einen Zeitraum von 3 Minuten. Corsair Link könnte zwar unter Windows sehr zuverlässige Verbrauchswerte liefern, mir war aber keine brauchbare Alternative bekannt die unter Linux und Windows läuft und mir kam es darauf an, dass auf die gleiche Weise eine Verbrauchsmessung stattfindet.
Insgesamt wurden 5 Szenarien untersucht und die Ergebnisse beurteilt. Ergebnisse die unerwartete Abweichungen darstellen oder sonst irgendwelche Besonderheiten aufweisen sind in der Erläuterung rot gekennzeichnet.
TestszenarienScenario 0 ist das Referenzszenario mit Stock Einstellungen. Hier wird der Verbrauch in Watt des Gesamtsystems angegeben. In allen folgenden Szenarien wurde der abweichende Stromverbrauch gegenüber Scenario 0 angegeben und nicht der Gesamtverbrauch, entsprechend sind die Werte negativ.

Scenario 0 System Settings: DDR4-3200 @ 1.35V (Auto); SOC 1.15V (Auto); Vcore 1.45V (Auto) - Vcore XFR 1.50V (Auto) - Vcore Load 1.25V (Auto)
Aufällig ist, dass beim Asus Board die VCore by default auch ohne OC höher liegt als die AMD Spezifikation besagt. Dies sollte bei den weiteren Szenarien berücksichtigt werden, da mein negatives offset von einem von Asus standardmäßig angewendeten offset abzuziehen ist und nicht von der von AMD vorgegebenen Stock Voltage von 1.2 (Load) - 1.3625 V (Idle). Interessanterweise basiert der offset wohl auf einer Custom VID Table von Asus, da er im Idle knapp 0.10V beträgt und unter Last nur mehr 0.05V, da hier mit Auto Settings 1.25V erreicht werden. Bei XFR werden nochmal 0.05V raufgepackt. Mit dieser Erkenntnis relativiert sich die Aussage, dass ich mit undervolten ein System außerhalb der Spezifikation betreibe. Im übrigen ist DDR4-3200 schon außerhalb der Spezifikation ...
... daher habe ich mir in
Scenario 1 mal die Mühe gemacht alles mit DDR-2400 durchzumessen.

Scenario 1 System Settings: DDR4-2400 @ 1.2V (Auto); SOC
1.05V (Auto); Vcore 1.45V (Auto) - Vcore XFR 1.50V (Auto) - Vcore Load 1.25V (Auto)
Anmerkung: Bei meinem Corsair Vengeance DDR4-3000 CL16 Ram den ich vorher hatte, hat das Bios auf SOC 0.8V gestellt wenn ich den RAM mit DDR4-2400 betrieben habe (was auch Prime stable war). Ich verstehe daher nicht warum die SOC Voltage hier so hoch ist und unterstelle, dass man hier deutlich niedriger gehen könnte. Es kann aber auch an einem zwischenzeitlichen Bios Update liegen, von demher ist der Vergleich mit Vorsicht zu genießen.Hier fällt auf, dass der gesparte Strom im BIOS, Windows 10 Idle und Prime 95 Blend Test unter Windows 10 bei dem vor allem RAM getestet wird fast identisch ist. Aus meiner Sicht entspricht das auch dem erwarteten Verhalten, da es anders als bei CPU/GPU keine Stromsparfunktionen auf OS Ebene in Windows 10 für RAM gibt.
Nicht zu erklären ist allerdings wieso dann in Fedora im Idle messbar weniger und im Blend Test messbar mehr Strom gespart wird (der Gesamtverbrauch bleibt jedoch in beiden Fällen in Linux deutlich höher).
In
Scenario 2 bin ich dann wieder auf Standard RAM Einstellungen (Standard für diesen RAM) von DDR4-3200 zurück gegangen, habe allerdings die SOC Voltage fix auf 1V eingestellt (dem von AMD gedachten Standardwert). Asus arbeitet auch hier mit "Auto" mit einem ordentlichen positiven offset von 0.15V bei RAM OC, obwohl AMD in den eigenen Foren ja sagt das 1V und DDR4-3200 kein Problem sind mit Samsung B Die und AGESA 1.0.0.4 oder 1.0.0.6.

Scenario 2 System Settings: DDR4-3200 @ 1.35V (Auto); SOC 1.00V (Manual); Vcore 1.45V (Auto) - Vcore XFR 1.50V (Auto) - Vcore Load 1.25V (Auto)
Wie man sieht wird im Idle auf allen Ebenen nur sehr wenig Strom gespart und RAM innerhalb der von AMD vorgesehenen Spezifikation zu betreiben bringt mehr wie Scenario 1 zeigt.
Auch hier lässt sich nicht erklären, warum sich unter Last die gesparte Energie unter Linux als deutlich höher erweist.
In
Scenario 3 habe ich dann SOC wieder auf Auto gestellt und stattdessen VCore mit einem negativen offset von -0.125V undervolted. Windows habe ich die letzten Wochen mit einem noch größeren negativen offset stabil betrieben, dann bootet Linux allerdings nicht mehr, weshalb ich diesen bootbaren Wert als Grenze gewählt habe.
Rückblick: Im Idle verwendet Asus mit Auto 1.45V, während AMD 1.365V vorsieht. Durch das offset erreiche ich 1,325V was entsprechend nur einem undervolting von 0.04V im Idle entspricht und nicht 0.125V wie die Einstellung vermuten lassen könnte. Unter Last lande ich 0.075V unterhalb der eigentlichen Spezifikation.

Scenario 3 System Settings: DDR4-3200 @ 1.35V (Auto); SOC 1.15V (Auto); Vcore negative offset -0.125V = 1.325V (Idle) - Vcore XFR 1.375V - Vcore Load 1.125V
Man sieht sofort, dass gerade unter Last die Einsparung ganz erheblich ist und auch im Idle diese Einstellung mehr bringt, als die SOC Voltage um 0.15V zu reduzieren.
Noch viel auffälliger ist aber folgendes und hier kommt man der Sache mit den Instabilität unter Linux eventuell näher: Trotz massiver Einsparungen auf Bios und Windows Ebene benötigt Fedora Linux im Idle genau gleich viel Strom. Die 0 im Chart ist daher kein Fehler. Ich musste den Test auch mehrmals durchführen um es zu glauben. Der Prime95 Test war nicht durchführbar unter Linux, da das System schon beim Starten von Firefox abstürzt (Asus Q-Code 8 = CPU not operational).
Im letzten
Scenario 4 habe ich die Einstellungen aus Scenario 2 und Scenario 3 kombiniert und noch eine weitere Linux Distribution neben Fedora hinzugezogen.

Scenario 4 System Settings: DDR4-3200 @ 1.35V (Auto); SOC 1.00V (Manual); Vcore negative offset -0.125V = 1.325V (Idle) - Vcore XFR 1.375V - Vcore Load 1.125V
Eine Idle Messung mit Fedora war hier nicht möglich, da bereits der Bootvorgang abstürzt (Asus Q-Code 8, s.o.). Ubuntu bootet zumindest auf den Desktop und spart dann ähnlich viel Energie wie Windows im Idle gegenüber der Referenzmessung. Starten von Firefox führt allerdings wie schon in Scenario 3 unter Fedora zu einem Systemcrash (ebenfalls Q-Code 8), weshalb auch unter Ubuntu kein Prime95 Test möglich war.
Windows läuft absolut stabil mit den Einstellungen (siehe Signatur wenn man nicht mobil auf oc.at zugreift) und das sogar mit noch niedrigerer VCore.
Schlussfolgerungen:- Scenario 0: Ubuntu 17.04 enthält native Nvidia Treiber, was bei Fedora nicht der Fall ist. Bei Fedora hat der Nvidia Treiber auch Probleme gemacht. Damit erklärt sich m.E. der für Ubuntu niedrigere Verbrauchswert in der Referenzmessung gegenüber Fedora. Da der Unterschied im Stromverbrauch bei allen Tests zwischen Ubuntu und Fedora innerhalb von Messtoleranzen immer der gleiche ist, gehe ich hier nicht von besserer CPU Unterstützung aus, sondern es dürfte nur wegen der besser unterstützten Nvidia Grafikkarte strom gespart werden. Ungeachtet dessen benötigt auch Ubuntu wesentlich mehr Strom als Windows.
- Da Linux keine Probleme hat wenn ich nur RAM OC betreibe = DDR4-3200 (was außerhalb der Spezifikation von AMD ist), gehe ich davon aus das RAM hier nicht das Problem ist, wie es bei Ryzen zu Beginn oft der Fall war. Linux hat auch keine Probleme wenn ich die SOC Voltage von 1.15V auf 1.00V reduziere.
- Fedora hat meiner Ansicht nach Probleme die VID zu interpretieren und fährt möglicherweise eine falsche Voltage wenn ich mit einem offset arbeite, denn anders kann ich mir nicht erklären wieso Fedora im Idle gleich viel Strom verbraucht in Scenario 0 und Scenario 3, während im Bios und Windows deutliche Einsparungen (erwartungsgemäß) zu messen sind.
- Ja ich weiß, mit undervolting betreibe ich ein System außerhalb der Spezifikation. ABER: Windows 10 ist seit Wochen auch bei tagelanger Volllast (habe Excel Tabellen mit Power Queries die mehrere Tage laufen ohne jetzt hier ins Detail zu gehen und sowohl RAM wie auch CPU über Tage maximal auslasten). Von Linux hätte ich mir erwartet das es noch wesentlich stabiler und fehlertoleranter als Windows ist, da die ganze Background Bloatware nicht existiert. Ich sehe das Problem zwar schon auch bei AMD/Ryzen, der Linux Kernel ist aber vielleicht nicht ganz unschuldig. Windows musste ja auch erst angepasst werden, wenngleich Anpassung hier nicht heißt, dass vorher Windows massenhaft abgestürzt ist.
- TO-DO: VCore offset von -0.05V testen um zu prüfen ob Linux näher an der Spezifikation immer noch stabil läuft (Asus overvolted massiv mit Auto Settings, s.o.), was dann zu VCore 1.2V (Load) - 1.4V (Idle) führen würde und ggü. der Spezifikation nur einem leichten over(!)volting im Idle und Standard unter Load entspricht. ... (s.u.)
tbc und ich freue mich auf die weitere Diskussion

Auf CPU RMA hätte ich echt keine Lust. Ist nicht so, dass ich hier lauter andere PCs als Alternative rumstehen habe
Edit Wie im TO-DO angekündigt und ich vermutet hatte läuft Linux mit Vcore offset -0.05V (hier Fedora) gerade noch so. Eine Stufe niedriger führt Prime schon zum sofortigen Crash. Heißt für mich eigentlich dass dauerhafter Betrieb nach AMD Spezifikation bei hoher Last nicht möglich ist.