Framework 16 Power Consumption Benchmarks

There is some very deep work going on that will improve how compositors blend planes together. At least with scanout configurations (how you would nominally want to show video for low power playback) this will improve consumption significantly.

Here’s the ongoing work for the lowest layer stage - how the GPU driver will change cursor blending:

https://lore.kernel.org/amd-gfx/20240315170959.165505-1-sunpeng.li@amd.com/T/#m46eb0af785d226309891edca514a756d0e2bde21

There’s some links in this thread as well for the changes being made in libraries and compositors as well.

7 Likes

I discovered that in Fedora, compared to 100% setting the displays scale to 200% increase the powerconsumption about 10% and 125% to 175% increase the consumption about 40%

5 Likes

Is it possible this is not an issue with Fedora per se, but rather the desktop environment? I’m not showing any noticeable difference in power consumption between 1.0 and 1.5 scaling in Sway on Fedora 39.

1 Like

Yes different compositors can use graphics hardware differently. Using the graphics hardware will increase power consumption. Using display (dcn) won’t.

This is why for example using WARP for a terminal uses more power.

1 Like

Hi, which DE are you using?

One thing I haven’t figured out yet is why a TTY session draws more power than Plasma.

GNOME.
In addition to higher consumption, some programs get the wrong resolution with the scale. When playing Minecraft on 150%, the game displays 1704~ish instead of 2556, which may lead to lower power consumption

1 Like

I’m curious how well Ghost Spectre would work or improve the battery life, has someone tried on a Framework yet?
Right now I’m debating between that or just debloating the normal win 11 :thinking:

How do I get my system to only draw ~7W of power?

I’m on Arch with KDE Plasma, just installed a few days ago and at idle my system is drawing ~18-19W.

  • Screen brightness at 15%
  • No expansion modules installed
  • dGPU (7700S) installed (not intentionally using it and nvtop shows 0 usage)
  • keyboard backlight off
  • Macro RGB Pad backlight off
  • No open windows or processes (except like 2 Konsole windows for powertop and checking the wattage usage)
  • BT/WiFi on. (BT off doesn’t seem to make a huge difference)

powertop shows tick_nohz_highres_handler as generating the highest number of events, followd by kwin_wayland.

Even if I can get to ~10W that would be nice as that would double my existing battery time (2hrs currently to 4hrs).

I do have power-profile-daemon installed and currently set to “Powering Saving” (when on battery), but even then, it seems to make 0 difference when I toggle the different parameters (using the KDE System Tools).

I can tell you right there that’s 6w+ you are wasting because nvtop wakes it up.

Some things you might have forgot as not mentioned. Set screen refresh rate to 60, remove any power drawing cards like the dp/hdmi and ethernet cards.

1 Like

I’m not running nvtop constantly, just to check to make sure that the system was idle and that nothing was running on the dGPU.

As of right now, nvtop is not running and my power-consumption is still at ~18-19W.

I did mention “No expansion modules installed”, which means I didn’t have any of these installed. In my testing, removing them only brought the usage down to ~16-17W, so that did help, but when I’m still 10+W away from 7W, there’s clearly something else pullling more power.

Screen Refresh is set to 60Hz.

So far the lowest I’ve seen is in the 16W range.

I do think the dGPU is somehow involved as I see amdgpu in the powertop output, but I don’t know.

Check this location to make sure the dGPU is in “D3cold” mode, then it is sleeping:

watch -n1 cat /sys/class/drm/card1/device/power_state

If you see “D0”, then it is awake and consuming power.

2 Likes

I’m showing D0. So how do I go about figuring out what might be trying to use the card? Or do I have a missing option that might be needed to auto-power it off?

There are a few things that can keep it awake. Framework has some tools that help detect usage here.

If you connected anything to the rear usb port (and removed it), there appears to be a bug that will also keep it awake until next reboot (in my experience).

Did you add any kernel options to keep it awake?

Any sensor monitoring software can do it too.

1 Like

Good call out! I was using fw-fanctrl to play with fan adjustments. After disabling this service, the dGPU went into D3cold state and my power is now floating around 12-13W.

I’m assuming that there’s already a built-in fan control, so do I need fw-fanctrl?

Unplugging the HDMI/DisplayPort adapters and turning off the keyboard backlight brings to just under 10W!

Some other fine adjusments and I’m now sitting at about 8.5W while on Firefox. This is great! Thanks @Mario_Limonciello and @jared_kidd!

5 Likes

power-profiles-daemon and powertop --auto-tune with low brightness, no keyboard light, and 60hz display get me to the 5-7W range.

I haven’t yet been able to repliate the <5W draw of my Gentoo install on linux… but oh well, I’ll keep trying

I don’t have it installed.

1 Like

I’m getting 21W at idle on Arch, with powertop attributing 31% of that to the display backlight, 561mW to amdgpu, and 393mW to tick_nohz_highres_handler, then Element (messaging), and a bunch of Chrome tabs below that. Killing Chrome brings me down to 19W total.

By “idle” I just mean, not doing anything. Does anyone else see something similar or have a fix?

I do get a “Devfreq not enabled” output from Powertop. Does anyone else see that?

That’s really high. Make sure you have nothing polling sensors and that you have PPD installed and set to balanced.

@Nicholas_Roth That is not normal. I’m on Arch right now with Brave (Chromium) open and it’s pulling 7.3W here at my local coffee shop. It sounds like you likely have a dGPU, I wonder if it’s going to sleep as expected. Definitely make sure you’re using power-profiles-daemon as Mario suggested and not any additional other software (like auto-cpufreq). Additionally I use powertop --auto-tune to quickly set a bunch of other tunables at boot.

You might be able to use a command like ryzenadj -b 1000 to limit the cpu to roughly 1W. Depending on whether your power usage drops down after that then that’ll provide you some clues about what’s pulling power. Use that program at your own risk however, I’ve ran it on my FW16 without issue, but it’s not official in any way that I’m aware of.