您现在的位置是:首页 >技术交流 >Ubuntu通过 RyzenAdj 控制AMD CPU的功耗、频率、温度阈值等(R9000k 2021 5900hx 3080)网站首页技术交流

Ubuntu通过 RyzenAdj 控制AMD CPU的功耗、频率、温度阈值等(R9000k 2021 5900hx 3080)

geek12138_ 2024-06-17 10:43:02
简介Ubuntu通过 RyzenAdj 控制AMD CPU的功耗、频率、温度阈值等(R9000k 2021 5900hx 3080)

Ubuntu通过 RyzenAdj 控制AMD CPU的功耗、频率、温度阈值等(R9000k 2021 5900hx 3080)

概要

提示:在 R9000k 2021 5900hx 3080 上成功测试
Ubuntu通过 RyzenAdj 调整AMD CPU(Ryzen移动处理器)的电源管理设置。
github地址如下:https://github.com/FlyGoat/RyzenAdj
既可以被用于Linux,也有Windows的版本,具体详见github。

安装(编译)

提示:以下操作均在终端中

构建要求

构建此工具需要C和C++编译器以及cmake。它需要对NB PCI配置空间的特权访问,为了编译它,必须有可用的pcilib库和headers。

sudo apt update
sudo apt install cmake

在构建之前,请确保您有libpci依赖项。在基于Debian的发行版上,安装pcilib-dev软件包涵盖了这一点:

sudo apt update
sudo apt install libpci-dev

开始构建

mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make

示例(Demo)

如果我要将所有功率限制设置为45W,Tctl设置为90°C,那么命令行应该是:

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

夏季28度的情况下,实测 R9000k 2021 5900hx 3080 在此设置下跑深度学习温度压不住,会上升到100度。将所有功率限制设置为35W,Tctl设置为90°C时,温度能稳定在91度,最高偶尔会到92度。

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

用法

提示:需要root权限

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

 Ryzen Power Management adjust tool.

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

Options
    -i, --info                            Show information and most important power metrics after adjustment
    --dump-table                          Show whole power metric table before and after adjustment

Settings
    -a, --stapm-limit=<u32>               Sustained Power Limit         - STAPM LIMIT (mW)
    -b, --fast-limit=<u32>                Actual Power Limit            - PPT LIMIT FAST (mW)
    -c, --slow-limit=<u32>                Average Power Limit           - PPT LIMIT SLOW (mW)
    -d, --slow-time=<u32>                 Slow PPT Constant Time (s)
    -e, --stapm-time=<u32>                STAPM constant time (s)
    -f, --tctl-temp=<u32>                 Tctl Temperature Limit (degree C)
    -g, --vrm-current=<u32>               VRM Current Limit             - TDC LIMIT VDD (mA)
    -j, --vrmsoc-current=<u32>            VRM SoC Current Limit         - TDC LIMIT SoC (mA)
    -k, --vrmmax-current=<u32>            VRM Maximum Current Limit     - EDC LIMIT VDD (mA)
    -l, --vrmsocmax-current=<u32>         VRM SoC Maximum Current Limit - EDC LIMIT SoC (mA)
    -m, --psi0-current=<u32>              PSI0 VDD Current Limit (mA)
    -n, --psi0soc-current=<u32>           PSI0 SoC Current Limit (mA)
    -o, --max-socclk-frequency=<u32>      Maximum SoC Clock Frequency (MHz)
    -p, --min-socclk-frequency=<u32>      Minimum SoC Clock Frequency (MHz)
    -q, --max-fclk-frequency=<u32>        Maximum Transmission (CPU-GPU) Frequency (MHz)
    -r, --min-fclk-frequency=<u32>        Minimum Transmission (CPU-GPU) Frequency (MHz)
    -s, --max-vcn=<u32>                   Maximum Video Core Next (VCE - Video Coding Engine) (MHz)
    -t, --min-vcn=<u32>                   Minimum Video Core Next (VCE - Video Coding Engine) (MHz)
    -u, --max-lclk=<u32>                  Maximum Data Launch Clock (MHz)
    -v, --min-lclk=<u32>                  Minimum Data Launch Clock (MHz)
    -w, --max-gfxclk=<u32>                Maximum GFX Clock (MHz)
    -x, --min-gfxclk=<u32>                Minimum GFX Clock (MHz)
    -y, --prochot-deassertion-ramp=<u32>  Ramp Time After Prochot is Deasserted: limit power based on value, higher values does apply tighter limits after prochot is over
    --apu-skin-temp=<u32>                 APU Skin Temperature Limit    - STT LIMIT APU (degree C)
    --dgpu-skin-temp=<u32>                dGPU Skin Temperature Limit   - STT LIMIT dGPU (degree C)
    --apu-slow-limit=<u32>                APU PPT Slow Power limit for A+A dGPU platform - PPT LIMIT APU (mW)
    --skin-temp-limit=<u32>               Skin Temperature Power Limit (mW)
    --power-saving                        Hidden options to improve power efficiency (is set when AC unplugged): behavior depends on CPU generation, Device and Manufacture
    --max-performance                     Hidden options to improve performance (is set when AC plugged in): behavior depends on CPU generation, Device and Manufacture

图形化界面 Ryzen Controller(可选)

提示:在 R9000k 2021 5900hx 3080 上成功安装,但是未能成功运行
Ryzen Controller
有Windows版和Linux版
gitlab地址如下:https://gitlab.com/ryzen-controller-team/ryzen-controller/
安装成功了,但是运行时就提示出错,图形化界面无法打开。

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。