2022-11-10 23:02:52 +01:00
|
|
|
# amdgpu-overclock
|
|
|
|
|
2022-11-10 23:32:35 +01:00
|
|
|
## Increase performances of your AMD GPU on linux system:
|
|
|
|
|
2023-06-18 14:59:30 +02:00
|
|
|
- UDPATE 2023-06:
|
|
|
|
|
|
|
|
**Just discovered LACT rust app & daemon -> https://github.com/ilya-zlobintsev/LACT**
|
|
|
|
|
|
|
|
---
|
2022-11-10 23:32:35 +01:00
|
|
|
- Download & install [amdgpu-clocks](https://github.com/sibradzic/amdgpu-clocks) (go for the "manual installation");
|
2022-11-10 23:40:35 +01:00
|
|
|
- Set `amdgpu.ppfeaturemask=0xffffffff` as boot kernel parameter (**Mandatory**!) ;
|
2022-11-10 23:32:35 +01:00
|
|
|
- Check initial status of your gpu (`card0` generally) with `cat /sys/class/drm/card0/device/pp_od_clk_voltage`
|
|
|
|
|
|
|
|
*Example output*
|
|
|
|
```
|
|
|
|
OD_SCLK:
|
|
|
|
0: 500Mhz
|
|
|
|
1: 2580Mhz
|
|
|
|
OD_MCLK:
|
|
|
|
0: 97Mhz
|
|
|
|
1: 1000MHz
|
|
|
|
OD_VDDGFX_OFFSET:
|
|
|
|
0mV
|
|
|
|
OD_RANGE:
|
|
|
|
SCLK: 500Mhz 3000Mhz
|
|
|
|
MCLK: 674Mhz 1075Mhz
|
|
|
|
```
|
2022-11-10 23:37:03 +01:00
|
|
|
- Display all available power profile modes `cat /sys/class/drm/card0/device/pp_power_profile_mode`
|
2022-11-10 23:32:35 +01:00
|
|
|
|
|
|
|
*Example output*
|
|
|
|
```
|
|
|
|
PROFILE_INDEX(NAME) CLOCK_TYPE(NAME) FPS MinFreqType MinActiveFreqType MinActiveFreq BoosterFreqType BoosterFreq PD_Data_limit_c PD_Data_error_coeff PD_Data_error_rate_coeff
|
|
|
|
0 BOOTUP_DEFAULT :
|
|
|
|
0( GFXCLK) 0 5 1 0 4 800 4587520 -65536 0
|
|
|
|
1( SOCCLK) 0 5 1 0 1 0 3276800 -65536 -6553
|
|
|
|
2( MEMLK) 0 5 1 0 4 800 327680 -65536 0
|
|
|
|
1 3D_FULL_SCREEN :
|
|
|
|
0( GFXCLK) 0 5 0 1600 4 650 5242880 -3276 0
|
|
|
|
1( SOCCLK) 0 5 1 0 1 0 655360 -65536 -6553
|
|
|
|
2( MEMLK) 0 5 4 850 4 800 327680 -65536 0
|
|
|
|
2 POWER_SAVING :
|
|
|
|
0( GFXCLK) 0 5 1 0 3 0 5898240 -65536 0
|
|
|
|
1( SOCCLK) 0 5 1 0 1 0 3407872 -65536 -6553
|
|
|
|
2( MEMLK) 0 5 1 0 3 0 1966080 -65536 0
|
|
|
|
3 VIDEO :
|
|
|
|
0( GFXCLK) 0 5 1 0 4 500 4587520 -65536 0
|
|
|
|
1( SOCCLK) 0 5 1 0 1 0 3473408 -65536 -6553
|
|
|
|
2( MEMLK) 0 5 1 0 4 500 1966080 -65536 0
|
|
|
|
4 VR :
|
|
|
|
0( GFXCLK) 0 5 4 1000 1 0 3276800 0 0
|
|
|
|
1( SOCCLK) 0 5 1 0 1 0 655360 -65536 -6553
|
|
|
|
2( MEMLK) 0 5 1 0 4 800 327680 -65536 0
|
|
|
|
5 COMPUTE*:
|
|
|
|
0( GFXCLK) 0 5 4 1000 1 0 3932160 0 0
|
|
|
|
1( SOCCLK) 0 5 1 0 1 0 655360 -65536 -6553
|
|
|
|
2( MEMLK) 0 5 4 850 3 0 327680 -65536 -32768
|
|
|
|
6 CUSTOM :
|
|
|
|
0( GFXCLK) 0 5 1 0 4 800 4587520 -65536 0
|
|
|
|
1( SOCCLK) 0 5 1 0 1 0 3276800 -65536 -6553
|
|
|
|
2( MEMLK) 0 5 1 0 4 800 327680 -65536 0
|
|
|
|
```
|
|
|
|
|
2022-11-10 23:37:03 +01:00
|
|
|
- Select the **COMPUTE** n°**5** power profile to get maximum performances ;
|
2022-11-10 23:32:35 +01:00
|
|
|
- Create the file `/etc/default/amdgpu-custom-states.card0` ;
|
|
|
|
|
2022-11-10 23:37:03 +01:00
|
|
|
*Configuration example for my RX 6900XT*
|
2022-11-10 23:32:35 +01:00
|
|
|
> You better read the amdgpu-clocks shell script to understand & find some useful variables.
|
|
|
|
```
|
|
|
|
# GPU Clock
|
|
|
|
OD_SCLK:
|
|
|
|
0: 500Mhz
|
|
|
|
1: 2580Mhz
|
|
|
|
|
|
|
|
# Compute
|
|
|
|
FORCE_POWER_PROFILE: 5
|
|
|
|
|
|
|
|
# Watt
|
|
|
|
FORCE_POWER_CAP: 332000000
|
|
|
|
FORCE_PERF_LEVEL: manual
|
|
|
|
```
|
|
|
|
|
2022-11-10 23:37:03 +01:00
|
|
|
- Enable the [amdgpu-clocks systemd service](https://git.spokonline.net/spokendotcpp/amdgpu-overclock/src/branch/master/amdgpu-clocks.service) ;
|
|
|
|
- Enjoy 99% GPU usage in games now :)
|
|
|
|
|
|
|
|
## Sources
|
2022-11-10 23:40:35 +01:00
|
|
|
- [ArchLinux Wiki](https://wiki.archlinux.org/title/AMDGPU) ;
|
|
|
|
- [amdgpu-clocks github repository](https://github.com/sibradzic/amdgpu-clocks).
|