The Goal
Reducing power draw in a homelab environment is a game of small gains. Discovering that my NVIDIA RTX 4090 was idling at 25–30W under Linux (compared to just 10W on Windows) prompted a deep dive into NVIDIA’s power management parameters.
The Problem: High Idle Draw
My homelab GPU machine, Helios, runs an RTX 4090 with a fairly complex stack: Proxmox → Ubuntu VM (GPU Passthrough) → Kubernetes → NVIDIA GPU Operator (I may write about this setup in the future…).
While the setup was stable, I noticed the GPU initially consumed ~25W while sitting completely idle with no active workloads. For a machine designed to run 24/7, this overhead is significant:

The Benchmark: Windows vs. Linux
To verify if this was a hardware limitation or a configuration issue, I tested the card in a Windows 10 VM with the same passthrough setup. The results were clear: Windows managed to bring the idle consumption down to 7–11W:

This confirmed that higher efficiency was achievable. The limitation resided in the default Linux driver configuration.
While a 15–20W difference seems negligible, in a 24/7 homelab environment, this efficiency gap represents unnecessary heat and energy waste.
The Solution: Kernel Module Optimization
After researching driver power management, I identified three specific kernel parameters that allow the NVIDIA driver to utilize deeper power-saving states.
1. The 3 Essential Parameters
NVreg_PreserveVideoMemoryAllocations=1: Ensures VRAM contents are saved during power state transitions.NVreg_EnableS0ixPowerManagement=1: Enables support for modern standby power states.NVreg_EnableGpuFirmware=1: Directs the driver to use the GSP (GPU System Processor) firmware for power management tasks.
2. Implementation via NVIDIA GPU Operator
Because I use the NVIDIA GPU Operator to manage drivers within Kubernetes, these parameters must be passed via a ConfigMap.
apiVersion: v1
kind: ConfigMap
metadata:
name: kernel-module-params
data:
nvidia.conf: |
NVreg_PreserveVideoMemoryAllocations=1
NVreg_EnableS0ixPowerManagement=1
NVreg_EnableGpuFirmware=13. Deployment
Apply the kernel-module-params ConfigMap and update your Helm installation to reference it:
helm install --wait --generate-name \
-n gpu-operator --create-namespace \
nvidia/gpu-operator \
... <OTHER_PARAMETERS> ... \
--set driver.kernelModuleConfig.name="kernel-module-params"Results
After the driver restarted with the new parameters, the idle power consumption dropped to ~9W.

By implementing these three parameters, I reduced the idle power draw by ~65%, matching the efficiency seen in the Windows environment. 👌