NVDEC forces GPU into P2 CUDA state -> much higher power consumption than with VDPAU

With VDPAU, the GPU is allowed to reduce clocks below P2 CUDA and P0 states. This is not the case with NVDEC, it forces the card into P2 CUDA state which totally prevents any downclocking below high baseclock (e.g. ~1.5GHz for a GTX 1070).
Thus power consumption with NVDEC is much higher than with VDPAU.

β†’ Please implement power savings when only NVDEC is used and not any other CUDA activity is going on!

Now in 2022, this issue is still present in both Linux NVIDIA 515.48.07 driver and Windows NVIDIA 512.95 driver.
There is no way to disable this driver behavior.

1 Like

Not true. Just checked mpv.com --vf=format=gamma=pq:primaries=bt.2020:colorlevels=full --target-colorspace-hint=yes -hwdec=nvdec --gpu-api=vulkan -vo=gpu-next Z:\Raya.and.the.Last.Dragon.2021.2160p.DSNP.WEB-DL.DDP.5.1.Atmos.DoVi.by.DVT.mp4

After initial P2 in seconds it get to P5 and if you open some other app to P3 (in nvidia-smi.exe)

| 41% 44C P5 37W / 260W | 2403MiB / 11264MiB | 14% Default |

So this is HEVC with Dolby Vision colorspace that is decoded using Vulkan shader.

We have filed a bug 200504689 internally for tracking purpose and we do have local repro for investigation.
Setup - OMEN by HP 25L Gaming Desktop GT15-0xxx + AMD Ryzen 7 5700G with Radeon Graphics + Ubuntu 22.04.1 LTS + kernel 5.19.0-38-generic + NVIDIA GeForce RTX 3080 + Driver 530.30.02 + DELL G3223D

Repro Steps -

  1. Installed MPV player
  2. Ran command mpv --hwdec=nvdec Sample 4k UHD (Ultra HD) video download - looks amazing on a 5k display.mp4
    Observed that power consumption is around 90 W.
  3. Ran command mpv --hwdec=vdpau-copy Sample 4k UHD (Ultra HD) video download - looks amazing on a 5k display.mp4
    Observed that power consumption is around 30 W.

Thank you very much :)
Just wanted to comment that I have seen this problem in many systems and it would be great if it could be mitigated/fixed.

535.54.03 driver released and the issue isn’t fixed.

I have questions @amrits.
Why does the driver lock GPU to P2 state when a CUDA application is running? It is a bug or intentional?
In what driver version that behavior will be removed ?