Power Consumption, TDP, and Prime95 vs POV-Ray

For most of us, processors hover around the 15W range in notebooks, and 65-95W in desktops. High-end desktop processors have always been power hungry, with numbers of 130W and 140W fairly common. When AMD launched a 220W processor on the old Vishera platform, pushing the Bulldozer family cores up to 5.0 GHz, we all thought AMD was completely mental – there were plenty of motherboards that were socket compatible at the time, although to actually harness 220W and up, a range of new high-end motherboards had to be announced. Intel’s highest on-roadmap processor part to date has an official TDP rating of 205W, but now AMD has gone one better, with 250W.

The two new WX processors, the 32-core 2990WX and 2970WX, are both rated for 250W. In both cases they have all four silicon dies active, six Infinity Fabric links active (as described in page 4), and aim to push the boundaries in performance, with AMD showing slides with a 3.6 GHz all-core turbo. The other two processors, X-series replacements, are at 180W, the same as the first generation Threadripper parts they replace.

However, not all TDPs are equal. How Intel and AMD measure TDP has changed over the years, and subsequently now have little value to the real world. Let me explain.

TDP Is a Joke

The value of TDP, or thermal design power, is not a measure of power consumption. It is technically a measure of cooler performance, and a cooler needs to be rated at the TDP level in order to perform regular functions. Actual power consumption should technically be higher – thermal losses from the processor into the socket and from the socket into the motherboard also contribute to cooling, but are not involved in the TDP number. However, for most use cases, TDP and power consumption are used interchangeably, as their differences are minor.

Given this is a review about AMD processors, we can start there. AMD’s TDP calculation relies on a simple formula:

TDP = (Load Temperature in Celsius – Idle Temperature in Celcius) / Thermal Capacity of Cooler

Thus typically AMD will quote for its Ryzen 7 2700X processor that with a load temperature of about 62C, an idle temperature of 42C, and a cooler with a thermal capacity of 0.189 C per Watt (the Wraith Max), we get a value of around 105W.

AMD’s formula has two problems in that the load temperature can be adjusted with fans / external air flow, and that the thermal capacity of the cooler can have a big impact in the result – with a large liquid cooler that has a higher thermal capacity, such as 0.400 C per Watt, then the rated TDP is actually lower: in the case of the Ryzen 7 2700X as above, it would come out as 50 W. AMD does use the thermal performance of its bundled cooler, just to keep things consistent, but it does mean that the TDP rating and the power consumption are not equal and can be manufacturered in a certain direction if AMD were simply to use a different cooler for its comparisons.

Intel’s version of TDP is a little more complex, for one main reason that has not made it into the ecosystem. Intel only defines its TDP for the base frequency, and not the turbo frequency. As a result, if Intel releases a processor with a 95W TDP, a base frequency of 3.2 GHz, a single-core turbo of 4.7 GHz, and an all-core turbo of 4.2 GHz, then Intel only guarantees that power consumption at the base frequency of 3.2 GHz will be 95W, not the all-core turbo. This leaves the base operation for the processor in any motherboard that uses turbo (all of them) to have a higher power draw than TDP in any loaded scenarios.

This is very annoying. Intel advertises the single core turbo quite prolifically in its marketing, and has recently decided that its all-core turbo values should not be published. We are told that it is proprietary, which is vast about-turn from its previous disclosure policy. Not only that, this data is freely available with the chips in hand. But it does mean that almost every processor will have an all-core turbo frequency above the base frequency, and thus can run above TDP very easily.

We can see this best with a Core i7-8700 and its 65W TDP. It has a 3.2 GHz base frequency, a single core turbo of 4.6 GHz, and an all-core turbo of 4.3 GHz. If we load up the threads and then limit the power consumption to 65W, we get the following:

So just a warning about when it comes to TDP values. Take them with a grain of salt. Or a spoonful.

Power Consumption

There are several ways to measure power consumption of a processor. The typical easy way is to use a power meter which gives the wall power consumption of the full system, including efficiency losses by the power delivery of the motherboard. The complex way is hooking up the required tools to the board to measure the current through the 12V connector, and measure the CPU voltage using the overclocking measurement points on certain motherboards. A third way is by reading the hardware registers with applicable software.

Reading registers is a double edged sword. First, you are relying on internal measurements, which often have one of the wider error margins. Second, you are relying on the CPU manufacturer to report the correct numbers, which is not always true (!). However on the plus side, we can often get more information out from the processor, such as a breakdown of per-core power, DRAM power, IO/Interconnect power, integrated graphics power, and a general look at how the power is distributed. The hardware registers are how the system tells itself how much power it is using, and how it has to adjust the voltage/frequency depending on current draw, power draw, or thermal performance. The other plus side is that we can roll it into our testing scripts fairly easily.

Testing for power consumption is also a topic to consider. Usually a power virus is used, which can prod every area of the processor simultaneously for the peak power draw. A power virus is often used as an overclocking stability test, but these have one drawback in that they typically do not represent real-world power draw. It is a fine line between a real-world test and a synthetic test designed to cram every joule of energy through a chip. Software such as LINPACK is often used as a highly optimized power test, or internal tools from Intel and AMD can stress a chip even harder.

Prime95 is an often used candidate, because it also ends up being hyper-optimized for almost every core and drives the power home. Its workload is semi-synthetic, based on calculating prime numbers, but the stress test forgoes the results and just aims at power. During this review, we started playing a little with POV-Ray as our power tester, as it seemed to cause more power draw than Prime95, while also being a real-world ray-tracing workload. As I am writing this, I am deciding which tool is best to measure power consumption: Prime95 has trouble with larger core counts (sometimes it is hard to get numbers beyond 25 threads), and to get POV-Ray to work technically we adjust the affinity loading, which is more about loading cores than threads, however the data suggests that it is actually the threads that are being loaded. I will point out which software we are using in our data at each stage, however our POV-Ray was developed mid-review, so most data is with Prime95.

Overall Power Consumption

For this first set of data, I want to represent the full-chip power consumption measured in different scenarios. Firstly at idle, which as we’ve seen on Page 4 can be properly dominated by how the interconnect on the processor powers up and powers down.

Power (Package), Idle

Next, we load a single core with two threads of Prime95. Our testing methodology forces both threads onto the same core for those that can accept multiple threads. Users focusing on a single task will be more in this area for power, or for systems where Windows is tinkering in the background.

Power (Package), 2T

The third test is the system loaded with four threads of Prime95. This will cover the majority of how most people use systems day to day, with multiple browser tabs and windows open, several software packages on the go, or perhaps a game or two.

Power (Package), 4T

Moving up a gear to twelve threads of Prime95, we are moving more into the multi-taskers that have sizeable workloads. This will include gamers and streamers, or users who are rendering while also performing other tasks.

Power (Package), 12T

The final graph, for good measure, is the full load power draw. For this test we are running a full set of Prime95 threads, however in the future we will be using POV-Ray for this test as it tends to be more consistent, especially at high thread-count workloads. The only downside here is that an overclocked 2990WX can complete the POV-Ray test in under 20 seconds.

Power (Package), Full Load

Per-Core Power Consumption

Before we created the POV-Ray power consumption test, I ran both of the new Threadripper processors we have on an all-threads test with Prime95, and extracted the power consumption of each core at each loading. Click each image to zoom in.

On the first core loading, we can see that the power consumption is ~23W, which is super high for a single Zeppelin core. This goes through to two cores loaded as well, but when we hit three cores we only top out around 18.8W per core. Given that this chip has four CCXes, we have to wonder if this is because the threads are being loaded onto the same CCX (which is what is happening, based on the processor enumeration), and we are hitting CCX power limits. At four cores loaded, each core is more around 17.4W.

Moving onto five cores loaded, and the fifth core sits at 18.2W while the other four are at 16.8W, indicating that this new core is located on a new CCX. When we move from eight cores to nine cores, we see the same thing whereby the ninth core has 17.5W of power, whereas the other eight are at 14.3W. The power distribution finally drops to 7-9W per core when we hit all 16 cores loaded.

At the end, we observe a total package power consumption of ~178W, near the 180W TDP, with ~135W on the cores and the rest on the non-core hardware (Infinity Fabric, IO, IMC).

Moving onto the 2990WX, and the story looks very odd indeed.

For the most part, the power consumption data up to 15 cores follows the same trend as the 2950X. However as we push on, it is clear that the first zeppelin die is clearly the favored – as more threads are loaded, power is taken from the second die, all the way down to 2.4W per core. The first zeppelin die, at full load, has around 6.6W per core, but all the other cores on the processor have 2.4W. There might be something in this test causing the first die to have preferential power over the others. It is also worth noting that the power consumption for the chip is near 180W, not the 250W as listed by TDP.

It was around this time that the POV-Ray version of the power script was developed. I ran it through the 2990WX to see the results. This time it was far more as expected:

Surprisingly, the load became very evenly distributed as the number of threads was ramped, as we were able to fully use up to the 250W TDP even at stock levels with a good cooler. In the end we were using 193W for the cores and 55W for everything else, and at no point did we see active cores dangling below 3W – in fact when all the cores were loaded, each core seemed to find 6W to be comfortable. We hit the 240W-250W package power at around 40 threads loaded, and beyond that each core added meant the power had to be redistributed.

Two thoughts came to mind – the first was easily verifiable: the BIOS was stuck at 180W power consumption after putting in the 2950X perhaps? I checked and before I did the 2990WX power tests, I previously had had the 1920X in. I did a full BIOS reset, and did not see a change, indicating that this wasn’t a BIOS power limitation.

The second is to look at frequencies. Taking a single data point, 40 threads loaded, there was a slight differential, but only in power.

During the Prime95 test, the first silicon die was running at around 7W per core, and had a frequency of 3575 MHz. The second silicon die was shown at 3W per core, but at 3525 MHz. The other idle cores were at 1775 MHz or 2000 MHz, consuming milliwatts.

During the POV-Ray test, every active core was at around 9.1W per core, and had a frequency of 3575 MHz. All the idle cores were at 2000 MHz (three of which at 1775 MHz), again consuming milliwatts per core.

Aside from the per-core power numbers being reported, the chips seemed overall similar in frequencies, with the POV-Ray test a little higher, which comes through in the total power consumption under POV-Ray being higher.

Ultimately it comes down to this – power reporting with Prime95 beyond 20 cores or so, or on multi-die chips, doesn’t seem to work that well. Going forward we will be using our POV-Ray test, which also seems to draw more power.

Core vs Non-Core Power

Going back to the page where we spoke about Infinity Fabric frequency, we can do a similar plot under the POV-Ray test for the 2990WX.

There’s still a good amount of variation in overall loading, with some wobbles, but the data (aside from peak consumption) is broadly in line with our Prime95 test, with the non-core power such as Infinity Fabric consuming 55-60W of the total. As a result we see the non-core power as a percentage of the total power go from 75% with two threads loaded down to 22% by the time 40 threads are loaded.

HEDT Benchmarks: Web and Legacy Tests Overclocking: 4.0 GHz for 500W
Comments Locked

171 Comments

View All Comments

  • MattZN - Monday, August 20, 2018 - link

    If its idling at 80-85W that implies you are running the memory fabric at 2800 or 3000MHz or higher. Try running the fabric at 2666MHz.

    Also keep in mind that a 2990WX running all 64 threads with a memory-heavy workload is almost guaranteed to be capped out by available memory bandwidth, so there's no point overclocking the CPU for those sorts of tests. In fact, you could try setting a lower PPT limit for the CPU core along with running the memory at 2666... you can probably chop 50-100W off the power consumption without changing the test results much (beyond the difference between 3000 and 2666).

    It's a bit unclear what you are loading the threads with. A computation-intensive workload will not load down the fabric much, meaning power will shift to the CPU cores and away from the fabric. A memory-intensive workload, on the otherhand, will stall-out the CPU cores (due to hitting the memory bandwidth cap that 4 memory channels gives you), and yet run the fabric at full speed. This is probably why you are seeing the results you are seeing. The CPU cores are likely hitting so many stalls they might as well be running at 2.8GHz instead of 3.4GHz, so they won't be using nearly as much power as you might expect.

    -Matt
  • XEDX - Monday, August 20, 2018 - link

    What happened to the Chromium compile rate for the 7980XE? On it's own review posted on Sep 25th 2017, it achieved 36.35 compiles per day, but in this review it dropped all the way down to 21.1.
  • jcc5169 - Saturday, August 25, 2018 - link

    Intel Will Struggle For Years And AMD Will Reap The Benefits-- SegmentNext https://segmentnext.com/
  • SWAPNALI - Tuesday, August 28, 2018 - link

    nice place here thanks alot for this information please do more post here
    <a href="http://clash-of-royale.com/">play clash of royale</a>
  • Relic74 - Wednesday, August 29, 2018 - link

    Regardless of the outcome, I went ahead and bought the 32 Core version. As I run SmartOS, an OS designed to run and manage Virtual Machines, I decided to go this route over the Epyc 24. My setup includes the new MSI MEG X399, 32 Core TR, 128GB DDR4 RAM, 3x Vega Frontier (used, $1000 for all three, no one wants them but I love them), 1 X Nvidia Titan Z (used for only $700, an amazing find from a pawn shop, did not know what he had, had it marked as an XP). Storage is 2 x 1TB Samsung 970 Pro in Raid 0 and 5x 8TB SATA in Raid 5 with 8GB of cache on card.

    The system is amazing and cost me much, much less than the iMac Pro I was about to buy. Now though, I can run any OS in VM, including OSX, with a designated GPU per VM and cores allocated to them. This setup is amazing, SmartOS is amazing, I have stopped running OS's with every application installed, Instead I create single purpose VM's and just install one or maybe two applications per. So for instance when I'm playing a game like DCS, a fantastic flight simulator, only has DCS and Steam installed on the VM. Allowing for the best performance possible, no, the lost of any performance by running things in VM are so minuscule that it's a none issue. DCS with the Titan V runs at over 200 FPS at 4K with everything turned to their max values. I have to actually cap games to my gaming monitors 144Hz refresh rate. Not only that but I can be playing the most demanding game their is, even in VR, while encoding a media file, while rendering something in Blender, while compiling an application, all tasks running under their own VM like a orchestra of perfection.

    Seriously, I will never go back to a one OS at a time machine again, not when SmartOS exists and especially not when 32 Cores are available at your command. In fact, anyone who buys this CPU and just runs one single OS at a time is an idiot as you will never, ever harness it's full intention as no one single application really can at the moment or at least not to the point where it's worth doing it.

    Most games dont need more than 4 cores, most design applications can't even use more than 2 cores, rendering applications use more of the GPU than CPU, in fact the only thing that really tasks my CPU is SmartOS that is controlling everything but even that doesn't need more than 6 cores to function perfectly, heck, I even had it at 12 cores but it didn't utilize it. So I have cores coming out of the yin-yang and more GPU's than I know what to do with. Aaaaahhhh poor, poor me.

    This computer will be with me for at least 10 years without ever feeling that I need an upgrade, which is why I spent the money, get it right the first time and than leave it alone I say.

    Oh and the memory management for SmartOS is incredible, I have set it up where if a VM needs more RAM, it will just grab it from another that isn't using it at the moment, it's all dynamic. Man, I am in love.

    Anyway.....
  • Phaedra - Sunday, March 3, 2019 - link

    Hi Relic74,

    I enjoyed reading your lengthy post on the technical marvel that is SmartOS and the 32 Core TR.

    I am very much interested in the technical details of how you got SmartOS to work with AMD hardware. Which version of SmartOS, Windows, KVM (or BHYVE) with PCI passthrough etc?

    I am in the process of preparing my own threadripper hyper computer and would love some advice regarding the KVM + PCI passthrough process.

    You mention gaming in a VM so I assume that you used a Windows 10 guest via KVM with PCI passthrough?

    The following says SmartOS doesn't support KVM on AMD hardware: https://wiki.smartos.org/display/DOC/SmartOS+Techn...

    Did you build the special module with amd-kvm support:
    https://github.com/jclulow/illumos-kvm/tree/pre-ep...
    or
    https://github.com/arekinath/smartos-live

    I would appreciate any insight or links to documentation you could provide. I am familiar with Windows/Linux/BSD so you can let me have the nitty-gritty details, thanks
  • gbolcer - Wednesday, September 19, 2018 - link

    Curious why virtualization disabled?
  • Ozymankos - Sunday, January 27, 2019 - link

    Your tests are typical for a single core machine which is laughable
    please try to download a game with steam,play some music,watch tv on a tvtuner card,play a game on 6 monitors or 8 or 4 ,do some work like computing something in the background(not virus scanners,something intelligent like life on other planets)
    then you shall see the truth
  • intel352 - Thursday, July 18, 2019 - link

    Old article obviously, but wth, numerous benchmark graphics are excluding 2950x in the results. Pretty bad quality control.
  • EthanWalker28 - Monday, February 24, 2020 - link

    If you are looking for custom writing firm to help you out with your academic writing issues, then you have just found the right one. Now, you don’t have to worry about getting a failing mark simply because you have been accused of plagiarizing someone else’s work. Check this <a href="https://ewriters.pro/" rel="nofollow">ewriters.pro</a> Order essay online staying 100% safe and confidential.

Log in

Don't have an account? Sign up now