Hi Lauri,
There’s a more efficient method using the Power Profiles (and optionally, the
ROCM-SMI tool, found at https://github.com/RadeonOpenCompute/ROC-smi), or the
pp_sclk mask, depending on what exactly you want. I’ll list out the methods
here and the rocm-smi and non-SMI commands to do it. I’ll assume that this GPU
is card0 (it may be card1, card2, etc, depending on what GPUs are installed on
your system; “rocm-smi -i” or “cat /sys/class/drm/card?/device/device will give
you the GPU IDs of all of the cards, then you can figure out which one you want
to use)
1. Mask the SCLKs . pp_dpm_sclk allows you to set a mask of what levels to
use.
* First, read the values (“rocm-smi --showclkfrq” , or “cat
/sys/class/drm/card0/device/pp_dpm_sclk”) and see the supported DPM levels for
your card.
* Mask off the levels that you don’t want. E.g. If you only want to use
levels 0-6 (and thus skip level 7), you can do either ‘rocm-smi --setsclk 0 1 2
3 4 5 6’ or ‘echo manual >
/sys/class/drm/card0/device/power_dpm_force_performance_level && echo “0 1 2 3
4 5 6” > /sys/class/drm/card0/device/pp_dpm_sclk’ . This will set DPM to only
use levels 0-6 and skip level 7. You can do this for any combination of levels
or a single level (“0 2 5”, “1 2 7”, “5”, etc). That will tell it to only use
the specified DPM levels and will persist until reboot, or until the
power_dpm_force_performance is set back to ‘auto’ .
2. Set the specific DPM level values manually:
* First, you’ll need to enable the Power Profile Overdrive
functionality. The easiest way is to add “amdgpu.ppfeaturemask=0xffffffff” to
your linux command line parameters (by editing /boot/grub/grub.cfg manually,
editing /etc/default/grub and doing an update-grub, or manually entering the
kernel parameter in the GRUB menu before booting).
* Once that’s enabled, you should see the following file:
/sys/class/drm/card0/device/pp_od_clk_voltage.
* Check the current DPM level information with “rocm-smi -S” or “cat
/sys/class/drm/card0/device/pp_od_clk_voltage file” . Now that we have that,
you can see the supported SCLK and voltages for each level.
* You can use the rocm-smi tool to manually change the levels through
“rocm-smi --setslevel # MHZ VLT”, where:
i. # is
the level (level 7 is probably the one you want, but you can do it for all of
them)
ii. MHZ is
the speed in MHz
iii. VLT is the
voltage in mV.
* Honestly, you can probably just copy the highest level that you’re
comfortable with and set that for all of the levels that exceed the values that
you desire. So if you want to keep it to whatever level 6 is, just set level 7
to have the same values as level 6 (that way you don’t have to muck with
voltages and such). Or if 5 is the highest that you want, set level 6 and level
7 to match level 5
Hopefully that helps. It also means that you don’t have to constantly try to
build your own kernel with a change to cap the SCLK cherry-picked on tpo.
Please let me know if you have any questions at all!
Kent
From: amd-gfx <[email protected]> On Behalf Of Lauri
Ehrenpreis
Sent: Friday, March 22, 2019 6:18 AM
To: amd-gfx list <[email protected]>
Subject: Limit gpu max clock for ryzen 2400g
Hi!
Is there a way how to limit gpu max clock rate? Currently I can either leave
the clock to automatic mode or force it to specific level via
/sys/class/drm/card0/device/pp_dpm_sclk. But ideally I would like the clock to
be automatically regulated but specify a different upper limit for power saving
reasons.
--
Lauri
_______________________________________________
amd-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/amd-gfx