Announcement

Collapse
No announcement yet.

AMD Ryzen 9 7950X P-State/CPUFreq Frequency Scaling Performance On Linux

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Anux
    replied
    Originally posted by Jabberwocky View Post
    Now I don't own a Ryzen 7000 series CPU so I have not done any testing myself. It is my understanding AMD has basically set all out the the max by default. This is not very efficient for people doing CPU rendering for example, by default the system will make a ton of noise too.
    Now you could just set the Fan speed to your preferred noise level and be done. And since gaming is hardly affected by going down 1 step in TDP, you could also set it in BIOS once and forget it.
    I also don't like the current trend of rising power consumption and am totally fine with my old 65 W CPU. Although I might get a 8 core 7000X3D if prices are better in the far future and just limit it to silent noise levels.

    I want my browser to be able to load pages as fast as possible because it's usually a short duration and will make me more productive than having to wait.
    With any current AM5 CPU browsing is not limited by you CPU and even having the lowest possible cTDP wouldn't make a noticeable difference. You should get µblock origins and experiment with a script blocker, that's were the web speed is most affected. Maybe try another ISP.

    Leave a comment:


  • Jabberwocky
    replied
    Originally posted by Anux View Post
    Just have a look at atomsymbols link, it shows how the CPU automatically adapts to the coolers capabilitys. If you have a good cooler and still want to save power than yes eco mode or cTDP is your friend, there are also a buckload of benchmarks out there showing the impact of it.
    I have looked at the link and that's why I need to stock up on popcorn.

    I'm simply pointing out that this change in behavior has pros and cons. For the average person it's probably mostly pros because it takes a lot of responsibilities away from the user, in the long run (after software has adapted to this change) it will make things easier. For people like me that have a big cooler (big coolers are more efficient and makes less noise if you get the right one) on a fast CPU and want to manually restrict control power draw under certain conditions, well then it becomes challenging. Being able to predict your workload and knowing at what voltage/frequency your processor is most efficient are the most important variables IMO.

    My Niche

    During the day I use my system for productivity. In the evening I play games on the same system. I run heavy workloads through the night when I go to bed. At night I run my system in "eco mode" where I set the most efficient frequency. During the day I like my system being quiet so I optimize for lowest TDP. During the evening I go all out to the max.

    Now I don't own a Ryzen 7000 series CPU so I have not done any testing myself. It is my understanding AMD has basically set all out the the max by default. This is not very efficient for people doing CPU rendering for example, by default the system will make a ton of noise too. Finally just to throw the final spanner in the works, variable ambient temperatures really mess with these optimizations. I live in Africa without AC, my winter and summer configurations are very different. I have spent many hours tweaking different sets of fans in my fancontrol config.

    Looking Forward

    I wonder if we will set CPU scaling based on application in the future, or is it already a thing? For example your games/webrowser is allowed to boost to the max of performance mode, your rendering runs at eco (most effective perf/W) and your package manager or compiler/dev-server/db runs at low TDP for minimal noise (ssh-remote compiling if needed). It will make my life easier a lot easier if that could be done.

    I want my browser to be able to load pages as fast as possible because it's usually a short duration and will make me more productive than having to wait. The duration of loading web pages are usually so short that it won't require my fans to spin faster. Efficiency doesn't matter that much for those spikes yet for big workloads it needs to be as efficient as possible and gaming should just be relatively efficient. If that makes sense.

    Leave a comment:


  • Anux
    replied
    Originally posted by Jabberwocky View Post

    The "eco mode" could be to force a specific perf/W scenario. Simply putting a cooler on it would be like pissing into the wind.
    Just have a look at atomsymbols link, it shows how the CPU automatically adapts to the coolers capabilitys. If you have a good cooler and still want to save power than yes eco mode or cTDP is your friend, there are also a buckload of benchmarks out there showing the impact of it.

    Leave a comment:


  • Jabberwocky
    replied
    Originally posted by Anux View Post
    No need for eco mode, just put the passive cooler on and it will automatically throttle to the coolers capabilities.
    The "eco mode" could be to force a specific perf/W scenario. Simply putting a cooler on it would be like pissing into the wind.

    The question is: What is the efficiency curve is for Ryzen 7000 series. In the past it was seldom that an entire range is tuned for more performance and places less value on perf/W. Vega was an exception where most cards needed undervolting to improve perf/W. In most cases it's down to the individual chip and the workload. With such a dynamic environment and dynamic defaults that Ryzen 7000 created it's going to be very tough for people to get clarity on the matter.... then you add the temperature difference (which is not relevant to perf/W) into the mix and you have super confused consumers.

    I need to stock up on popcorn.

    Leave a comment:


  • arQon
    replied
    Originally posted by coder View Post
    I'm skeptical that's still true
    * points at the part that says "... are trying very hard to *change* this".

    It's certainly still not false, but I agree it's become more situational over the past couple of years, and is likely to continue that trend for at least a few more. This article though, as mentioned, shows that things still aren't there yet even on the same chip, let alone cross-family or cross-generational.

    I'm more than happy to dig into the specifics on a case-by-case basis (or at least, I would be if I had free time), but the goal here was just to explain to OP why his naive guess at the "obvious" outcome isn't actually right.

    I'll just point out that the TPU link also still says "Since a faster processor will complete a given workload quicker, the total amount of energy used might end up less than on a low-powered processor, which might draw less power, but will take longer to finish the test."

    > Based on the sloppy experiment design & analysis I've seen in some LTT videos, I give them zero heed.

    You might want to reconsider that.
    AFAP is very different: it's basic (to us) concepts and specifics explained in a way that normal people can understand. They predate the whole ZOMG YouTube ADHD era, and every one of them I've seen (which AFAIK is "all of them") is both accurate and approachable. They're my go-to for things I don't want to have to spend half an hour of my own time explaining to people who are curious about something but don't need the obsessive levels of detail or jargon that "technical" explanations entail.

    Leave a comment:


  • g.maverick
    replied
    Originally posted by arQon View Post

    Then you would very likely be wrong with that guess, as has repeatedly been shown *countless* times. For any system under meaningful average load, it is very nearly *always* the case that completing the work as quickly as possible at a high power draw is more efficient than completing it more slowly - that is, over a longer period - at a lower power draw.
    To be precise I also said:
    I would rather prefer that the default setting goes with the most efficient in terms of performance/energy used.
    I am not excluding by principle that the most efficient scheduler can be the performance governor (but I am skeptical) still the main difference is likely on what you are measuring.
    - you may evaluate the necessary energy to complete a set of tasks
    - you may evaluate the total energy used by a server during a period of time during a set of tasks

    In the second case, you need also to take into account the sleep consumption (hopefully) and the idle/low-power mode consumption of the device sitting there doing nothing.
    The second case, unfortunately, is a good model for a lot of servers and desktops in the office that and many of them do not have proper energy-saving mechanisms at the hardware or configuration level, so having a default setting at the level of the OS taking account of that, in my opinion, it is important.

    Leave a comment:


  • coder
    replied
    Originally posted by arQon View Post
    Then you would very likely be wrong with that guess, as has repeatedly been shown *countless* times. For any system under meaningful average load, it is very nearly *always* the case that completing the work as quickly as possible at a high power draw is more efficient than completing it more slowly - that is, over a longer period - at a lower power draw.
    I'm skeptical that's still true. Back when the "race-to-idle" approach was being trumpeted, CPUs were much more primitive in how they handled frequency-scaling.

    For a more modern example, look at the Ryzen 7 5700X. It's quite simply a clock-limited 5800X. If you're right, then the 5800X should use less total energy across their multithreaded test suite, yet we see the stock 5700X using 8.7 kJ while the stock 5800X uses 10.0 kJ.

    Source: https://www.techpowerup.com/review/a...-5700x/18.html
    (scroll to bottom)

    In fairness, the 5800X does use less energy for the single-threaded test, but they're measuring something different than what you're talking about. For that measurement to be directly comparable, they'd have to add in the idle power used by the 5800X system, during the additional time needed for the 5700X to complete. That would close much of the gap, and give the 5700X an even bigger lead in the multithreaded case.

    Originally posted by arQon View Post
    Possibly one of the AFAP segments on LTT has.
    Based on the sloppy experiment design & analysis I've seen in some LTT videos, I give them zero heed.

    Leave a comment:


  • geearf
    replied
    Does it make sense to use PSTATE with a different CPU scheduler or are these things somewhat linked?

    Leave a comment:


  • arQon
    replied
    Originally posted by g.maverick View Post
    I guess there would be billions of desktops/servers which would uselessly waste energy if the performance governor is set by default.​
    Then you would very likely be wrong with that guess, as has repeatedly been shown *countless* times. For any system under meaningful average load, it is very nearly *always* the case that completing the work as quickly as possible at a high power draw is more efficient than completing it more slowly - that is, over a longer period - at a lower power draw.

    Of course, you could just be confused by the difference between "consumption" and "efficiency" (which is common), but either way you still don't really understand the situation. I don't know a good resource specifically for this, but I'd assume Gamer's Nexus has probably covered it at some point. Possibly one of the AFAP segments on LTT has.

    Admittedly, Intel (and now AMD) are trying very hard to *change* this fact of life by drawing absolutely insane amounts of power under "boost" clocks in an attempt to win the Bigger Numbers game, but judging by the results in this article they're still not there yet.

    Leave a comment:


  • shmerl
    replied
    So does 7950X have MSR hardware or not? Do you see cppc in cpuinfo / lscpu?

    Leave a comment:

Working...
X