Setting Power Modes at Boot on Intel and AMD GPUs (Linux)
Why?
This is useful for those who want to avoid relying on graphical tools like CoreCtrl and prefer an automatic configuration from boot.
Requirements
Hardware
- AMD: GCN or newer GPU (driver
amdgpu). Any model released since 2012. - Intel: Gen6 or newer GPU (driver
i915). Any model released since 2012.
System
- Linux with
udevsupport. - Root access.
Basic Configuration
Performance Levels
AMD
Edit or create the file /etc/udev/rules.d/amdgpu.rules with the following content:
ACTION=="add", SUBSYSTEM=="drm", DRIVERS=="amdgpu", ATTR{device/power_dpm_force_performance_level}="low"
Possible values for power_dpm_force_performance_level:
auto: GPU adjusts dynamically (default value).low: minimum power consumption.high: maximum performance.manual: user defines specific frequencies.
Advanced Configuration
Granular Frequency Control
pp_* Files
In /sys/class/drm/cardX/device/ you will find parameters to adjust SCLK, MCLK, and power profiles.
Key files:
pp_dpm_sclk: core frequencies.pp_dpm_mclk: memory frequencies.pp_power_profile_mode: predefined profiles.pp_od_clk_voltage: manual overclock/undervolt.pp_od_support: indicates if OverDrive is supported.
Example udev rule:
ACTION=="add", SUBSYSTEM=="drm", DRIVERS=="amdgpu", \
ATTR{device/power_dpm_force_performance_level}="manual", \
ATTR{device/pp_dpm_sclk}="7", ATTR{device/pp_dpm_mclk}="2"
Notes
The numbers (
7,2, etc.) are DPM states visible with:cat /sys/class/drm/card0/device/pp_dpm_sclkUse
manualso frequencies remain fixed.
Intel
gt_*_freq_mhz Files
On Intel, in /sys/class/drm/card0/, you can set minimum, maximum, and boost frequencies (the latter on newer GPUs).
Example udev rule in /etc/udev/rules.d/i915.rules:
ACTION=="add", SUBSYSTEM=="drm", DRIVERS=="i915", \
ATTR{gt_min_freq_mhz}="300", ATTR{gt_max_freq_mhz}="1100", ATTR{gt_boost_freq_mhz}="1100"
Notes:
- Values are in MHz and depend on the model.
- Check current frequencies:
cat /sys/class/drm/card0/gt_*_freq_mhz
Apply Changes Without Rebooting
After modifying or creating rules, run the following commands:
sudo udevadm control --reload-rules
sudo udevadm trigger
Important Considerations
- Setting high frequencies increases power consumption and temperature.
- On laptops, it can drastically reduce battery life.
- Some configurations require special parameters when loading
amdgpuori915. - If instability occurs, it is recommended to revert to default values (
auto).

