{"id":13743534,"url":"https://github.com/FlyGoat/RyzenAdj","last_synced_at":"2025-05-09T01:31:02.017Z","repository":{"id":38355966,"uuid":"169076854","full_name":"FlyGoat/RyzenAdj","owner":"FlyGoat","description":"Adjust power management settings for Ryzen APUs","archived":false,"fork":false,"pushed_at":"2025-04-20T17:15:58.000Z","size":372,"stargazers_count":1863,"open_issues_count":77,"forks_count":130,"subscribers_count":35,"default_branch":"master","last_synced_at":"2025-04-28T14:56:26.745Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FlyGoat.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-02-04T12:43:27.000Z","updated_at":"2025-04-28T01:05:53.000Z","dependencies_parsed_at":"2023-02-16T10:15:30.916Z","dependency_job_id":"361fb078-c298-405a-80fa-b817aefb1e36","html_url":"https://github.com/FlyGoat/RyzenAdj","commit_stats":{"total_commits":178,"total_committers":21,"mean_commits":8.476190476190476,"dds":0.5730337078651686,"last_synced_commit":"45a867c573754704608bcce0db6059005435f833"},"previous_names":[],"tags_count":30,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FlyGoat%2FRyzenAdj","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FlyGoat%2FRyzenAdj/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FlyGoat%2FRyzenAdj/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FlyGoat%2FRyzenAdj/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FlyGoat","download_url":"https://codeload.github.com/FlyGoat/RyzenAdj/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253174244,"owners_count":21865838,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-03T05:00:50.257Z","updated_at":"2025-05-09T01:31:02.006Z","avatar_url":"https://github.com/FlyGoat.png","language":"C","funding_links":[],"categories":["C","HarmonyOS","Processors","Resources"],"sub_categories":["Windows Manager","AMD"],"readme":"# RyzenAdj\nAdjust power management settings for Ryzen Mobile Processors.\n\n[![Build Status](https://travis-ci.org/FlyGoat/RyzenAdj.svg?branch=master)](https://travis-ci.org/FlyGoat/RyzenAdj)\n\nBased on: [FlyGoat/ryzen_nb_smu](https://github.com/flygoat/ryzen_nb_smu)\n\nRyzenAdjUI_WPF by \"JustSkill\" is no longer maintained, for GUI please see  [Universal x86 Tuning Utility](https://github.com/JamesCJ60/Universal-x86-Tuning-Utility) or [ryzen-controller-team/ryzen-controller](https://gitlab.com/ryzen-controller-team/ryzen-controller/).\n\n## Usage\nThe command line interface is identical on both Windows and Unix-Like OS.\n\nYou should run it with Administrator on Windows or root on Linux.\n\nYou can write a shell script or bat to do it automatically.\n\n```\n$./ryzenadj -h\nUsage: ryzenadj [options]\n\n Ryzen Power Management adjust tool.\n\n    -h, --help                            show this help message and exit\n\nOptions\n    -i, --info                            Show information and most important power metrics after adjustment\n    --dump-table                          Show whole power metric table before and after adjustment\n\nSettings\n    -a, --stapm-limit=\u003cu32\u003e               Sustained Power Limit         - STAPM LIMIT (mW)\n    -b, --fast-limit=\u003cu32\u003e                Actual Power Limit            - PPT LIMIT FAST (mW)\n    -c, --slow-limit=\u003cu32\u003e                Average Power Limit           - PPT LIMIT SLOW (mW)\n    -d, --slow-time=\u003cu32\u003e                 Slow PPT Constant Time (s)\n    -e, --stapm-time=\u003cu32\u003e                STAPM constant time (s)\n    -f, --tctl-temp=\u003cu32\u003e                 Tctl Temperature Limit (degree C)\n    -g, --vrm-current=\u003cu32\u003e               VRM Current Limit             - TDC LIMIT VDD (mA)\n    -j, --vrmsoc-current=\u003cu32\u003e            VRM SoC Current Limit         - TDC LIMIT SoC (mA)\n    -k, --vrmmax-current=\u003cu32\u003e            VRM Maximum Current Limit     - EDC LIMIT VDD (mA)\n    -l, --vrmsocmax-current=\u003cu32\u003e         VRM SoC Maximum Current Limit - EDC LIMIT SoC (mA)\n    -m, --psi0-current=\u003cu32\u003e              PSI0 VDD Current Limit (mA)\n    -n, --psi0soc-current=\u003cu32\u003e           PSI0 SoC Current Limit (mA)\n    -o, --max-socclk-frequency=\u003cu32\u003e      Maximum SoC Clock Frequency (MHz)\n    -p, --min-socclk-frequency=\u003cu32\u003e      Minimum SoC Clock Frequency (MHz)\n    -q, --max-fclk-frequency=\u003cu32\u003e        Maximum Transmission (CPU-GPU) Frequency (MHz)\n    -r, --min-fclk-frequency=\u003cu32\u003e        Minimum Transmission (CPU-GPU) Frequency (MHz)\n    -s, --max-vcn=\u003cu32\u003e                   Maximum Video Core Next (VCE - Video Coding Engine) (MHz)\n    -t, --min-vcn=\u003cu32\u003e                   Minimum Video Core Next (VCE - Video Coding Engine) (MHz)\n    -u, --max-lclk=\u003cu32\u003e                  Maximum Data Launch Clock (MHz)\n    -v, --min-lclk=\u003cu32\u003e                  Minimum Data Launch Clock (MHz)\n    -w, --max-gfxclk=\u003cu32\u003e                Maximum GFX Clock (MHz)\n    -x, --min-gfxclk=\u003cu32\u003e                Minimum GFX Clock (MHz)\n    -y, --prochot-deassertion-ramp=\u003cu32\u003e  Ramp Time After Prochot is Deasserted: limit power based on value, higher values does apply tighter limits after prochot is over\n    --apu-skin-temp=\u003cu32\u003e                 APU Skin Temperature Limit    - STT LIMIT APU (degree C)\n    --dgpu-skin-temp=\u003cu32\u003e                dGPU Skin Temperature Limit   - STT LIMIT dGPU (degree C)\n    --apu-slow-limit=\u003cu32\u003e                APU PPT Slow Power limit for A+A dGPU platform - PPT LIMIT APU (mW)\n    --skin-temp-limit=\u003cu32\u003e               Skin Temperature Power Limit (mW)\n    --power-saving                        Hidden options to improve power efficiency (is set when AC unplugged): behavior depends on CPU generation, Device and Manufacture\n    --max-performance                     Hidden options to improve performance (is set when AC plugged in): behavior depends on CPU generation, Device and Manufacture\n```\n\n### Demo\nIf I'm going to set all the Power Limit to 45W, and Tctl to 90 °C,\nthen the command line should be:\n\n    ./ryzenadj --stapm-limit=45000 --fast-limit=45000 --slow-limit=45000 --tctl-temp=90\n\n### Documentation\n- [Supported Models](https://github.com/FlyGoat/RyzenAdj/wiki/Supported-Models)\n- [Renoir Tuning Guide](https://github.com/FlyGoat/RyzenAdj/wiki/Renoir-Tuning-Guide)\n- [Options](https://github.com/FlyGoat/RyzenAdj/wiki/Options)\n- [FAQ](https://github.com/FlyGoat/RyzenAdj/wiki/FAQ)\n\n## Installation\n\nYou don't need to install RyzenAdj because it does not need configuration, everything is set via arguments\nHowever, some settings could get overwritten by power management features of your device, and you need to regularly set your values again.\n\nWe did provide some examples for automation. And these require configuration during installation.\n\n### Linux Installation\n\nBecause it is very easy to build the latest version of RyzenAdj on Linux, we don't provide precompiled packages for distributions.\nJust follow the build instructions below and you are ready to use it.\n\n### Windows Installation\n\nBefore you start installing anything, it is highly recommended getting familiar with RyzenAdj to find out what can be done on your device.\nUse the CLI `ryzenadj.exe` to test the support of your device and to benchmark the effects of each setting.\nIf your values don't stay persistent you may want to consider installing our example script for automation.\n\n1. Prepare your favorite RyzenAdj arguments\n1. Copy the content of your RyzenAdj folder to the final destination\n1. Put your configuration into `readjustService.ps1` and test it as administrator until everything works as expected\n1. Install `readjustService.ps1` as Task for Windows Task Scheduler by running `installServiceTask.bat`\n\nDeinstallation of the Task can be done via `uninstallServiceTask.bat`\n\nOver Windows Task Scheduler you can check if it is running. It is called `RyzenAdj` below `AMD` folder.\nOr just run\n\n    SCHTASKS /query /TN \"AMD\\RyzenAdj\"\n\n## Build\n\n### Build Requirements\n\nBuilding this tool requires C \u0026 C++ compilers as well as **cmake**. It\nrequires privileged access to NB PCI config space, in order to compile it\none must have pcilib library \u0026 headers available.\n\n### Linux\n\nPlease make sure that you have libpci dependency before compiling. On\nDebian-based distros this is covered by installing **pcilib-dev** package:\n\n    sudo apt install build-essential cmake libpci-dev\n\nOn Fedora:\n\n    sudo dnf install cmake gcc-c++ pciutils-devel\n\nOn Arch:\n\n    sudo pacman -S base-devel pciutils cmake\n\n\nOn OpenSUSE Tumbleweed:\n\n    sudo zypper in cmake gcc14-c++ pciutils-devel\n\nYou may need to add the `iomem=relaxed` param to your kernel params on Tumbleweed, or [you may run into errors at runtime](https://github.com/FlyGoat/RyzenAdj/issues/241). \n\nIf your Distribution is not supported, try finding the packages or use [Distrobox](https://github.com/89luca89/distrobox) or [Toolbox](https://docs.fedoraproject.org/en-US/fedora-silverblue/toolbox/) instead.\n\nThe simplest way to build it:\n\n    git clone https://github.com/FlyGoat/RyzenAdj.git\n    cd RyzenAdj\n    rm -r win32\n    mkdir build \u0026\u0026 cd build\n    cmake -DCMAKE_BUILD_TYPE=Release ..\n    make\n    if [ -d ~/.local/bin ]; then ln -s ryzenadj ~/.local/bin/ryzenadj \u0026\u0026 echo \"symlinked to ~/.local/bin/ryzenadj\"; fi\n    if [ -d ~/.bin ]; then ln -s ryzenadj ~/.bin/ryzenadj \u0026\u0026 echo \"symlinked to ~/.bin/ryzenadj\"; fi\n\n### Windows\n\nIt can be built by Visual Studio + MSVC automaticaly, or Clang + Nmake in command line.\nHowever, as for now, MingW-gcc can't be used to compile for some reason.\n\nRequired dll is included in ./win32 of source tree. Please put the dll\nlibrary and sys driver in the same folder with ryzenadj.exe.\n\nWe don't recommend you to build by yourself on Windows since the environment configuarion\nis very complicated. If you would like to use ryzenadj functions in your program, see libryzenadj.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FFlyGoat%2FRyzenAdj","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FFlyGoat%2FRyzenAdj","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FFlyGoat%2FRyzenAdj/lists"}