/AMD-Linux-Power-Management

Some simple scripts to set power levels and monitor GPU frequencies under linux with support to Radeon dpm

Primary LanguagePythonGNU General Public License v2.0GPL-2.0

AMD Radeon Linux power management scripts

Tested on Linux Mint 18, with Sapphire Radeon R9 380X (AMDGPU), Sapphire Radeon R7 260X (radeon)

Use cases

  • Crashes and freezes can be due to some GPU states being unstable under certain workloads. This might be especially evident when using desktop environments that cause a moderate GPU load for 3D effects, or modern browsers that use GPU acceleration for some kinds of content.

  • You want to force the GPU into low power or high performance state

Compatibility

This should work on recent systems with Radeon DPM support. Please do some more research to ensure that your system is supported.

An easy way to check is to run

cat /sys/class/drm/card0/device/power_dpm_force_performance_level

which will print out high low or auto. If the file does not exist, dpm is not enabled.

The scripts

The scripts starting with agpu will set and read states for AMDGPU drivers, while those starting with radeon are for the radeon drivers.

agpufreq and radeonfreq will periodically print core and memory clocks.

agpulow and agpuhigh will set lowest and highest profiles.

radeonset low and radeonset high will do the same for radeon driver based cards.

Interactive script

AMDGPUPRO/set_freq.py will list available core and memory clocks. You will be able to choose which one to use, and the script sets them and starts outputting the current states.

Example:

gj@linux-beic ~/git/AMD-Linux-Power-Management/AMDGPUPRO (master) $ sudo ./set_freq.py 
0: 300Mhz *
1: 473Mhz 
2: 745Mhz 
3: 829Mhz 
4: 870Mhz 
5: 903Mhz 
6: 938Mhz 
7: 1040Mhz 
Please enter the desired core power state


And enter the number to select the frequency. For example, if you want to use 938Mhz, write 6 and press ENTER.