[HN Gopher] Automatic CPU speed and power optimizer for Linux
___________________________________________________________________
Automatic CPU speed and power optimizer for Linux
Author : chetangoti
Score : 228 points
Date : 2021-10-17 06:05 UTC (16 hours ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| yewenjie wrote:
| Can somebody with experience running this tell me if it actually
| works?
| chronogram wrote:
| Reading the scripts it doesn't look like more than the standard
| Linux ricing script, which means that if you're using a well
| made distribution it will hurt you but if you're using a poorly
| made distribution it might help you.
|
| In the recent years you really shouldn't have to worry about
| this anymore. You can check in powertop if your laptop CPU
| package idles for the most part in C8 or higher, and if it does
| great don't worry about it, and if it doesn't then look for the
| rogue software (like maybe some random scripts).
| tomxor wrote:
| > Using tools like TLP will help [...] but it also might come
| with its own set of problems
|
| I recently figured out TLP was the source of a couple of
| irritating issues for me on an XPS 9370:
|
| - Bluetooth audio continually cutting in and out, only when
| wireless module on AC "non power saving mode"!?!
|
| - DC bias on the audio out jack, on both modes, worse on power
| saving. (forcing a power amp into self protect mode).
|
| Both resolved by disabling TLP entirely. I knew TLP was not a set
| and forget tool, but it's easy to forget when on some machines
| it's fine (and necessary, especially older laptops). But then
| changing to a new machine where it causes lots of issues. It was
| a good reminder that these tools need to be used with care
| because they often exploit unusual hardware modes and can have
| strange side effects.
| 29athrowaway wrote:
| For games you can use gamemode.
|
| https://github.com/FeralInteractive/gamemode
|
| You run the game with gamemoderun and it will do few adjustments
| for you, including adjusting the CPU governor.
| bno1 wrote:
| I wish the readme would compare it to laptop mode tools [1].
|
| [1] https://wiki.archlinux.org/title/Laptop_Mode_Tools
| shmerl wrote:
| AMD are working on a better CPPC driver for schedutil for that.
| tamrix wrote:
| If you're using Intel 8th gen or above. (7th gen supported if you
| manually set the flag each boot) you've got speedshift which the
| CPU will automatically auto scale itself. (changing the p-states)
|
| The CPU itself can change frequencies much faster on its own
| instead of the software based speedstep which programs like this
| controlled.
|
| This eliminates the need for an on-battery or plugged-in
| performance mode because it changes frequencies so fast, you're
| no longer losing performance by waiting for the software to speed
| up the cpu. So you can keep it on all the time.
|
| For these CPUs, all this is in the kernel and enabled by default.
| nceqs3 wrote:
| I believe that feature was just litigated in VLSI v Intel. VLSI
| won 2.1 billion in damages due to their patent.
| wyager wrote:
| The patent system is so useful, charging vendors billions of
| dollars for implementing an idea like "use the most obvious
| possible power saving strategies".
| Roritharr wrote:
| Is the same true for Ryzen CPUs?
| Zenst wrote:
| I had a look and https://www.tomshardware.com/uk/reviews/amd-
| ryzen-9_3900x-vs...
|
| "AMD's Ryzen 9 3900X also has the new Collaborative Power
| Performance Control 2 (CPPC2) feature, which manipulates
| Ryzen 3000's power states from within the operating system.
| This is similar to Intel's Speed Shift technology and reduces
| power state transition latency. Ultimately, that results in a
| more efficient processor during all facets of operation."
|
| Though that seems to be about boosting clocks higher clocks
| when it can.
|
| https://www.amd.com/en/technologies/smartshift
|
| Again does seem to focus upon boosting performance
|
| So no clear-cut stand-out answer, but does seem some level of
| OS interaction is required, I couldn't say with 100%
| certainty.
| lrem wrote:
| Why does Windows do on-battery/plugged-in performance modes on
| Microsoft hardware with 10th gen i7?
| cute_boi wrote:
| most of it is brightness related thing and i understand there
| are various inner settings but I find them doing very little.
| So it usually doesn't bring value to the table.
| fho wrote:
| In theory it could inform programs like messengers to
| behave battery friendly. In practice I don't think that is
| implemented.
| vbezhenar wrote:
| > This eliminates the need for an on-battery or plugged-in
| performance mode because it changes frequencies so fast, you're
| no longer losing performance by waiting for the software to
| speed up the cpu. So you can keep it on all the time.
|
| Here's my /etc/rc.d/rc.local script:
| #!/bin/sh for policy in
| /sys/devices/system/cpu/cpufreq/policy* do
| echo "power" > "$policy"/energy_performance_preference
| done
|
| Here's available preferences: $ cat /sys/devi
| ces/system/cpu/cpufreq/policy0/energy_performance_available_pre
| ferences default performance balance_performance
| balance_power power
|
| Basically I can choose between "performance" and "power" (low
| performance) modes. I'm choosing power, so my fans are silent.
| And they're silent indeed, no matter the load.
| Hello71 wrote:
| echo power | tee /sys/devices/system/cpu/cpufreq/policy*/ener
| gy_performance_preference
| alexeldeib wrote:
| for no additional output, sponge over tee! sponge is useful
| in some cases where redirecting output is annoying, _and_
| it can construct pipelines reading /writing from the same
| file.
|
| Found that one way later than I'd care to admit. I use tee
| $FILE > /dev/null <EOF quite often in some situations where
| redirects get ugly, and sponge is a nice util to tidy up
| the invocation.
| avel wrote:
| Useful, thank you. It appears that this is the setting the
| Ubuntu / Gnome's "Power -> Power mode" setting changes as
| well.
| ComputerGuru wrote:
| For reference, 7th gen is Kaby Lake and 8th gen is Coffee Lake.
| Of course, Intel had stagnated long before so many people are
| still on Sky Lake (6th gen).
| bravetraveler wrote:
| Cool and all, but 'tuned' does this and so much more.
|
| Custom profiles that can control boot command line options,
| sysctl parameters, sysfs, and so on.
| aroundthfur wrote:
| tuned does not automatically change the profile based on load,
| so it kind of has a different behavior. The point of auto-
| cpufreq is to give you power when needed and then switch back
| to powersave otherwise.
|
| Or am I wrong?
| fooctrl wrote:
| auto-cpufreq author here, I'm here if you have any questions!
| Zenst wrote:
| How do the the latest Intel and AMD CPU's compare in how they
| handle speed and power usage with regards to the main stand-out
| differences between the two?
| fooctrl wrote:
| Sorry, but can't nswer that since all hardware I have is
| powered by Intel. Maybe it would be a good idea to ask this
| same question on: https://github.com/AdnanHodzic/auto-
| cpufreq/discussions
| BeeOnRope wrote:
| You should be clearer what this actually does.
|
| All mainstream CPUs and operating systems are dynamically
| adjusting frequency and other internal behavior to optimize
| power versus other factors. Some of these adjustment are done
| in hardware (i.e., intel_pstate aka "speed shift" aka HWP)
| which is both faster than software and can use internal metrics
| not available to software.
|
| So you can't just say you're adjusting frequency dynamically to
| be optimal: something like that (or an attempt, at least)
| already happens. So what does this tool really do?
| fooctrl wrote:
| Are you talking about adjustments in hardware by drivers
| which can't even detect if my laptop is not connected to
| power source anymore and continue running on maximum
| frequency?
|
| Please take a look at the auto-cpufreq demo video I made
| which should clear some things out:
| https://www.youtube.com/watch?v=QkYRpVEEIlg
|
| It's old and many things have been improved and added since
| then, but it describes the essence.
|
| You can also refer to blog post on what prompted me to make
| one such tool: https://foolcontrol.org/?p=3124
| BeeOnRope wrote:
| > Are you talking about adjustments in hardware by drivers
| which can't even detect if my laptop is not connected to
| power source anymore and continue running on maximum
| frequency?
|
| I am talking about hardware power control in general. I
| wouldn't expect hardware power control itself to make
| different decisions based on plugged-in or not: that's a
| decision delegated to the user via the OS. HWP only
| implements low-level control based on the parameters set by
| something higher up.
|
| I don't know if I'll watch the video, but you should make
| clear in your README what this tool _actually_ does. Saying
| that it adjusts frequency dynamically isn 't very useful.
| Telling people to disable `intel_pstate` without further
| comment is extremely suspect since then you're giving up
| HWP at an unknown cost.
|
| If this simply adjusts the power governor when the laptop
| is plugged/unplugged, just say that!
| eloff wrote:
| On my Alienware AMD laptop, lm- sensors detects nothing. Do you
| think your program would help me on it? It doesn't support
| Linux but I'm running Ubuntu on it anyway. I have issues with
| screen brightness, fan speed, and battery life. Otherwise works
| great.
| fooctrl wrote:
| Best way to find out if it'll help you is to try it out! It
| has 2 modes, "monitor" which help you evaluate what it would
| do for you without making any actual changes.
|
| If you like what it suggest you can run it in "live" mode,
| which will make the suggested changes. But after you stop
| "live" mode after reboot all settings will go back to
| defaults.
|
| If you're happy with results then and want to run it in
| background all the time proceed with "install".
|
| Reference: https://github.com/AdnanHodzic/auto-cpufreq/#how-
| to-run-auto...
|
| Also I suggest you watch auto-cpufreq demo Youtube video
| which explains it all:
| https://www.youtube.com/watch?v=QkYRpVEEIlg
| eloff wrote:
| Thanks, I will give it a try!
| halz wrote:
| Would you considered using intel_pstate=passive, and then use
| x86_energy_perf_policy/cpupower to turn the knobs on how to
| influence the governor? This'll let the CPU do its lower
| latency internal frequency changing. But of course, its not a
| one-size-fits-all approach for AMD/ARM.
| CyberShadow wrote:
| CPUs already adjust their own frequency based on load and
| temperature (maybe with some help from kernel drivers). It would
| be nice if the README explained how this tool is different from
| that.
| Tenoke wrote:
| For what is worth, whatever adjustments are made on Linux (or
| at least Ubuntu) seem terrible compared to on Windows. If
| nothing else I can usually hear my fans working overtime even
| under minimal load on Linux compared to on Windows so I can see
| why people would look for more advanced tools.
| riedel wrote:
| Would be great to have more real world benchmarks (in a climate
| chamber). To me any difference should show empirically. Does
| anyone have a good suggestion to "debug"
| performance/battery/thermal issue as a matter of trade-offs.
|
| I feel that laptop performance is so subjective and very hard
| to track. Particularly thermal throttling on mobile Ryzen CPU
| makes my new Lenovo sometimes close to unusable. Particularly
| trying to do work while pandemic video conferencing seems to be
| more difficult than necessary...
| marcan_42 wrote:
| You don't need a climate chamber; you can just measure energy
| consumption. Most modern battery management ICs should have a
| joule counter (or equivalent).
| signa11 wrote:
| its outlined in the readme
|
| " ... Using tools like TLP will help in this situation with
| extending battery life (which is something I did for numerous
| years now), but it also might come with its own set of
| problems, like losing turbo boost.
|
| With that said, I needed a simple tool which would
| automatically make "cpufreq" related changes, save battery like
| TLP, but let Linux kernel do most of the heavy lifting. That's
| how auto-cpufreq was born. ... "
| marcan_42 wrote:
| As far as I can tell, this just switches the cpufreq governor
| based on whether the laptop is on AC or not. Tools to do this
| have existed for at least a decade, and integrated into various
| desktop environments too, so this isn't really novel in any
| way.
|
| It also suggests using "powersave" on battery, based on the old
| idea that lower CPU frequencies save energy. This is not a
| given; lower frequencies use less power but also take longer to
| get the same amount of work done. While the CPU is active, it
| is consuming static power regardless of frequency. This has
| gotten even more significant with newer CPUs.
|
| What the optimal power saving config is varies from system to
| system. Ultimately, what you need is to actually benchmark the
| performance and energy consumption of your system. It's
| complicated and you also have to deal with things like
| switching latencies so the cpufreq governor and scheduler can
| make optimized decisions. Most PCs don't really do a good job
| of this at all, which is one reason why battery life can be all
| over the place.
|
| Sadly, switching to the "powersave" governor may not, in fact,
| end up saving you power, depending on what you're doing :)
| TacticalCoder wrote:
| > It also suggests using "powersave" on battery, based on the
| old idea that lower CPU frequencies save energy. This is not
| a given; lower frequencies use less power but also take
| longer to get the same amount of work done.
|
| Hmmmm... I've always heard from chip engineers that power
| consumption / heat dissipation was not linear compared to
| clock speed. I'd be very surprised to find a case where a
| linear amount of work to be done by the CPU would cause more
| energy consumption overall at lower clock speed then the same
| task ran on the same CPU in a shorter timeframe, but at a
| higher clock rate.
|
| I do agree that if the task takes longer to run, there's a
| longer timeframe where more scheduling/switching and whatnots
| needs to be done, so it's not a totally linear increase in
| time, but can that really be sufficient to offset the energy
| consumption when running the CPU at an higher clock speed?
|
| There has to be some numbers out there: it's not hard that
| hard to test.
|
| EDIT: as per the other comments, googling "race to idle" and
| "race to sleep" which may enlighten my curious self
| BeeOnRope wrote:
| > Hmmmm... I've always heard from chip engineers that power
| consumption / heat dissipation was not linear compared to
| clock speed. I'd be very surprised to find a case where a
| linear amount of work to be done by the CPU would cause
| more energy consumption overall at lower clock speed then
| the same task ran on the same CPU in a shorter timeframe,
| but at a higher clock rate.
|
| Both cases ("slower is better" and "faster is better") are
| true at different points on the frequency curve, because
| the frequency (hereafter "F") and power (hereafter "P")
| relationship has both linear and superlinear terms.
|
| To a first order approximation, _dynamic_ power (roughly
| the power actually used to do work) scales with F^3, but
| chips also have a significant static power draw as well:
| power they draw for just being on. Actually, the
| relationship is more complicated than that since static
| power may also depend on V, hence indirectly on frequency,
| but the bottom line is that as you reduce frequency to zero
| power use doesn 't go to zero but asymptotically approaches
| some non-zero plateau.
|
| So imagine a simplified CPU where we care only about the
| order-0 and order-3 terms, and it happens that power goes
| like (P in W, F in MHz): P(F) = 2 +
| 1e-10*F^3
|
| That is, this chip draws at least 2W at any frequency, plus
| a cubic term in F.
|
| This gives a power curve like this [1] where I've also
| plotted "work vs energy" which is energy efficiency: how
| much computation you can do for a given energy input (this
| is simply F/P).
|
| As you can see, power use increases in a cubic way to the
| right, but has an asymptote at 2W on the left. Work/energy
| has a maximum in the middle: at too low frequencies, you
| are doing very little work/time but paying the full 2W
| cost, while at the right the cubic term kills power: P
| increases with F^3 but work only with F. The most efficient
| spot is somewhere in the middle. Let's call this point
| Feff.
|
| So it never really makes sense to run your CPU at less than
| Feff: you are _less_ efficient and it takes longer. It can
| definite makes sense, however, to run your CPU at _more_
| than Feff: you use somewhat more energy but get your work
| done faster. People don 't buy 5 GHz CPUs because they just
| want their work done efficiently, after all: they want it
| done fast too.
|
| That's what a lot of the discussion misses: it's not a one
| dimensional problem that can be solved in terms of joules
| and MHz: it depends on your time preference too. That's why
| there are so many tunables, such as Intel's EPP (energy
| performance preference).
|
| Different processes may have different ideal F values as
| well: if you have a periodic job running in the background
| that takes 1s of (nominal) CPU every minute, you won't care
| if it is on your CPU for 0.5s or 2s, as it runs on a fixed
| schedule anyway which is much less than a full CPU: this
| should run at Feff. OTOH when you are compiling a source
| file and twiddling your thumbs there might be a big
| difference between 5 and 20 seconds.
|
| This is really only brushing the surface: there are a lot
| of additional considerations too: e.g., the whole chip may
| have a power limit, so it may not be possible to go all the
| way to right on the F graph, especially if multiple cores
| are running: even if your "performance preference" is way
| to the right (prefer a higher work/rate regardless of the
| power cost) you might get the fastest work rate by running
| more cores at lower F, or even one core at lower F to avoid
| throttling (because running at F is generally more
| efficient than running at F-d and F+d in a 50/50 ratio, due
| to the cubic term, so throttling is inherently
| inefficient).
|
| ---
|
| [1] https://gist.githubusercontent.com/travisdowns/1e685007
| c9719...
| verall wrote:
| Power consumption through an asic is P=CfV^2 aka power is
| capacitance times frequency times voltage squared. So power
| does scale linearly with frequency.
|
| When you gate on/off portions of a chip, you are changing
| the capacitance.
| wtallis wrote:
| What that equation doesn't tell you is that the voltage
| necessary to make a chip run at 4GHz is higher than the
| voltage it needs to run at 1GHz. So in practice with real
| CPUs, increasing frequency also means increasing voltage,
| and thus power does not increase linearly. (Unless you
| have a chip that's configured to idle with unnecessarily
| high voltage.)
| orangeoxidation wrote:
| > Sadly, switching to the "powersave" governor may not, in
| fact, end up saving you power, depending on what you're doing
|
| Independently of whether that's true, isn't most consumer
| hardware (laptops) running "idle" most of the time?
|
| Not setting "powersave" might be better if you want to
| compile something, transcode a video or do some machine
| learning and turn the machine off as soon as it's done. But
| that's hardly how a majority uses their devices.
| [deleted]
| marcan_42 wrote:
| > Independently of whether that's true, isn't most consumer
| hardware (laptops) running "idle" most of the time?
|
| Yes, which is why you want to _become_ idle as fast as
| possible - and that means running at the fastest clock
| speed when you need to get some work done. Otherwise you
| are extending the amount of the time system is not idle,
| which has a fixed power cost beyond the CPU cores
| themselves.
|
| Here's a Lenovo power optimization guide. It's for servers,
| but the same principles apply to pretty much all modern
| systems. Spoiler alert: the "ondemand" governor has the
| highest energy efficiency, significantly higher than
| "powersave" (page 14). The newer schedutil governor (page
| 23) is even better, over 34% more power-efficient than
| powersave.
|
| https://lenovopress.com/lp0870.pdf
|
| "Powersave" means saving power, it doesn't mean saving
| energy. Your battery holds a fixed amount of energy, not a
| fixed amount of power. Energy is what matters.
| BeeOnRope wrote:
| > "Powersave" means saving power, it doesn't mean saving
| energy.
|
| Powersave means saving energy (for a given amount of
| work), despite the name. Any other behavior is a bug. It
| usually saves energy by running at a lower frequency,
| where the frequency/watt and work/joule are better (those
| aren't the same: there is a region where the first is
| better but the latter is worse, and you want to avoid
| that!).
|
| "Race to sleep" isn't binary: it's not a choice between
| the slowest supported speed and the fastest. Rather, you
| can select any supported speed. The fastest speeds
| (usually north of 3 GHz) will almost never provide the
| best work/joule, regardless of whether you sleep earlier.
| marcan_42 wrote:
| > Powersave means saving energy (for a given amount of
| work), despite the name. Any other behavior is a bug.
| static void cpufreq_gov_powersave_limits(struct
| cpufreq_policy *policy) {
| pr_debug("setting to %u kHz\n", policy->min);
| __cpufreq_driver_target(policy, policy->min,
| CPUFREQ_RELATION_L); }
|
| That's the entire governor. It sets the lowest frequency.
| This is the documented behavior. Not the frequency with
| the highest performance per watt. The lowest frequency,
| period.
|
| Yes, "race to sleep" isn't binary, which is why we have
| smart modern governors that do a very good job at picking
| appropriate frequency states - but just as the highest
| turbo is almost always a bad idea, so is the lowest
| state, which is what "powersave" does. "ondemand" is more
| power efficient than "powersave", and "schedutil" even
| moreso, on modern CPUs.
| BeeOnRope wrote:
| Right, because the lowest _supported_ frequency is
| supposed to be the most energy efficient frequency, Feff,
| at least on Intel chips. I.e. it is the minimum in the
| joules /work chart.
|
| After all, there's no point running at a lower frequency:
| those frequencies are always dominated regardless of your
| time/energy preference, so Intel claims to set Fmin to
| Feff.
|
| So lowest freq is a good proxy for "I only care about
| efficiency".
|
| That said, powersave is a bit ambiguous: it's a policy in
| more than one driver. For example, intel_pstate, the
| default recommended driver for Intel chips, has powersave
| and performance governors too, and there powersave is
| much more sophisticated and can run at high frequencies.
| marcan_42 wrote:
| Reality doesn't agree that using the lowest frequency is
| the most efficient approach, as evidenced by that Lenovo
| presentation :-)
| toast0 wrote:
| > "Powersave" means saving power, it doesn't mean saving
| energy. Your battery holds a fixed amount of energy, not
| a fixed amount of power. Energy is what matters.
|
| Ignoring everything else, your battery doesn't hold a
| fixed amount of energy either. Or, if it does, it doesn't
| deliver a fixed amount. The energy you get out depends on
| the load. If you draw enough power that it heats the
| battery, you'll get less energy out. Of course, if you
| draw so little energy that self discharge becomes
| significant, you'll get less energy out.
|
| As with the rest of the discussion, there's clearly a
| balance to be had, but it's hard to make the optimum
| choice because the systems usually don't know the load
| profile of (immiment) future work, and there are many
| systems that interact, and there may be no part of the
| system that has enough information to make an overall
| decision. That said, there's clearly been lots of
| progress on getting quite good results in most scenarios.
| pverghese wrote:
| Lower frequencies consume less power than higher frequencies
| saagarjha wrote:
| Yes, that's mentioned in the parent comment. The problem is
| that at slower frequencies also keep the core powered up
| for longer, which is often bad for power consumption. For
| many mobile devices, it's often much better to ramp up the
| processor to 100% and get the work done quickly, then rush
| to idle as quickly as possible.
| Neil44 wrote:
| I see what you're saying but I believe there's an issue
| at the silicon level where the gates literally use more
| power to do the same work at higher frequencies.
| jhgb wrote:
| It's a well-known feature of CMOS gates that they consume
| almost all of their power at the moments of switching.
| AFAIK only recently has static leakage become
| substantial, necessitating power gating.
| garaetjjte wrote:
| Higher frequencies require higher voltage though, and
| this will increase power consumption.
| rtomanek wrote:
| To add context: this is especially true for tasks that
| are likely to end in the device sleeping again. Two
| examples: user checking phone after hearing a
| notification sound or opening the laptop lid to check
| train departure time in the browser (then closing it
| again).
|
| The faster the CPU deals with the task once the device is
| fully awake the shorter the time other power hungry parts
| of the system (like screen) need to be awake.
|
| That's why slow phones, where the user needs to wait for
| their browser to finish loading the page will never be
| battery effective.
| FeepingCreature wrote:
| Has anyone actually measured this on a laptop?
|
| My view is that this works for CPU heavy tasks, but not
| for low-frequency repeated background tasks like browser
| window drawing, where if you speed up your CPU you just
| burn energy to get a higher framerate, something you
| generally don't care about on powersave.
|
| So optimally you'd want to clock up for "burst tasks" and
| keep freq low for "per-frame tasks". But I don't know of
| a scheduler that does that, or even how it could do it.
| But if you assume most of your battery loss will be to
| frame tasks, powersave makes sense.
| saagarjha wrote:
| These kinds of things do get used in laptops-the keyword
| you're looking for is "race to idle", as the processor
| quickly clocks up and then rushes back to a lower-
| frequency state or even goes back to sleep. On the mobile
| side, I do know that Apple did work a couple years back
| to scale up to maximum clock rate very quickly to handle
| user-interactive tasks:
| https://www.anandtech.com/show/13392/the-iphone-xs-xs-
| max-re.... Then they'd ramp it back down to save on
| battery life.
| FeepingCreature wrote:
| Yeah but are there actually stats that this saves power
| in daily use?
| saagarjha wrote:
| I am not a hardware engineer, so I don't have actual
| stats on me, unfortunately. But the reasoning behind it
| makes sense: https://mjg59.livejournal.com/88608.html.
| Given that everyone is doing it, I am sure that there is
| data that shows that; I just don't have it :P
| hnaccount_rng wrote:
| Well you can take the battery size (and screen times you
| get from those). iPhone batteries are tiny compared to
| android. Like seriously tiny that my 10Wh Powerbank can
| charge it 5 times with some to spare (I only really get 4
| due to losses but still).
|
| So yes comparing iPhones to anything else highly suggests
| that the tuning Apple did pays off. That being said: I'm
| not aware of a useful comparison. I'm not even sure how
| you would design something like that, ie what would you
| like to keep constant?
| slavik81 wrote:
| This strategy is typically known as "race-to-sleep" or
| "race-to-idle". Just figured it was worth mentioning, as
| there's lots of additional information that can be found
| if you know what to search for.
| tjoff wrote:
| With the modern web there is no "rush back to idle".
| Browsers will burn your CPU until you turn off your
| browser, which in most cases is only when you turn your
| computer off.
| saagarjha wrote:
| Assuming you are using a reasonable browser with a
| reasonable set of websites open, a browser should not
| really burn unbounded CPU in the background. Tabs that do
| are generally throttled, allowing the scheduler to burst
| their work and then have the processor go back to sleep.
| tjoff wrote:
| Are we assuming no tracking and ads as well?
|
| But yeah I agree, it should not. But it does.
| [deleted]
| christkv wrote:
| I think it's more that a lower TDP might mean the compile
| takes 50% longer but I'm still multitasking and I might get
| 2h more out of a battery charge than when the cpu is spiking
| to max TDP
| glandium wrote:
| > For example, CPU will run using "performance" governor with
| turbo boost enabled regardless if it's plugged in to power or
| not.
|
| Don't most distros default to ondemand or schedutil governor
| these days?
| Too wrote:
| I've only ever seen powersave and performance being supported,
| on a wide range of laptops. With powersave being the default.
|
| Powersave is noticeably slower on heavy workloads, and
| performance drains the battery on idle. So you have to keep
| toggling manually depending on your workload. Gonna try out
| this tool and hope it works.
|
| Sad it can't be built into the default governor. It's not
| exactly easy to find these settings. There must be a lot of
| people out there with fancy hardware which they are unaware
| they are not utilizing to their full potential.
| krzyk wrote:
| Ondemand was used like 10 years ago, later it was proved that
| with Intel it is better to use performance (race to idle).
| marcan_42 wrote:
| Actually, schedutil (the new ondemand) gets better perf/watt
| on modern Intel CPUs. Reality is more complex than "always
| crank up the CPU to the max" or "always turn it down all the
| way"; schedutil is optimized to do the right thing.
| catdog wrote:
| Intel has its custom driver for years now anyways
| https://www.kernel.org/doc/html/v5.14/admin-
| guide/pm/intel_p...
| christkv wrote:
| I've found http://tbswitcher.rugarciap.com/ that can turn of
| turbo boost on intel macs to be useful when on battery and
| compiling. Since 100% cpu usage will run at a much lower TDP and
| not kill my laptop battery as fast.
| wooque wrote:
| The best thing battery wise for me was to actually disable turbo
| boost and limit max frequency.
|
| It can be done in TLP config.
| rcarmo wrote:
| I'd like something that would actually disable CPU cores
| temporarily besides fiddling with governors and clock speeds. I
| currently do that with a cpufreq GUI wrapper, but it isn't
| automatic.
| throw8932894 wrote:
| Disable hyperthreading, it saves about 10% energy
| chrismorgan wrote:
| I tried taking 7 of my AMD Ryzen 5800HS's 8 cores offline with
| `echo 0 | sudo tee /sys/devices/system/cpu/cpu{2..15}/online
| >/dev/null` and found it made no measurable difference to
| battery drain (as in, approximately less than 0.01W and
| certainly well less than 0.1W). I don't know if I missed a step
| for actually turning the cores _off_ , or whether you can't
| actually turn them off, or whether the CPU is actually using
| _way_ less power than I thought when idle (seems rather
| unlikely given my error bars). But if anyone did know a way of
| actually turning them off, I'd be very interested to see if I
| could get the whole laptop stably under 5W.
| foota wrote:
| Iiuc AMD chips have more dependencies between chips, so maybe
| it's more difficult for them to turn one off? Or more likely
| wasn't worth implementing.
| formerly_proven wrote:
| AMD CPUs can powergate entire cores and do so automatically.
| jack_pp wrote:
| an easy way to test if your cores have gone offlane is to
| compile a big codebase or transcode a video file.
|
| ffmpeg -i input.mp4 output.mp4
|
| will use x264 which is well optimized to use your whole CPU
| (you can check htop).
| chrismorgan wrote:
| Oh, they go _offline_ alright so that I can't use them, but
| since that didn't reduce power consumption, I'm not sure if
| the cores are actually _switched off_. Or if that's even an
| option.
| megous wrote:
| If you're comparing idle CPU power consumption, the cores
| are likely effectively "turned off" while idle anyway.
|
| Offlining CPUs manually is still useful to limit what
| random software on your computer can do. There should
| still be difference between loading 1 CPU core to 100%
| and loading all 8 cores.
|
| Though savings may be cancelled out a bit by CPU using
| higher boost frequencies when only one core is loaded. So
| you may need to disable boost too, if you want to save
| power by disabling CPUs for non-idle use case.
|
| It would be easiest if I could say to the CPU: limit
| power use to this maximum. It's still doing it anyway to
| stay within TDP. Maybe there's some manual setting
| somewhere for that?
| chrismorgan wrote:
| I had just hoped that _actually_ off would be better than
| idling-off, a bit like how idling RAM consumes more power
| than off RAM.
|
| For AMD's CPUs/APUs, ryzenadj is a tool that does what
| you want. I use it when I want to constrain my power
| usage, switching it to a 5W TDP does better than just
| choosing the powersave governor.
|
| I found that `sudo ryzenadj --stapm-limit 100 --fast-
| limit 100 --slow-limit 100`, telling it to aim for the
| unrealistically low limit of 100mW, reduces the clock
| speed below the standard 1.2GHz to 400MHz. Idling at
| 400MHz uses the same power as idling at 1.2GHz, but
| thrashing all cores at 400MHz definitely uses less power
| than thrashing all at 1.2GHz, though I can't remember
| actual numbers (I did this a few months ago). Turning the
| machine into a single-thread 400MHz machine definitely
| slows things down!
| Delk wrote:
| I'm not an expert on this, and I don't know how the
| power-saving states for AMD processors work, but my
| understanding is that at least for modern Intel CPUs the
| deepest power-saving states pretty much turn the core
| off. [1]
|
| Also, I'm not actually sure minimizing the clock
| frequency is going to maximize power savings. The voltage
| required for stable operation increases with the clock
| frequency, but the relationship is not linear. The top
| frequencies require proportionally higher voltage for the
| performance gains, so they are less power efficient.
| However, since the relationship is not linear, there may
| be a sweet spot between the minimum and the maximum with
| the lowest energy consumption per operation. [2] The
| power consumption per second will be at its lowest on the
| lowest clock frequency, but the power consumption for an
| entire computation might not be.
|
| [1] https://itigic.com/c-state-on-intel-processors-what-
| it-is-ho...
|
| [2] Energy-Efficient Data Processing at Sweet Spot
| Frequencies; Gotz et al., 2014; https://link.springer.com
| /chapter/10.1007/978-3-662-45550-0_..., https://jorge-
| cardoso.github.io/publications/Papers/CP-2014-...
| rowanG077 wrote:
| Idling RAM has to be continually refreshed. In that sense
| RAM can't really ever be idle. A CPU can be literally off
| and turned on almost instantly.
| raffraffraff wrote:
| Unless you're using a GPU optimized build!
| londons_explore wrote:
| Whats the overhead of this daemon running all the time? It uses
| RAM which effectively increases power consumption because now
| something else is pushed out of the cache. It polls therefore
| waking the CPU every few seconds, even if perhaps nothing else is
| going on on the machine and the CPU would otherwise be idle.
|
| I wonder if its benefits outweigh the disadvantages. Would be
| good to have numbers for a bunch of different hardware configs...
| easytiger wrote:
| You can certainly write something like this such that it will
| use as near as makes no difference any CPU time.
| londons_explore wrote:
| It's true it doesn't use much CPU in percentage terms... but
| wakeups are expensive.
|
| When I'm reading a web page, ideally my CPU is halted, using
| barely any power. With the screen dim, I might be hoping for
| 20 hours battery life in that state.
|
| To wake up, just to poll something, and go back to sleep
| again uses a lot of energy compared to doing nothing.
| Something polling a few times a second might reduce my 20
| hours down to just 10.
| geokon wrote:
| What's a straightforward way to clock down a CPU to a fixed rate?
|
| I sometimes want to run benchmarks and I'd like my laptop to
| stick to one speed
|
| I understand it's a bit problematic with the latest CPUs bc the
| gap between turbo and non turbo is so huge - and the CPU is in
| turbo a good chunk of the time (and your cache performance will
| be very different running at 1Ghz vs 4Ghz)
|
| Anyone have a good solution?
| baybal2 wrote:
| > the gap between turbo and non turbo is so huge
|
| > Anyone have a good solution?
|
| A good cooler
|
| ----
|
| Downvotes, really? There is really no trick around thermals
| being the main performance limiting factor for the last 10
| years, since CPUs started coming with hardware "turbo"
|
| You cannot optimise around that.
| geokon wrote:
| Yeah but that's prolly not really a solution either
| (sidestepped the issue of modifying the cooler on a laptop).
| Bc you can't lock yourself to always be in turbo. So you
| can't get consistent performance while benchmarking
| baybal2 wrote:
| The problem is not understood by the prime majority:
|
| As said above, the performance, and power consumption of
| modern CPUs is an "all, or nothing" choice.
|
| Modern laptop CPUs are nothing, but well disguised
| desktop/server cores. Nobody designs designated mobile use
| cores, unless you are in ARM world.
|
| In principle, they are unable to work in the "middle gear."
| CPU makers tried to make them to, but never managed to get
| a reasonable trade off. So you cannot run them reasonably
| at "half-performance"
| timpattinson wrote:
| You're missing the point really. With a competent desktop
| cpu/mobo it's easy to peg the CPU clock at a certain
| frequency.
|
| And with modern CPUs the power density is sufficently high
| that the die and heatspreader thermal resistance is enough to
| cause substantial temperature changes even with completely
| overspecced cooling.
| baybal2 wrote:
| > With a competent desktop cpu/mobo it's easy to peg the
| CPU clock at a certain frequency.
|
| No, you can up/down the base/turbo limits, but the effect
| will be miniscule.
| jeffbee wrote:
| I just use 'cpupower frequency-set' to pin cores at their base
| clock speed for microbenchmarking.
| marcan_42 wrote:
| Change the cpufreq governor to userspace and then you can echo
| the desired frequency into its control file. It will stick.
| 1kurac wrote:
| A similar tool to prolong laptop autonomy is XSuspender
| <https://kernc.github.io/xsuspender/>. It configurably SIGSTOP-s
| unfocused X11 applications. It is, sadly, XWindows-only.
| Valodim wrote:
| Who the hell puts a swastika on their software website?
| jonnycomputer wrote:
| I don't see it.
| erk__ wrote:
| It's in the footer, grey on grey so it's not very visible
| fooctrl wrote:
| auto-cpufreq author, I have no idea what you're talking
| about. If you're talking about same site which is:
| https://foolcontrol.org/
| smoldesu wrote:
| We're talking about the Github page that was linked
| upthread.
| charcircuit wrote:
| Maybe they just thought it looked good.
| Tade0 wrote:
| This appears to be the original symbol, not the bastardised
| nazi version.
| tomxor wrote:
| yup, easy way to distinguish is the 90 deg angle... AFAIK
| only the Nazi one is 45deg. If it's 90deg it's in reference
| to one of the many uses in Asian cultures and religions.
| This really aught to be taught next to WW history in the
| west to ensure people properly contextualise it's use when
| they encounter it in the wider world.
| ziml77 wrote:
| It's pretty fucked that this isn't taught. It's not like
| it has to be some deep dive into the significance of the
| swastika in Asian culture either. Even just a couple
| lines in a textbook about it would be far better than
| nothing
| Tade0 wrote:
| Where I come from neo-nazis often try to refute
| allegations of spreading totalitarian ideology
| (punishable by a fine or up to two years in prison) by
| saying that they were actually referring to the original
| meaning.
|
| Of course nobody is buying it, but such cases are
| nevertheless often dismissed.
| mhh__ wrote:
| Better than nothing but it's kind of thing people who
| would appreciate it would find out anyway, I feel i.e.
| I'm fairly well read culturally/historically but I've
| never really studied it formally, and I think I wouldn't
| be as interested if I did.
|
| I'm curious what sticks if you are led to rather than
| spontaneously learning.
| lifthrasiir wrote:
| Unfortunately both Nazi and Asian cultures (among others)
| have used all possible orientations (left/right-facing
| and 0/45/90 degrees) throughout the history, making the
| distinction much harder. To this end Asian countries
| realized that it is much easier to not use swastika than
| to educate people. South Korean maps for example used
| swastika for Buddhist temples but now use pictorial
| symbols instead.
| tomxor wrote:
| That may be so, but it would only make 45deg ambiguous -
| i.e 90deg can still reliably be identified as not-nazi.
| eklavya wrote:
| That's really really unfair. So first west fucked up our
| symbol and now west won't educate itself about the actual
| symbol? Swastik is such an ingrained part of my culture
| and religion, can't just give it up.
| lazide wrote:
| Of all the terrible things the Nazis did, this is
| probably one of the least terrible ones. _shrug_
| Delk wrote:
| You shouldn't.
|
| IMO it's kind of understandable, at least on the
| individual level, that people don't know. I probably
| didn't know until I first travelled to Asia. However, it
| doesn't take a genius to realize that a map (or whatever)
| in an Asian country probably isn't full of Nazi symbols,
| or that there's probably some kind of an explanation for
| them.
| gdevenyi wrote:
| Perhaps it's worth reading about other uses from non-western
| cultures.
|
| https://en.wikipedia.org/wiki/Swastika
| fooctrl wrote:
| auto-cpufreq author here, sorry but what are you talking
| about, what swastika?
| [deleted]
| Wowfunhappy wrote:
| GP is talking about xsuspender's website, not yours!
| dijit wrote:
| Wayland doesn't constantly redraw the window (this is why
| pycharm had issues with Xwayland) so you already have this
| benefit if you're on Wayland.
| 1kurac wrote:
| That's just about redrawing. It does nothing about other,
| potentially unwanted process background CPU use.
| ComputerGuru wrote:
| Many apps (esp electron) use CPU regardless of whether
| they're redrawing the actual desktop window or not.
___________________________________________________________________
(page generated 2021-10-17 23:01 UTC)