There is very little kown about the power consumption of desktop Ryzen 5000 (Zen 3) systems. The usual tools show 3-4W of SoC power in idle and anothe 2W for the core when playing a YT video. Yet, people struggle to get acceptable energy figures for the complete system besides all claims of high energy efficieny. I look deper into the topic and reverse-engineered where all that power goes to.
For my analysis I used a Ryzen 9 5900X.
Why would you care?
This is those who want the expandability, thermal headroom and peak performance of a desktop PC but at the same time have it running 24/7 as a server, be always available and care for the energy consumption. A laptop is able to do the average daily workload with very little energy, so why shouldn’t a desktop be able to do the same?
TL;DR; Will it be my new always-on low idle power machine?
No, it will not. For my very minimal Ryzen 9 5900X machine with dedicated GPU I could get it down to these numbers:
- 27W in complete idle, monitor off
- ~53W for rapid mouse curser movement and no other load
- 57W at playing a YouTube video
That already includes 8W (idle) / 10W (otherwise) for a RTX1650 Super grapcis card, since the CPU doesn’t include an iGPU. You might get lower numbers if you find a graphics card with lower idle consumption.
For comparison here are the same tests for an Intel i7-4790T based system I built 6 years ago:
- 6W in complete idle
- 6.5W rapid mouse movement
- 9W playing a YouTube video
This system has an iGPU, but also runs two gigabit ethernet ports, three SSDs and several background tasks.
Whats the point here?
AMD praises the high power efficiency of their new Ryzen 5000 desktop CPUs. And than is true, they are efficient, but only under full load (and especially in ECO mode).
At the same time low power entuenthusiasts wonder about the unexpectedly high power consumption under no or light load. The power-performance values that are accessible by diagnostic software do not reflect this ineffciency. They show very good efficiency for low loads, while actual power „magically vanishes“ inside the system. I found out where it hides.
The fact that a significant amout of power consumption does not get reflected in common tuning software (like HWiNFO or Ryzen Master) is a nuisance at best. In the worst interpretation it might suggest something gets hidden from users and reviewers.
Spoiler from the future: Read my next blog entry to find out that several additional power counters actually exist. They only need to get exposed by software to get a much more complete picture of the actual system performance.
Where all the power goes
Preface: All results shown from here on are for a headless system (ie. without a graphics card) to not pollute the power measurements with the extra power consumption of the GPU.
In the typical tools like HWiNFO, Ryzen Master and zenpower it looks like in idle the CPU only consumes 0W of P_Core and ~4W of P_SoC. The reported „package power“ is mysteriously higher, but still doesn’t justify the actual consumption of around 22W. Furtermore, for very light loads P_Core=0.5W and P_SoC=4.5W are reported, but the overall system’s power draw jumps right up to well beyond 40W. All this additional power isn’t reflected anywhere in the numbers that are provided by the usual software tools.
There is no way the other components on the motherboard burn that amount of power without getting extremly hot (which they don’t). So all the missing power has to go into the CPU package.
The question is:
- Where and why?
- Can we somehow stop it or maybe enable additional power saving functions?
- If it is inside the CPU package, why would AMD not include power measurement facilities for such a significant consumer?
- Or do they and only hide it from the users and testers?
The second question might be especially fruitful, beacuse while desktop and laptop CPUs are different, their differences in design are normally not that huge. If they manage to get idle powers of less than 3W for the whole laptop and reasonable run times for light loads, maybe we can enable the same or similar power saving features on the desktop as well. I got the Intel down to single-digit watts, so why should the AMD system use >50W with the slightest load?
I’m curious, let’s dig deeper into this!
Methodology
For various different load szenarios I’m measuring the power going into the 8-pin power connector („P8“) of the mainboard and the 24-pin ATX connector („P24“) sperately. There are no other power supply connections to the test system. This system is headless, i.e. runs linux without a graphics card.
I verfied the P8 connecter is electrically isolated from the connections in the P24 conenctor and only powers the VRMs for P_Core ans P_SoC. What I see on this input should match P_Core + P_Soc as reported by the CPU plus some percent of conversion losses inside the VRMs. (But it doesn’t.)
Idle power and 1 thread load
Lets look at my hardware measurements for complete idle first:
This is the first suprise. On the software side the CPU itself reports P_Core=0W and P_SoC=4.2W when in idle. It even specifically claims I_SoC to be 4.2A at 1.004V. This can’t be right, because there is no way I measure less total power at P8 than what goes into the CPU package via the VDD_SoC lines. So that is a first discrepancy.
For a 1 thread load there is a sudden jump of 29W on P8 and 13W on P24. Only 4W of core activity are reflected in the P_Core value, while P_SoC increases by 1.3W to 5.5W. Looks like a very efficient CPU, but somehow 25W(P9) + 12W(P24) = 37W get lost somewhere on the mainbaord.
To shed some more light on this, I reverse engineered the power distribution of my mainboard (Gigabyte B550M AORUS PRO-P). Luckily the AM4 socket pinout got leaked, which was a big help in identifying the various power rails the CPU actually has. (No idea why one would consider even the pinout confidential in the first place TBH.)
Here is a diagram of the power distribution system:
The numbers next to the CPU package denote the number of pins for the given power rail. The number of pralleled pins sets an uppper limit on the current capability of that net. That way we can ignore the small contributors with only two pins for now and check for the planes with higher power draw potential (i.e. more pins) first.
Higher loads
Here is the complete data set I recorded for different load points. For loading the cores I use the command yes > /dev/null
. Each instance loads one core and leaves the ram untouched. In fact, the ram stays cool for all tests from which we can conclude that the ram sticks themselves don’t significantly contribute to the overall power draw in this test. (I double-checked with only one stick installed: No difference in idle and less than 1W difference under 1T – 24T load.)
VDDIO_MEM is responsible for high P24 power draw
Fact one: The only thing on the mainboard that manages to burn any relevant amout of power besides the CPU package itself and the P_Core + PSoC VRMs (both connectd to P8) is the M550 chipset (conneted to P24). I measured the B550’s thermal output to be ~2.3W (+/-0.5W). So that one is not our main culprit.
Since nothing else on the board produces any significant amout of thermal output, that power has to go into the CPU package. The only connection between P24 and the CPU package with the potential to transport more than ~2-3W of power is VDDIO_MEM_S3. The fact that there are 84 pins for VDDIO_MEM_S3 (more than for VDDCR_SoC!) confirms they expect quite some current draw on that net. The VRM for VDDIO_MEM_S3 is a RT8120 conroller, which is intended for 30A VRMs. At 1.35V up to 40W can be delivered to the CPU package! AHA!
And really, using an oscilloscope, one can see an additional voltage drop of ~200mV between drain and source of the switching transistors of the VDDIO_MEM_S3 VRM as soon as the CPU leaves complete idle. 200mV indicate a current draw in the area of roughly 5-15A for this VRM design. So that is where all the power goes to! The Ryzens Memory controller!
Not the biggest surprise in hindsight, but it makes you wonder why there is no power counter in common software if the power draw is that significant and even higher than the P_SoC power draw for which there is a counter.
To double-check my findings I reduced VDDIO_MEM_S3 from between test 2 and test 3:
Indeed, the additional P24 power consumption between idle and load (ΔP24) goes down by about 25%.
Vanishing P8 power
On P8 we would expect an additional current draw of 8-10W per core until all 12 physical cores are loaded. And indeed, the measurements show exactly this value between 2T and 12T laod (cell C6-C15 in calc sheet). The delta-value for idle->1T and 1T->2T is higher, but that can be easily explained:
The 5900X has two CCDs. The first active thread activates the first CCD, the second thread gets loaded into the second CCD and enables this one as well. Also the SoC has to activate the links to the CCDs. Thats nothing too spectacular. Only the amout of this additional power is much higher than what I am used from team blue. Granted, team blue uses a very different internal architecture, but they also have to have some interconnection between the cores and to the outside world that needs to be powered.
So, what this leaves is:
- The additional power draw for the framework is enormous.
- This additional power is not reported in software. Making the CPU look much more energy efficient than it it, especially at light load.
I have no clue how this problem is solved on the mobile platforms and couldn’t find any documentation on this topic either. Can the power draw influcened that heavily by (possible undocumented) software switches? Or do they use a completely different SoC architecture and process for their mobile platforms? If you know more, let me know.
Conclusions
- The „mysteriously vanishing“ power actually goes into the CPU package.
- It is absolutely unclear to me, why there is no software accessible measurement of the VDDIO_MEM_S3 power. (Note from future: It exists, even many more, but they are hidden in the official software.)
- Also, under the lightest load >20W more power are consumed from P8 than what is reported in P_Core and P_SoC. This can’t be explained by VRM losses. The majority has to go to parts inside the CPU which are not included in the internal P_Core and P_SoC measurement.
- The reported „Package Power“ and „PPT“ under-estimate the actual power consumption and thermal output as well.
- Even with only partial load on one core, the CPU package actually draws >35W from all power planes combined, making it a bad choice for low-power desktop PCs.
- There is not much we can do about the high low-load power right now, unless somebody finds switches to enable additional power saving options. I didn’t have much luck with what the BIOS / AGESA exposes.
- I couldn’t find any in depth information on the difference between the SoCs for mobile and desktop use.
- In complete idle, software over-estimates P_SoC (but only by a few Watts).
5800X user here.
Just wanted to say thank you for showing me where the missing 20W went, I was trying to find out for ages but google only came up with forum chats where people answering the question are more clueless than I am. I’m glad I found your blog in the end.
I’m quite dissapointed in AMD. I switched from Intel because I wanted a low power – eco friendly PC. Even with all power-saving features on, the CPU alone still eats about 25W (intel was 6W) at idle, which is unacceptable. I’m also quite surprised about how little discussion has been around this and all the reviews just quote the system power draw and left it at that.
I’ve heared somewhere that AMD will switch the process node of the IO chiplet in the next generation. So at least we can have some hope there? Maybe? Other than that, yes, sadly AMD leaves a lot on the table in idle power. Recently, this video discussed the same issue for their server CPU lineup: https://youtu.be/CRWTuo1l4sw Bottom line: The idle power is much higher in AMDs own reference plattform than it is on third party boards, throwing away 13% of full load performance as if it was nothing. AMD didn’t want to give an explanation. But aside from that, even in third party boards the IO die power is still twice as much as for the compareable Intel chips (while full load efficiency is better than Intel).
Unfortunately, for us eco PC enthusiasts, it seems like idle power is not really a concern for AMD right now. As sad as it it.
Unfortunately, the IO-die is the culprit (12nm), and has not been updated for 2 years. Hopefully with 3D- V-cache they also make improvements to the idle state power consumption on AM4.
I have hope that my 5900X can be upgraded to something with 12700K-single thread-performance level without changing the platform (Gigabyte X570S).
Hi thank you for this nice article, very enlightening.
I have a question: I have a Ryzen 5950X and my whish would be to run the base clock as low as – may be 2.4 GHz – but also being able to peak the normal ranges. This would be good for a very power efficient idl mode, since 16 x 2.4 GHz would be more than enough to power any Windows task such as webbrowsing, office, etc. but also needing substantial less power + being very silent too. My pc is runnig most (~ 95%) of the time desktop / office / webbrowsing / … where the cpu mostly idles, so it would matter. Why wasting so much power when every body is talking about saving energy ?
I have not fond any chance to do this, you can set the CPU clock down, but this would mean that there is no boost anymore, the CPU clock will stay at 2.4 GHz all time, no matter single core or multicore load …
Is there a chance to to this ? I found plenty of instructions how to overclock the system but nothing how to „downclock“ the baseclock and keep the boost frequencies.
Thanks + Greets
> the IO-die is the culprit (12nm) …
That does not explain why the 5700G in a lot of tests still draws a lot of power, despite the IO being at 7nm, unified.
The strange thing is, that loads of reviews show the 5600G/5700G idling a few watts less then their 5000X equivalent BUT the same in a chiplet less X300 Deskmini, is suddenly doing a fraction of the power idle consumption ( like 40W to 15W ).
Technically a X300 Deskmini much more closer to a laptop build, then a full PC build. No added chipset, laptop memory, limited VRM’s, PSU brick, 19V direct.
When i put a 5950X in a 570X MB, my idle on the SOC was doing 45W. Putting back my old 3900X, the idle dropped down to 18 a 20W. Those are insane power differences. Even with massive undervolting, the Zen3 was drawing way too much, on the exact same system, drivers, mb, memory etc.
It frankly pisses me off for years, that i am wasting so much idle power on a desktop, when laptops barely use 4 or 5W at idle, for more components ( screen, etc ).