How to reduce AMD GPU power consumption on Linux
If you have a PC running Linux with an AMD GPU, you can change your GPU performance level. By default, the AMDGPU driver uses the “auto” performance level. But if you don’t need high performance, you can set it to “low” to reduce power consumption, heat generation, and fan noise.

On my system this change reduced the GPU power consumption from 30W to 15W in idle state and completely eliminated fan spinning.
You can check the current performance level with:
cat /sys/class/drm/card0/device/power_dpm_force_performance_level
You can change the performance level on the fly with:
echo "low" | sudo tee /sys/class/drm/card0/device/power_dpm_force_performance_level
echo "auto" | sudo tee /sys/class/drm/card0/device/power_dpm_force_performance_level
To make this change permanent, create a udev rule:
cat << EOF | sudo tee /etc/udev/rules.d/30-amdgpu-low-power.rules
SUBSYSTEM=="pci", DRIVER=="amdgpu", ATTR{power_dpm_force_performance_level}="low"
EOF
After that, the AMD GPU will use the “low” performance level on each boot.
Comments