by FlyGoat

FlyGoat / RyzenAdj

Adjust power management settings for Mobile Raven Ridge Ryzen Processors

333 Stars 35 Forks Last release: 3 months ago (v0.6.3) GNU Lesser General Public License v3.0 56 Commits 13 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:


Adjust power management settings for Ryzen Processors.

Build Status

Based on: FlyGoat/ryzennbsmu

RyzenAdjUI_WPF by "JustSkill" is no longer maintained, for GUI please see le.storm1er/ryzen-controller.


The command line interface is identical on both Windows and Unix-Like OS.

You should run it with Administrator on Windows or root on Linux.

You can write a shell script or bat to do it automaticly.

$./ryzenadj -h
Usage: ryzenadj [options] [[--] args]
   or: ryzenadj [options]

Ryzen Power Management adjust tool.

-h, --help                            show this help message and exit

Options -i, --info Show information (W.I.P.)

Settings -a, --stapm-limit= Sustained power limit (mW) -b, --fast-limit= Fast PPT power limit (mW) -c, --slow-limit= Slow PPT power limit (mW) -d, --slow-time= Slow PPT constant time (S) -e, --stapm-time= STAPM constant time (S) -f, --tctl-temp= Tctl temperature (▒? -g, --vrm-current= VRM Current Limit (mA) -j, --vrmsoc-current= VRM SoC Current Limit (mA) -k, --vrmmax-current= VRM Maximum Current Limit (mA) -l, --vrmsocmax-current= VRM SoC Maximum Current Limit (mA) -m, --psi0-current= PSI0 Current Limit (mA) -n, --psi0soc-current= PSI0 SoC Current Limit (mA) -o, --max-socclk-frequency= Maximum SoC Clock Frequency (MHz) -p, --min-socclk-frequency= Minimum SoC Clock Frequency (MHz) -q, --max-fclk-frequency= Maximum Transmission (CPU-GPU) Frequency (MHz) -r, --min-fclk-frequency= Minimum Transmission (CPU-GPU) Frequency (MHz) -s, --max-vcn= Maximum Video Core Next (VCE - Video Coding Engine) (Value) -t, --min-vcn= Minimum Video Core Next (VCE - Video Coding Engine) (Value) -u, --max-lclk= Maximum Data Launch Clock (Value) -v, --min-lclk= Minimum Data Launch Clock (Value) -w, --max-gfxclk= Maximum GFX Clock (Value) -x, --min-gfxclk= Minimum GFX Clock (Value) -y, --prochot-deassertion-ramp= Time to ramp clocks after PROCHOT is deasserted (ms)


If I'm going to set all the Power Limit to 45W, and Tctl to 90 ℃, then the command line should be:

./ryzenadj --stapm-limit=45000 --fast-limit=45000 --slow-limit=45000 --tctl-temp=90


Build Requirements

Building this tool requires C & C++ compilers as well as cmake. It requires privileged access to NB PCI config space, in order to compile it one must have pcilib library & headers available.


Please make sure that you have libpci dependency before compiling. On Debian-based distros this is covered by installing pcilib-dev package:

sudo apt install libpci-dev

The simplest way to build it:

mkdir build && cd build
cmake ..


It can be built by Visual Studio + MSVC automaticaly, or Clang + Nmake in command line. However, as for now, MingW-gcc can't be used to compile for some reason.

Required dll is included in ./prebuilt of source tree. Please put the dll library and sys driver in the same folder with ryzenadj.exe.

We don't recommend you to build by yourself on Windows since the environment configuarion is very complicated. If you would like to use ryzenadj functions in your program, see libryzenadj.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.