TDP: verklaard

Door Darkstone op donderdag 17 januari 2013 01:12 - Reacties (10)
Categorie: -, Views: 3.829

Neem een moment om eens na te denken over het begrip TDP, wat Thermal Design Power betekent, een specificatie van processoren. In de volksmond wordt TDP vaak uitgelegd als het maximaal wat de chip kan verbruiken. Dat is deels waar: AMD definieert TDP als het theoretische maximumverbruik1, Intel definieert TDP als het gemiddelde verbruik onder zware load met maximale Tcase 2. Tegenwoordig heb je ook ACP van AMD en SPD van Intel die, respectievelijk, het gemiddelde maximumverbruik en het gemiddelde verbruik is. Dat woordje maximum is een belangrijke: SPD heeft absoluut niets te maken met het verbruik van de processor onder een stresstest.

Het type TDP wat ik hier onder de loep wil nemen is dat van Intel. Of meer specifiek, de implementatie van TDP in de (op de Sandy Bridge architectuur gebaseerde) mobile i5-2520M 3 in de latitude E6520. (om typwerk te besparen, vanaf hier simpelweg 'i5' en 'laptop' genoemd). Hieronder volgen enkele specificaties van de i5:

TypeIntel Core i5-2520M
Stock snelheid2.5Ghz
Max. turbo (1 core)3.2Ghz (7 bins)
Max. turbo (2 cores)3.0Ghz (5 bins)
Aantal cores/threads2/4
GPU typeIntel HD 3000
Stock snelheid[ (GPU)650Mhz
max. turbo (GPU)1300Mhz
TDP35 watt


De laptop is uitgerust met uitstekende koeling en een dedicated grafische kaart, die verder niet gebruikt wordt. Om de indruk te geven van de koeling: met zowel de ventilatiegaten in als uit zo veel mogelijk afgedekt bereikte ik na een bijna uur durende stresstest de maximimtemperatuur van 93░ zonder noemswaardige throtteling. (af en toe ÚÚn bin lager, maar vooruit). Op lage kloksnelheden is het mogelijk om prime95 passief te draaien, dat geldt ook voor de IGP.

Deze combinatie wordt aan een aantal stresstests onderworpen. De CPU wordt getrest met prime95, welke altijd in "In-place large TFT" mode wordt gedraaid. De GPU (IGP) wordt gestrest met RTHDRIBL op de helft van mijn 1080p scherm.

De resulterende informatie wordt gelogd met HWInfo32, tenzij anders vermeld, met een resolutie van 1 seconde. HWinfo is bij mij helaas niet in staat om de kloksnelheden van de CPU nauwkeurig te loggen. Daarom zul je deze niet in de grafieken vinden. Ondanks dat het best interessante data is. De kloksnelheden van de CPU worden ge´nspecteerd, maar niet gelogd, met throttlestop.

Test


De volgende test cases worden behandeld. Let er op, indien je deze testen herhaalt, dat het energieschema op maximum performance of vergelijkbaar is ingesteld. Let er ook op dat throttlestop uit staat. (hij mag wel draaien, maar niet actief, al heeft dat voor zover ik heb getest geen invloed op de resultaten).

• Alleen CPU load
• Alleen GPU load
• GPU en CPU load.
• Eerst CPU load, daarna GPU load
• Eerst GPU load, daarna CPU load

Alleen CPU load

alleen CPU load
Bij het starten van de test verbruikt de package in totaal ongeveer 32w. Het maximum geobserveerde verbruik is 32.6w voor de package, waarvan 28.82w de CPU. De stijgende lijn is te verklaren doordat transistors meer stroom verbruiken naarmate ze warmer worden. De processor kan de turbo boost tot in de eeuwigheid volhouden.

Alleen GPU load

Alleen GPU load
Hier hebben we te maken met een bug in het power management van windows: de test is gestart op het 'High performance' schema. Maar de GPU bleef op de stock clocks draaien. Na het omschakelen naar 'Balanced' en weer terug naar 'High performance' ging de GPU naar de juiste versnelling. Waar hij de rest van de test bleef.

Het maximaal geobserveerde package verbruik is 22.5w, terwijl de GPU maximaal 10.9w verstookt in deze omstandigheden. Er is ook lichte CPU load te zien, te verklaren doordat de CPU de GPU van data moet voorzien.

GPU en CPU load

Belangrijk bij deze test is dat de CPU en de GPU stresstesten ongeveer tegelijkertijd worden gestart. Tellen we het maximaal geobserveerde verbruik van de CPU en de GPU in de tests hiervoor bij elkaar op, dan komen we uit op ongeveer 39w (+ enkele watt voor de northbridge en RAM i/o en …)
CPU en gPU load
Het wordt nu al interessanter. De GPU bereikt niet meer de maximale kloksnelheden, maar blijft steken op zo'n 1150Mhz. Na 41 seconden geeft de CPU er de brui aan en gaat hij terug naar zo'n 2.6Ghz. Daarna neemt de snelheid van de CPU heeeeel langzaam af tot hij op de 2.5Ghz terechtkomt. Let op de groene lijn. De totale package power is werkelijk kaarsrecht in het 2e gedeelte van de test.

In het eerste gedeelte van de test gebruikte de package 38.9w. Bij het tweede gedeelte was dat 33.8w. De CPU temperatuur op het 'kantelpunt' was 79░

Eerst CPU load, daarna GPU load

Op dit punt vond ik het interessant om te kijken of er een verschil zat in de volgorde waarin je de load toepast. Eerst wordt de CPU flink aan het werk gezet, na enige tijd wordt de GPU bijgezet.
CPU daarna GPU load
De CPU startte de stresstest met het gebruikelijke tempo. Wat de GPU doet is interessanter: bij het starten van de GPU stresstest gaat hij naar 800Mhz, waar dat bij de vorige test 1150Mhz was. Het resultaat is een hoger geklokte CPU, na een vrij arubte dip daalde de snelheid langzaam van 2.75Ghz naar 2.7Ghz: 200Mhz meer CPU, ten koste van een 350Mhz lager geklokte GPU, in vergelijking met gelijktijdige start.

Na het starten van de GPU stresstest duurde het 18 seconden voordat de kloksnelheid van de CPU begon te dalen, op welk punt de core 78░ aantikte. De Package stabiliseerde zichzelf op 33.1W.

Eerst GPU load, daarna CPU load

GPU daarna CPU load
Voorspelbare resultaten, het verbruik van de package gaat richting de 40w, blijft daar 28 seconden, en laat vervolgens een kaarsrechte lijn zien die 33.9w meet.

De CPU bleef stabiel op 2.5Ghz, de stock clocks. Op moment van downclocken was de package 80░. Een temperatuur die overigens al 13 seconden daarvoor is aangetikt.

Samenvatting


De testen zijn allemaal samen te vatten als volgt:
Als het TDP niet wordt behaald draaien de componenten zo veel mogelijk op de maximale kloksnelheid. Wanneer het TDP wordt overschreden duurt het X tijd voordat de processor besluit het TDP te handhaven. Overigens lijkt 'het TDP' eerder 34w te zijn dan 35w.

De temperatuur lijkt niet van invloed te zijn op dit process. Om die reden heeft throttlestop ook geen effect in deze tests.

Nadere inspectie wijst mij op dit schermpje in throttlestop:
power limit / TPL in throttlestop

Na enig onderzoek kom ik op de volgende verklaring uit:
Intel« 64 and IA-32 Architectures Software Developer’s Manual
Volume 3A: System Programming Guide, Part 1

MSR_PKG_POWER_LIMIT allows a software agent to define power limitation for the package domain. Power limitation is defined in terms of average power usage (Watts) over a time window specified in MSR_PKG_POWER_LIMIT. Two power limits can be specified, corresponding to time windows of different sizes. Each power limit provides independent clamping control that would permit the processor cores to go below OS-requested state to meet the power limits.
http://forum.techinferno....-potential.html#post13967

Kortom, je kan 2 thresholds instellen plus een tijd dat die threshold mag worden overschreden. Als de processor een bepaalde tijd over een bepaalde limiet heen gaat, forceert-ie een lagere kloksnelheid of worden er andere manieren toegepast om het energieverbruik binnen de perken te houden.

concluderend, Intel TDP is een lange-termijn maximumverbruik, en heeft niets te maken met het echte maximumverbruik. Dat kan veel hoger liggen, en er zijn vast nog veel ergere scenario’s te bedenken dan diegene die ik hier heb getest.

Verder moet je er ok rekening mee houden dat het TDP in feite user defined is. Het werkelijke TDP kan volgens de bron hierboven met een factor 1.3 worden verhoogd. In sommige laptops kan de user dat doen. Het spreekt voor zich dat dat bij dit zakelijke model laptop niet tot de mogelijkheden behoort.

Ik vraag me dan alleen wel af hoe ze dat doen met de quadcores. Na wat snelle rekensommen zou een sandy-bridge quadcore op 2.5Ghz de limiet van 45w moeten doorbreken, terwijl er quadcores bestaan op deze architectuur die boven de 3Ghz draaien. Mogelijk is dat te verklaren door betere binning om lagere voltages voor elkaar te krijgen.

references


[1] http://www.amd.com/us/Documents/43761C_ACP_WP_EE.pdf
[2] http://www.intel.com/cont...processor-power-paper.pdf
[3] http://ark.intel.com/prod...r-3M-Cache-up-to-3_20-GHz


update de tests hier zijn gedraaid met prime95 25.11. Wanneer ik ik plaats daarvan prime95 27.7 start is het energieverbruik een watt of 5(!) hoger, package = 37.8w. Na enige tijd klokt de processor terug naar 2.8Ghz.

Volgende: Windows 8 installeren in een VHD 09-'11 Windows 8 installeren in een VHD

Reacties


Door Tweakers user Blokker_1999, donderdag 17 januari 2013 05:49

Overigens lijkt 'het TDP' eerder 34w te zijn dan 35w.
Er van uitgaande dat je hier iets softwarematig afleest moet ik je zeggen dat dit cijfer eigenlijk waardeloos is. Het is een schatting van het verbruik, maar als je eens zou zien wat voor precisie componenten je nodig hebt om een goede meting te doen dan kan ik je zo vertellen dat men zoiets echt niet in zo een klein pakket kan verstoppen.

In principe is TDP een nummer voor de fabrikant van koelers. Dit geeft aan aan wat voor vermogen aan warmte men moet kunnen afvoeren onder welke condities. Een deel van het elektrisch vermogen word nog altijd gebruikt voor de uiteindelijke bewerkingen in je CPU, het is dus opmerkelijk dat in dit geval de cutoff zo dicht bij het TDP ligt (opnieuw, dat kan ook gewoon aan de meting liggen).

Geef mij in dat opzicht maar het systeem van AMD, daar gaat men voor een absoluut maximum dat je, in principe, onder de zwaarste omstandigheden niet zult halen..

Door Tweakers user Darkstone, donderdag 17 januari 2013 10:04

Goede punten. Ik lees het softwarematig uit, in de CPU zit wat regelhardware die intel gebruikt voor het regelen van het energieverbruik. Dat is inderdaad een schatting.

Of de processor op bij een meting van 35w nu in werkelijkheid 20w of 50w verbruikt is echter niet zo belangrijk. Als intel uitleest dat-ie 33.8w verbruikt, dan verbruikt hij (voor de regelhardware) minder dan het TDP, en dus zou ik verwachten dat hij nog ietsje sneller zou gaan draaien.

Waar het mij meer om ging was dat intel het TDP echt lijkt te forceren. Een i7-3517U (17w TDP) is theoretisch even snel als i5-3210m (35w TDP). Als je er bij wijze van spreken koeling opzet die 100w kan afvoeren, dan zul je zien dat na een korte periode waar de strijd gelijk op gaat de 17-watter terugvalt op 17w, terwijl de 35-watter meer stroom kan verstoken.

Neem deze acer bijvoorbeeld: http://www.notebookcheck....kk-Ultrabook.82547.0.html met i7-3517m. Draait op bij gelijktijdige stress op 1200Mhz/1000Mhz. Gisteren zou ik hebben gezegd dat dat het resultaat was van temperature-based throtteling. Maar nu weten we wel beter.

[Reactie gewijzigd op donderdag 17 januari 2013 10:07]


Door Tweakers user Infant, donderdag 17 januari 2013 14:57

Wat het systeem daadwerkelijk verbruikt, en wat het denkt dat het verbruikt verschilt als het goed is, niet erg veel. Misschien een of twee procent.

De temperatuur hoeft ook niet super nauwkeurig te zijn, een 5 graden afwijking is niet zo boeiend, zolang er met deze onnauwkeurigheid rekening gehouden wordt, is er niks aan de hand.

Ik ben heel blij met deze plotjes, want ik was hier zelf ook al een beetje in gedoken om het stroom verbruik van mijn notebook naar een minimum krijgen.

Ik neem aan dat het loggen in het Sensor gedeelte gebeurt? Ik heb op mijn Core2Duo ding geen enkel veld wat Wattage uitspuugt, maar de clock frequenties wil hij dan weer wel loggen.

De x64 Beta van HWInfo geeft over mijn accu wel de beste waardes weer van alle software die ik heb kunnen vinden, maar sommige getallen kloppen gewoon niet.

Door Tweakers user Darkstone, donderdag 17 januari 2013 15:02

Vanaf sandy bridge spuugt de processor metingen uit. Mijn CPU heeft er 3: package power (watt), IA cores power (de CPU, volgens mij zonder de cache) en GT cores power, wat de GPU voorstelt. Gelogd met HWInfo32.

Op eerdere systemen kan je de discharge rate van de accu gebruiken. Daar heb ik een testscript voor gemaakt. Resultaten hier. download het powershell script hier. Openen in powershell ISE (standaard aanwezig vanaf vista) en druk op F5 en wacht 11 minuten. Wellicht vind je Blog van Darkstone: EIST onder de loep ook interessant, maar de metingen zijn verkeerd uitgevoerd (geen rekening gehouden met evt. veranderende voltages binnen de accu).

Edit: script uitvoeren met admin rechten.

[Reactie gewijzigd op donderdag 17 januari 2013 18:38]


Door Tweakers user Darkstone, donderdag 17 januari 2013 16:01

Ik heb het quadcore verhaal even getest met een i7-3820QM uit een M6700. Bij de start van prime95 gaat-ie naar 3.5Ghz op alle cores met een power consumption van 50w. Na een seconde of 30 daalt de kloksnelheid naar 3.2Ghz met een power consumption van rond de 45w.

Het lijkt er dus op dat er CPU's bestaan die hun eigen turbo niet eens vol kunnen houden binnen het TDP.

Door Roy, donderdag 17 januari 2013 17:25

Mooie uitgebreide uitleg, wel een kleine kanttekening. De uitleg beschrijft niet de TDP, maar het principe van "power budgetting". Dit wordt uiteraard niet uitsluitend door Intel gebruikt, ook nVidia grafische kaarten hebben bijvoorbeeld een power budget (beschreven in de PCI-e headers). Het budget voor de CPU is gelijk aan de TDP. :-)

Door Tweakers user Infant, donderdag 17 januari 2013 18:35

Het scriptje draait wel bij mij, maar leest waardes 0 uit.

Terwijl het PS commando "gwmi -Class batterystatus -Namespace root\wmi" wel iets van waardes oplevert.

Maar, dit gaat toch niet werken. Want ook powershell haalt deze waardes uit de Win32_Battery class. Deze krijg ik er in C++ wel uit, maar de waardes die hier in staan:

1: Kloppen niet.
2: Worden soms eens per kwartier geŘpdatet, en zeker niet vaker dan eens per minuut.

Nou weet ik niet hoe dat op een Dell notebook gaat, maar op deze HP (2730p) is het in ieder geval nutteloos. Ik ben daar in dit blog mee bezig geweest, en heb het met een stuk hardware opgelost.

Door Tweakers user Darkstone, donderdag 17 januari 2013 18:38

Oh, dat was ik vergeten te vermelden. Het script werkt alleen als je hem als administrator uitvoert.

Als je toch de soldeer skills hebt is het slimmer om zelf een multimeter aan te sluiten denk ik. Dat is een stuk nauwkeuriger.

Bij mij, met verschillende laptops, worden de waarde elke 15 a 20 seconden geupdate, soms sneller, soms langzamer.

Door Tweakers user DCG909, zondag 03 februari 2013 17:57

Darkstone, kun je niet een script maken wat de programma's op jouw testmethode draait?
Dus eerst hwinfo32, dan de cpu test een bepaalde tijd, vervolgens de gpu test. save de resultaten in een grafiek, dingen laten koelen voor 10 (?) minuuten en de volgende serie tests.
Zo kan iedereen (die dat wil), de test zo draaien onder min of meer dezelfde omstandigheden en kan er nog meer data verzameld worden

Ik zou wel interessant vinden om op dit punt een goede vergelijking te zien tussen AMD, Intel, desktops en laptops.

Door Tweakers user Darkstone, zondag 03 februari 2013 19:00

Alleen ondersteunen de AMD's deze sensors niet. Dat schiet dus niet op.

Verder is dit alleen de package. Als je dat gaat vergelijken met een CPU zonder geintrigeerde memory controller gaat de vergelijking bijvoorbeeld stuk.

Of een laptop zuiniger is dan een desktop kan je op een andere manier testen: gewoon naar de voltages kijken. Bij een laptop zijn die vaak lager.

Reageren is niet meer mogelijk