Undervolting van HP Probook met Core i5 6200U

Door heintjeput op woensdag 27 januari 2016 22:07 - Reacties (5)
Categorie: -, Views: 3.306

Onlangs heb ik een HP Probook 440 G3 T6N99ET aangeschaft met een Intel Core i5 6200U SoC en hier ben ik tot nu toe vrij tevreden over. Omdat ik altijd wil proberen of er iets te tweaken valt op het gebied van performance ben ik dat ook voor deze laptop gaan bekijken.

Overklokken zit er voor de meeste laptops niet in, zo ook deze. Toch valt er wat te winnen, door middel van undervolten kun je delen van de SoC op een lagere spanning laten draaien, dit zou zo z’n voordelen kunnen hebben, maar is dit ook echt zo? Er zijn twee beveiligingen ingebouwd in de SoC die de CPU, GPU, north-bridge etc bevat. Wat betreft performance voordelen is een vermogensbegrenzing en een temperatuurbeveiliging en daarnaast voor een laptop is batterijduur niet onbelangrijk en op alle 3 kan undervolten een positief effect hebben.

Een vermogensbegrenzing betekent niet veel meer of minder dan dat de SoC een maximaal vermogen mag gebruiken, dit is volgens mij voornamelijk om de batterij te sparen en de koeling binnen de perken te houden. De i5 6200U heeft een TPD meegekregen van 15 Watt, maar dit is aan te passen, want het is eigenlijk een configurable TPD (cTPD). Het vermogen van een willekeurige chip schaalt als volgt P = C U2 f met P vermogen (Watt), C capacitance (W/V2 Hz) een constante voor een gegeven SoC, U de spanning (Volt) en f de frequency (Hz). Als de TPD van 15 Watt wordt bereikt gaat de SoC power throttlen, oftewel de kloksnelheid (en spanningen) verlagen om het vermogen onder de 15 Watt te houden.

De temperatuurbeveiliging is een maximumtemperatuur die de SoC mag hebben, als de temperatuur daarboven komt gaat deze thermal throttlen, de kloksnelheid (en spanningen) verlagen om de temperatuur ook te verlagen. Mux heeft dit onlangs ook behandeld in een van zijn video’s. Een lagere spanning geeft ook hier een lager vermogen, dus minder warmteontwikkeling en een lagere temperatuur, of een hogere kloksnelheid bij dezelfde temperatuur.

Als laatste is er nog een mogelijke winst te behalen op het gebied van batterijduur. Doordat er gewerkt wordt met Dynamic Frequency Scaling heeft een effect op de performance mogelijk ook effect op de uiteindelijke batterijduur van de laptop. Immers als er sneller gerekend kan worden binnen hetzelfde vermogen is de bewerking sneller klaar. Daarnaast geldt hier weer een lagere spanning en dus een lager energieverbruik.

Software
Intel heeft Intel Extreme Tuning Utility (Intel XTU) vrijgegeven. Hiermee kun je dingen tunen (in rood aangegeven):
  • Core Voltage Offset, een offset ten opzichte van de normale spanning voor de CPU cores, de parameter waar in dit geval de meeste winst te behalen valt.
  • Turbo Boost Power Max (TBPM), standaard 15 Watt voor deze SoC, het standaard vermogen wat de SoC mag verbruiken.
  • Turbo Boost Short Power Max (TBSPM) is een max boostpower, standaard 25 Watt voor maximaal 28 seconde. Dit is de tijd en maximaal vermogen die de SoC over de 15 Watt heen mag gaan om net wat extra snelheid mee te pikken.
  • Process Graphics Voltage Offset, vergelijkbaar met de Core Voltage Offset, maar dan voor de GPU.
En monitoren (gelogde waarden in paars en huidige waarden in oranje):
  • De actuele temperaturen van de SoC
  • Frequencies waarop de Cores en de GPU draaien
  • De spanningen waar de cores en gpu op draaien
  • Het vermogen dat de cores en de GPU gebruiken
Intel XTU
Om testen makkelijker te maken, is de Intel XTU client ook nog via de commandline te benaderen via XtuCLI.exe in de client directory van de Intel XTU install directory. Alle opties hiervoor zijn te benaderen via “Xtucli.exe -?”, mocht je spanningen in willen stellen, hou er dan wel rekening mee dat je bepaalde waardes die ook in XTU voorkomen moet kiezen voor -80mV moet ik -80,078125mV instellen anders wordt deze niet geaccepteerd. Het commando wat ik gebruik ziet er als volgt uit: “C:\Program Files (x86)\Intel\Intel(R) Extreme Tuning Utility\Client\XTUCli.exe -t -id 34 -v -80,078125” waar id 34 voor de Core Voltage Offset staat en id 83 voor de GPU.

Prime95 heb ik gebruikt om te stress testen en zoveel mogelijk vermogen uit de cores te trekken. Small FFTs geeft het hoogste verbruik in vermogen voor de CPU. Furmark was om de GPU om te stress testen.
Met BatteryMon heb ik het batterijverbruik bepaald. Deze logt elke 10 seconde het energiegebruik, per meting heb ik de eerste 5 en laatste 5 punten weggegooid en van de rest het gemiddelde genomen.
Als laatste Python om wat aan elkaar te scrypten, zodat ik de testen niet allemaal handmatig uit hoefde te voeren.

Meten en analyseren
Temperatuur
Om te zien of de SoC ging thermal throttlen heb ik onder verschillende omstandigheden gekeken of dit gebeurde. Bij stock spanning en power settings lukte dit niet. De temperatuur liep dan op naar maximaal 74C onder normale omstandigheden en 78C als de luchtinlaat werd geblokkeerd door de bank.

Als ik de TBPM verhoog naar 27,5 Watt en de Core Voltage Offset naar +150mV dan begin ik met 94C in de buurt van de thermal throttling grens van 100C. Ik ben niet verder gegaan, want ik geloof dat de koeling van deze laptop wel voldoet en ik hier in praktijk nooit last van zal hebben. Voor andere laptops / tablets kan dit anders liggen.

Power throttling
Als alleen de CPU belast wordt met Prime95, dan gebruikt de SoC maximaal 17 Watt. Dit houdt hij dus 28 seconde vol met de TBSPM van 25 Watt, daarna zakt de Core Frequency terug naar ~2,55 GHz en bij behorende spanning om het vermogen op 15 Watt te houden.
Als je kijkt naar onder staande figuur dan zie je in het rode blok de toestand bij idle, er is wat fluctuatie, maar de TDP (rode lijn), de core voltage (gele lijn) en core frequency (oranje lijn) zijn laag. In het oranje blok geldt de TBPSM van 25 Watt en is de Package TPD 17 Watt. Na 28 seconde komt de power throttling in (groenige lijn), zakte de core frequency naar 2,55GHz en daarmee de Package TPD naar 15 Watt. In het paarse blok heb ik de TPD verhoogd naar 18 Watt. De core frequency stijgt weer naar 2.69GHz en er wordt 17 Watt Package TPD gebruikt.
Power Throttling
Een vergelijkbaar scenario is te maken als de CPU en GPU tegelijkertijd worden gebruikt. De core frequency zakt dan nog wat verder in naar 2,24GHz of andersom je hebt dan ongeveer 19.5 Watt nodig om niet in de power throttling te komen.

Energieverbruik scenario’s
Ik heb een aantal scenario’s vergeleken, allen met stock power settings en alle settings 3 keer 10 minuten gemeten met batterymon en van deze 3 metingen het gemiddelde genomen. Windows High Performance settings met maximum brightness tegenover Power Saver settings met Airplane mode aan en minimum brightness. Daarnaast is er gevarieerd tussen Prime95 aan of niet en Furmark aan of niet. Hieronder zie je verbruik dat dan gemeten wordt voor de hele laptop. Power Saving settings levert dus een flink verschil op in verbruik, als Prime95 en / of Furmark gedraaid worden, maar dit reduceert naar een zeer klein verschil als de laptop idle is. Ook hier zie je dat de bijdrage van de GPU op het energieverbruik maar minimaal is. Met een batterij van 44Wh, zou ik 1,6 uur batterijduur hebben bij high performance en Furmark en Prime aan tegenover 4,5 uur bij idle.
Een 720p film of het beeld alleen op een externe monitor weergeven lijkt niet veel te doen t.o.v. het idle gebruik en is niet verder gemeten.
Stock power usage
Undervolten
Vergelijkbaar met overklokken ga je voor undervolten in kleine stappen naar beneden in de spanningen, Core Voltage Offset en Processor Graphics Voltage Offset. Tussendoor testen met Furmark en Prime95 of er niks instabiel wordt en daarna weer verder omlaag. Bij beide settings op -90mV wordt het systeem licht instabiel en uiteindelijk kwam ik op offsets van -80mV uit als een stabiele waarde, die >16 uur Prime95 en Furmark stabiel was.
Temperatuur
Door het lagere energieverbruik daalt de temperatuur verder, aangezien dit geen issue was heb ik hier niet verder naar gekeken.
Power throttling
Voor alleen Prime95 is nu nog 14 Watt nodig, de core frequency blijft altijd 2.69GHz. Bij Prime95 en Furmark is er nu 15,5 Watt nodig en gaat de core frequency nog wel wat omlaag naar 2,58GHz, maar een stuk minder dan eerst. Er is dus een winst van 15% procent op CPU performance.
Energieverbruik
Dezelfde scenario’s zijn weer bekeken, maar nu ook met de -80mV undervolt voor de CPU en de GPU. De verbruiken zijn weer vergelijkbaar, als Prime95 gedraaid wordt dan daalt het vermogen met ongeveer 3 Watt, wordt Furmark gedraaid dan daalt het vermogen ongeveer 2 watt. De vermogenswinst is maximaal 4 Watt. Op het moment dat het systeem idle draait dan is het verschil tussen alle settings te verwaarlozen.
Undervolt power usage
Conclusies
Voor deze laptop is thermal throttling geen probleem, hiervoor hoef ik niet te undervolten.
Power throttling treedt hier een klein beetje op als ik meer dan 28 seconde de CPU vol belast en wat meer als ik de CPU en GPU vol belast. Dit wordt minder als ik undervolt op deze laptop, maar het is een klein verschil waarvan ik het verschil in praktijk waarschijnlijk niet zal merken.
Voor het energieverbruik en batterijduur geldt ongeveer hetzelfde, er is een redelijk verschil als je de cpu of gpu intensief gebruikt, maar voor het huis-tuin-en-keukengebruik waar deze laptop is, zal het verschil weer in het watervallen. Omdat het kan heb ik toch even een scriptje in Python geschreven vergelijkbaar met wat op Reddit wordt beschreven om 1 minuut na het opstarten de SoC 80mV te undervolten, elke winst is meegenomen.
Overigens kan dit voor andere configuraties en gebruik weer helemaal een andere kant opvallen. Als de koeling matig is en / of de TPD lager is in vergelijking tot het maximum dat de SoC kan verbruiken en bij veel CPU of GPU intensieve taken die gedaan worden in de trein is het waarschijnlijk wel interessant.