kevinlekiller / amdctl

Set P-State voltages and clock speeds on recent AMD CPUs on Linux.
GNU General Public License v3.0
241 stars 22 forks source link

Feature Request: Expose and control turbo states on 1st gen Ryzen CPUs? #50

Open ermo opened 1 year ago

ermo commented 1 year ago

Hi,

I'm tweaking an older ASRock AB350M based system with with a Ryzen R7 1700 CPU.

The output of amdctl shows the following:

$ sudo modprobe msr
$ sudo bin/amdctl -m -g -c0
Detected CPU model 1h, from family 17h with 16 CPU cores (REFCLK = 100MHz ; Voltage ID Encodings: SVI (serial)).

Core 0 | P-State Limits (non-turbo): Highest: 0 ; Lowest 2 | Current P-State: 0
 Pstate Status CpuFid CpuDid CpuVid  CpuMult     CpuFreq CpuVolt IddVal IddDiv CpuCurr CpuPower
      0      1    120      8     58   30.00x  3000.00MHz  1187mV     30     10  40.00A   47.48W
      1      1    135     10     80   27.00x  2700.00MHz  1050mV     27     10  37.00A   38.85W
      2      1    124     16    108   15.50x  1550.00MHz   875mV     15     10  25.00A   21.88W

However, the all-core frequency when I do an Prime95 mprime torture test on all 8c/16t is 3200 MHz and the single-core frequency is 3750MHz when I do the same mprime torture run on a single thread w/no hyperthreading.

Is it possible to access (and tweak) these "hidden" states somehow? And if so, how?

The goal here is to be able to up the all-core "turbo boost" frequency to 3600 MHz (as I know from experiments that the CPU can do it no problem at the listed stock 1.1875V voltage from the above table), but without losing the ability to boost a single core to 3750MHz.

Bonus points for being able to tweak the single core boost to a slightly higher value ofc (let's say 3800 MHz for the sake of argument).

Any thoughts on how one might achieve this in the context of amdctl?