Nvidia Power Management

Configuration for Nvidia GPU power management on Linux systems, particularly for hybrid graphics setups with Intel integrated GPUs.

Turing GPU Configuration

On Turing architecture GPUs, specific kernel module parameters are required for proper power management. The following settings must be added to /etc/modprobe.d/nvidia.conf:

options nvidia "NVreg_EnableGpuFirmware=0"

Dynamic power management is enabled via /etc/modprobe.d/nvidia-pm.conf:

options nvidia "NVreg_DynamicPowerManagement=0x02"

Driver Compatibility

D3 sleep state on Turing cards is not possible with the nvidia-open driver. Downgrading to nvidia-580xx is required for proper power management. This limitation is documented in community forums for hybrid graphics setups.

Applying Settings

After modifying configuration files, regenerate the initramfs:

sudo mkinitcpio -P linux

Regenerate GRUB configuration:

sudo grub-mkconfig -o /boot/grub/grub.cfg

Hyprland Integration

To route Hyprland through the Intel GPU for better battery life, set the following environment variable in the Hyprland configuration:

env = AQ_DRM_DEVICES,/dev/dri/card1

This ensures the compositor uses the integrated GPU while the discrete Nvidia GPU remains available for compute tasks.

Verifying Power State

Check the GPU runtime power status:

cat /sys/bus/pci/devices/0000:01:00.0/power/runtime_status

Monitor suspended time to confirm the GPU is entering low-power states:

cat /sys/bus/pci/devices/0000:01:00.0/power/runtime_suspended_time

Query the Nvidia driver directly for power information:

cat /proc/driver/nvidia/gpus/0000:01:00.0/power

These verification methods are consistent with broader Linux power management practices.

References