AMD Ryzen 3000 Undervolting Offset vs. Override | Vcore Voltage
Posted on July 23, 2019
This is a quick and straightforward piece inspired by a Reddit post from about a week ago. The reddit post was itself a response to a video where a YouTuber claimed to be lowering temperatures and boosting performance on Ryzen 3000 CPUs by lowering the vcore value in BIOS; we never did catch the video, as it has since been retracted and followed-up by the creator and community with new information. Even though the original content was too good to be true, it was still based on a completely valid idea -- lowering voltage, 50% of the equation for power -- will theoretically reduce thermals and power load. The content ended up indirectly demonstrating some unique AMD Ryzen 3000 behaviors that we thought worth testing for ourselves. In this video, we’ll demonstrate how to know when undervolting is working versus not working, talk about the gains or losses, and get some hard numbers for the Master and Godlike motherboards.
To paraphrase Reddit user Boxman90’s response post, lowering vcore a little bit without being in OC mode (locking the clocks, etc.) will cause the requested voltage per core (VID) to rise in response so that the end result is nearly the same. Lowering vcore a lot will initiate “clock stretching,” with the result that monitoring software will report normal/higher clocks while actual performance drops.
It’s up to AMD to explain why their CPUs do what they do; what we’re attempting to do in this piece is replicate the behavior and see if we can find a way to undervolt effectively. We ran the 3600 and the 3900X each both on the Gigabyte X570 Master and the MSI X570 Godlike, running Cinebench R20 three times multithreaded and then once single threaded while logging in HWiNFO and recorded the scores. We did this stock, set to 1V vcore in BIOS, and then with the best negative vcore offset we could manage, which was usually .05V. We also ran Blender and logged frequency, but the Cinebench numbers are plenty for now.
We controlled vcore in the tests that called for it, we applied XMP and custom timings and voltage to the DRAM, we maxed out fan speeds and kept ambient temperatures and cooling as constant as possible, but otherwise we used the motherboards’ auto settings. That means no LLC overrides or anything like that, so the boards will behave differently based on how the manufacturers configured them.
Here’s our first two charts, we’ll just take turns putting them on the screen. In multithreaded and single-threaded results for the R5 3600, it’s immediately obvious that applying 1V vcore tanked performance. The system boots fine and doesn’t show any signs of instability, but on both motherboards there was a very real decrease in performance. At stock, the Godlike performed slightly better than the Master, and the best undervolt offset we could manage didn’t significantly change either board’s score.
One-point-zero is a ridiculously low voltage to run for Ryzen 3000 CPUs, but both boards and both CPUs allowed us to set and boot at this voltage. Now we’ve established the truth, which is that setting a vcore this low will in fact damage performance, even if that damage doesn’t come in a form as obvious as a typical bluescreen. That’s why we also tested the voltage offset, shown in this next chart. Pushing an offset lower than -.05V on the X570 Master actually did cause instability and boot problems. That was encouraging, because it meant we were hitting real limits rather than fooling ourselves by setting an unrealistically low manual vcore, so there was a chance it might actually help performance. It didn’t on the 3600, but the 3900X was a different story.
The 3900X, like the 3600, performed much worse than stock with vcore set to 1V. The Master actually outperformed the Godlike board here at stock as opposed to the tests with the 3600, so the trend of Ryzen 3000-related test variance continues. The most interesting part of these results, however, are the scores with a negative voltage offset: the Godlike board was stable with an offset as low as -0.1V using the 3900X, and gained 2% over the stock multithreaded score. It’s not a huge leap, but it’s a real improvement and the same behavior was shown on the X570 Master. Single-threaded scores were largely unaffected and actually decreased slightly on the Godlike board with the voltage offset, so the -.05 offset for the 3900X on the Master is the best combination we’ve tried.
There’s an unholy number of charts that could be generated with the data we’ve gathered, so we’ll be focusing on the MSI Godlike board for most of this piece, just because the graphs for it are a little easier to read. These next charts are all frequency plots. We’ve also zoomed the frequency charts to a 2000MHz range in order to make the differences more obvious. This first one shows the R5 3600 on the Godlike at 1V, stock, and at -0.05v offset. From just these numbers, it would appear that the 1V vcore results are the best, as the R5 3600 held a constant 4.2GHz throughout the three multithreaded passes as well as the long single threaded pass. The next chart shows the same type of data, except on the R9 3900X instead. On the R9 3900X, clocks were less constant, but it still reported holding higher clocks than stock with 4225MHz during the multithreaded tests. In the single threaded tests, it logged boosts to 4.5GHz and beyond, but the stock results won out here with a fairly constant 4575MHz for most of the single threaded test. It’s clear that the 1V vcore result isn’t actually performing better on either CPU, though, simply by a rough comparison of how much longer the test took to complete.
These next two charts show vcore as logged by HWiNFO. The 1V BIOS setting works according to software logging, although the next batch of charts may contradict that. At the very least, this proves that the BIOS option is doing something, even if the end result isn’t what we want. Stock vcore for the R5 3600, shown here, was reported as about 1.39V under all-core load or about 1.344V with the negative offset applied, and both fluctuated between 1.38-1.4V in the single threaded test. The 3900X showed the inverse, with stock and offset results both sticking to about 1.27V in the all-core load, and the gap showing itself instead in the single-threaded pass with stock vcore hitting 1.47-1.48V and the offset voltage holding at 1.39V.
These charts show VID instead. The average core VID numbers stack up differently than the reported vcore. It’s the 3600 set to 1V that requests the highest voltages during the multithreaded test, at about 1.4V versus 1.36-1.37V stock and offset. Moving into the single-threaded test has the offset results averaging the highest VID. With the 3900X chart, there’s a more clear division during the multithreaded test with stock the lowest (1.23V), then the offset (1.32V), then the 1V results (1.34-1.35V). Single-threaded testing pushed them closer together, with all the results landing in the 1.47-1.49V range. As mentioned earlier we’ve chosen not to include the results we gathered on the X570 Master board, but they back-up all the results we’ve shown for the Godlike so far.
For our final charts, we’ve stuck results from both boards together, because the point is simple: Tdie is vastly lower on both the R5 3600 and the 3900X with vcore set to 1V, and as the previous charts have shown clocks are higher, but that doesn’t mean performance is better. Much like GPU overclocking must be validated with performance tests, CPU volt-frequency changes have to be validated with performance. It’s very easy to trick yourself into thinking all the numbers are better, but actually sacrifice performance. The only other notables are the 3600 with a -.05V offset on the X570 Master, which was slightly cooler than stock in multithreaded testing with an extremely small bump to its average score, and the 3900X with a 0.1V offset on the MSI Godlike, which was much cooler than stock in single-threaded testing but with minor performance degradation.
Our conclusion is that yes, there is an easily reproducible bug where setting a vcore too low on Ryzen 3000 CPUs will cause a significant decrease in performance while reporting to HWiNFO that clocks and temperatures have improved. It’s also possible to tweak voltage down on our 3900X for some very minor benefits. When leaving everything else stock, setting a small negative vcore offset helped more and yielded more predictable behavior than setting a straight manual vcore, but the benefits varied by CPU, motherboard, and workload.
Editorial, Testing: Patrick Lathan
Host: Steve Burke
Video: Andrew Coleman