GPU is stuck to maximun power state at idle when using multiple monitors

Hello,

With certain combinations of monitor refresh rate, the GPU clocks won’t ramp down at idle (no app using the GPU open) even if I set:

  • Power management mode to Adaptive or Optimal Power with the Windows driver
  • Powermizer mode to Adaptive or Auto in with the Linux driver and both Xorg and Wayland

My GPU clocks never go bellow 1575 and 7750 Mhz at idle and nvidia-smi is reporting P0 in Perf section and 60W, it should be P8 and 22W at idle.
The GPU doesn’t even go to P2 state when CUDA apps are running (this is a good thing: Remove "P2 forced" state from drivers)

GPU: Geforce RTX 2080 SUPER

I have 3 monitors:

  • Monitor 1: Alienware AW2725DF 2560x1440 360 Hz, Adaptive-Sync, DisplayPort
  • Monitor 2: MSI MAG271CQR: 2560x1440 144 Hz, Adaptive-Sync, DisplayPort
  • Monitor 3: Iiyama G2250HS: 1920x1080 75Hz, Adaptive-Sync, DisplayPort

The only configuration that doesn’t trigger the issue with more than one monitor is to only use monitor 2 at 144 Hz and monitor 3 at 75 Hz and disabling monitor 1 but this setup with VRR is causing another issue: ps://forums.developer.nvidia.com/t/monitors-literally-stutter-when-vrr-g-sync-is-enabled/256836

I also noticed the GPU behaves on Windows and Linux with 2 or more screens as if set nvidia-modeset.disable_vrr_mclk_switch=1 in Linux because those both situations bypass P2 forced state when running CUDA.

2 Likes

Any updates ?

Hello Nvidia,

Can you at least give updates about the issue. Because I’m wasting power because of this bug and electricity is expensive in Europa, so please fix the issue. The only way to have GPU below P0 is to only use 2 screen and set the Monitor 3 to 240Hz max.

1 Like

Also happens to me in Windows with 2 monitors and a 3080.

Monitor 1: 3840x2160 160hz, Adaptive-Sync, DisplayPort
Monitor 2: 3840x2160 72hz, Adaptive-Sync, DisplayPort

If I lower refresh rate on the main monitor from 160hz to 120hz or lower, OR unplug the 2nd monitor, power consumption drops from 95W to 35W, along with mem clock from 9500MHz to 400MHz. I’m not sure but I believe this might somehow be related to DSC.

I have the issue even setting my 3 screens to 60 Hz . With the Alienware as the only screen and DSC on, I don’t have the issue, so I don’t think it’s related to DSC.

When I switch from DP 1.4 to HDMI 2.1 at 144hz the pstate drops back to normal. I’m positive DSC contributes to the issue.

I have done some tests with a RTX 2080 SUPER and a GTX 1060 Mobile:

  • RTX 2080 + 2560x1440 144Hz + 1920x1080 75 Hz → P8
  • RTX 2080 + 2560x1440 144Hz + 1920x1080 60 Hz → P0
  • GTX 1060 + 2560x1440 144Hz + 1920x1080 75 Hz → P0
  • RTX 2080 + 2560x1440 240Hz (DSC) + 1920x1080 75 Hz → P8

The behavior seems to depends on GPU and screens used and if DSC is used or not

Edit: I found one other related topic: High power draw with 3 or more monitors. I think if we have 3 screens or more the issue will be systematic regardless screen resolution and refresh rate.

That actually tracks. From talking to people in NVIDIA discord I believe DSC behaves like 2 display connections which would create a “3rd monitor” in my case.

I found an interesting thing. If you are using very high display resolution and/or refresh rate, your GPU will use 2 heads for this screen Display Stream Compression (DSC) support · NVIDIA/open-gpu-kernel-modules · Discussion #238 · GitHub, then your screen will count as if you have 2 screens connected. I checked my Alienware AW2725DF on Xorg at 2560x1440 360 Hz and it is using two heads.

1 Like

Another interesting thing: this issue bypasses this other issue NVDEC forces GPU into P2 CUDA state -> much higher power consumption than with VDPAU

Same issues with RTX3090 with 4K240 (dp1.4 with dsc) + 4K144 monitor. Set second monitor to 120hz solve the problem.

if you’re using VRR, try the kernel paramater nvidia_modeset.disable_vrr_memclk_switch=1, it seems to stop the memory clock being pinned to max (and hence the power state too) when VRR is active. It may help you here.

Unfortunately it happens regardless VRR is on or off in both Windows and Linux (Xorg, Wayland and TTY). Setting nvidia-modeset.disable_vrr_mclk_switch=1 does the opposite as I said in the first comment of this the topic. The only way to stop the issue is using only 1 screen or the monitor 2 and 3 only.

We have a bug 5474539 filed internally for tracking purpose.

Shall keep updated on the progress.

Thank you.

Just to add to this: I’m getting the same stuck at P0 state with a 2560x1440 and 1920x1200 monitor setup, both of them 60 hertz displays.