sibradzic / amdgpu-clocks

Simple script to control power states of amdgpu driven GPUs
GNU General Public License v2.0
394 stars 44 forks source link

Do this work for underclocking APU's too? (Ryzen 5 3000 Series / AMD Picasso) #21

Closed DwarfFighterCleric closed 3 years ago

DwarfFighterCleric commented 3 years ago
Graphics:  Device-1: AMD Picasso driver: amdgpu v: kernel 
       Display: x11 server: X.Org 1.20.9 driver: amdgpu,ati unloaded: fbdev,modesetting,vesa 
       resolution: 1366x768~60Hz 
       OpenGL: renderer: AMD RAVEN (DRM 3.38.0 5.8.0-3-amd64 LLVM 10.0.0) v: 4.6 Mesa 20.1.8  

I have a Ryzen 3500U (laptop APU)
Do you know if changing these values under /sys/class/drm/card0/device/ also work for controlling APU devices? Or is it mostly for dedicated GPU's separate from the CPU? Any known reports of people using these methods on APU's without side-effects?
I'm looking into ways of limiting the clocks of my APU, maybe setting to "low" preset will do.

I see this on /sys/class/drm/card0/device/pp_dpm_mclk:

0: 400Mhz 
1: 933Mhz *
2: 1067Mhz 
3: 1200Mhz  

Does that asterisk on 1 means that 933 Mhz is currently selected? (I currently don't have any 3D apps open, just desktop and browser windows)
Can I manually set 0: 400 MHz to be used at all times? (regardless of load) How can I do that?
Changes take effect immediately or do I need to logout/login?
Being that this is an APU, any known side-effects with CPU clocks?

I'm doing this primarily to keep temps low and I will look further into how to limit fan speeds as well (if even possible, in my other laptop it wasn't possible) I want to avoid the fan spinning at max speed as much as possible, because that drastically reduces its lifespan. I had fans dying on me before, it's not easy to find replacements or to even replace them phisically. I would have to find into ways of limitting the "Max" fan spinning speed. If you happen to know, that would be great. On Windows, I would be able to achieve this manually changing DSDT table values.

sibradzic commented 3 years ago

first paragraph in readme:

It should work on Polaris, Vega (unfortunately Vega found on AMD APUs does not expose this API) and Navi cards, and it can be used to easily manage multiple AMD graphics cards.

You may want to look into https://github.com/FlyGoat/RyzenAdj