Has anyone been able to run an RTX 3060 laptop GPU at more than 80W on Linux?

Refuses to run with these output

Jan 13 13:21:10 tux systemd[1]: Starting nvidia-powerd service…
Jan 13 13:21:10 tux /opt/bin/nvidia-powerd[25182]: nvidia-powerd version:1.0(build 1)
Jan 13 13:21:10 tux /opt/bin/nvidia-powerd[25182]: Error in loading msr module
Jan 13 13:21:10 tux /opt/bin/nvidia-powerd[25182]: Failed to read the data for calculating CPU power
Jan 13 13:21:10 tux /opt/bin/nvidia-powerd[25182]: Failed to initialize GPU Boost controller

I wonder if it’s trying to read raw data from msrs or rather digested data from intel_rapl which should have zen123 support as of kernel 5.11.

nvidia-settings 510 now includes setting
Quiet/Balanced/Performance modes
obviously limited to (selected?) intel cpus for now.

Ah sad!

This is great progress. The driver seems to be heading in the direction of supporting different power modes.

I haven’t installed this driver yet so unable to comment. Has anyone tried it on 5.17? Perhaps there is support in it for zen3 power consumption.

Will share an update here if I’m able to test it. Thanks @generix & others!

Still buggy though, even if it runs:

Yeah I tried it with 5.17-rc1 but sadly still power consumption of the zen3 cpu cannot be calculated. Powerd gives the same errors.

nvidia-powerd still not working on latest 500 series drivers with the same errors. With an AMD CPU.

510.47.03, Intel Core i7-10870H, RTX 3060 laptop (optimus, Dell G15 5510), nvidia-powerd is running but still no more than 80W.

Did you check nvidia-settings for the appropriate setting (quiet/balanced/performance)? Did you also install the dbus config file (https://download.nvidia.com/XFree86/Linux-x86_64/510.47.03/README/dynamicboost.html)?

I have dbus config config file in /usr/share/dbus-1/system.d/ (part of the xorg-x11-drv-nvidia-power package), nvidia-powerd reports:

Starting nvidia-powerd service...
/usr/bin/nvidia-powerd[1162]: nvidia-powerd version:1.0(build 1)
/usr/bin/nvidia-powerd[1162]: Dbus Connection is established
systemd[1]: Started nvidia-powerd service.

nvidia-settings -q DynamicBoostSupport

Attribute 'DynamicBoostSupport' (MAXG155510:0[gpu:0]): 0.
    'DynamicBoostSupport' is a boolean attribute; valid values are: 1 (on/true) and 0 (off/false).
    'DynamicBoostSupport' is a read-only attribute.
    'DynamicBoostSupport' can use the following target types: GPU.

So it’s reported unsupported but the thing is under Windows I have better fps in the same applications (GravityMark for example), so I think it works there.

UPDATE: I went to bios settings and switch power profiles to ‘Primarily on AC’ and ‘Ultra Performance’. Now RTX 3060 consumes up to 90W. nvidia-settings still reports dynamic boost unsupported and card never goes to D3Cold, stays in D0 forever.

Since nvidia-powerd is starting, this should be supported, imho. Otherwise it would bail out telling what it doesn’t like. Rather looks like nvctrl doesn’t see it. Tried restarting the Xserver to rule out a timing issue?

Yes, I rebooted several times since I enabled powerd. Seems that dell bios may be controlling this on its own, not sure. BTW, even with 90w performance under Linux is noticably lower than under windows (10-12% with the same benchmarks). Performance boost after increasing power from 80 to 90 w is negligible at least in linux.

Not rebooting, only restarting the Xserver.

Tried restarting Xorg, didn’t help. But I tested a bit more with and without nvdia-powerd running. 90W is really only available when powerd is running, so it seems it actually works. But when daemon is running it wakes nvidia GPU often without a good reason (for example, I launched browser, GPU wakes up though browser doesn’t need it). Eventually it goes back to D3Cold but it takes some time. When nvidia-powerd is not running, GPU wakes up only if some application really renders on it (i.e. render offload variables are set accordingly).

Sounds like you’re in offload mode, does switching to nvidia as primary gpu (aka performance mode) make this available?

When nvidia is a primary GPU benchmark results are the same within the margin of error. nvidia-powerd allows 90W just like in offload mode. So no reason to use nvidia as a primary GPU, offload mode gives same results. The only thing I don’t like is that nvidia-powerd wakes GPU without obvious reasons, I hope it will be fixed in the future. But at least power boost works.

Hi again, I need some help understanding how nvidia-powerd works. I have a script that runs applications in offload mode:

export VDPAU_DRIVER=nvidia
export __VK_LAYER_NV_optimus=NVIDIA_only

cmd=$(printf "%q" "$1")

for (( i=2; i<=$#; ++i ))
	args_array[$(( i-2 ))]=$(printf "%q" "${!i}")

sh -c "$cmd ${args_array[*]}"

I decided to add start and stop commands for nvidia-powerd so it’s only started when needed, so I added commands before running application in this script:

sudo systemctl start nvidia-powerd
sh -c "$cmd ${args_array[*]}"
sudo systemctl stop nvidia-powerd

Daemon reporting that it’s started successfully, systemctl status indicates it is running, but power boost does not work (80W only). For some reason daemon only does it’s job if started somewhere else but not from this very script. I even tried to add sleep 1 after start, but it did not help. Even simply restarting daemon from another terminal (sudo systemctl restart nvidia-powerd) while application is already running boosts power to 90W. So why daemon does not want to boost power when started from script, what difference does it make?

No idea.
Something different: the doc and stuff only talk about “DynamicBoost” which is AFAIK only the 10-15 extra Watts that the gpu is allowed to take while the general Power limit is set by the profile. The nvidia-settings GUI should have a drop-down for this, can you find it or is it hidden?

There are powermizer settings there, I tried to set ‘prefer maximum performance’ instead of ‘auto’, makes no difference. Other than that there are no power settings on nvidia-settings window.