ilya-zlobintsev / LACT

Linux GPU Configuration Tool
MIT License
1.46k stars 35 forks source link

Maximum VRAM Clock is not set #367

Closed theromi closed 1 month ago

theromi commented 2 months ago

Checklist

Bug description

I set the "Maximum VRAM Clock" to 1350MHz in LACT (2700 works fine in Windows), but the clock won't exceed the standard 1250 MHz (even under 100% load). My settings:

Screenshot_20240905_102229

So I tried upping the "Minimum VRAM Clock" to 1350 as well, but it won't apply:

Screenshot_20240905_102609

dmseg after trying to up the minimum:

[ 3656.286552] amdgpu 0000:0b:00.0: amdgpu: Invalid setting: UclkFmin(1350) is bigger than UclkFmax(1250)

So I suppose the maximum vram clock is not set correctly. There is no error popup or message in dmseg after trying to set the maximum clock.

LACT-sysfs-snapshot-20240905-095304.tar.gz

System info

- LACT version: 0.5.5-release
- GPU model: AMD Radeon RX 7900 XTX
- Kernel version: 6.10.8
- Distribution: CachyOS (Arch Linux)
ilya-zlobintsev commented 2 months ago

[ 3656.286552] amdgpu 0000:0b:00.0: amdgpu: Invalid setting: UclkFmin(1350) is bigger than UclkFmax(1250)

So I suppose the maximum vram clock is not set correctly. There is no error popup or message in dmseg after trying to set the maximum clock.

The reason for this is because the following happens when applying settings:

It appears that with RDNA3 the max > min check is performed on the write stage, and not on the commit stage like in previous generations, so setting a minimum clock that's above the default maximum doesn't work.

I'll add a workaround so that the write order is swapped in this situation.

ilya-zlobintsev commented 2 months ago

Should be fixed with https://github.com/ilya-zlobintsev/LACT/commit/92fad92e37b6b6e53d590f7e0591271053855eee, please try the git build

theromi commented 2 months ago

Indeed, the current git build doesn't throw the error message anymore when setting the minimum VRAM clock. Thanks for the fast fix!

It still doesn't seem to go to 2700MHz, even when setting 2700 as the minimum:

Screenshot_20240909_154138

Weirdly, it goes to 1544MHz (?). Setting the minimum to 2500 and the maximum to 2700 constantly keeps it at 2498, as before. Any ideas?

ilya-zlobintsev commented 2 months ago

Have you tried using it under load? Even with the "highest locks" performance level the GPU might decide to partially clock down.

You might also be getting constrained by other factors, such as thermals or power (in the screenshot you have thermal throttling reported, but that might not be accurate as RDNA3 can sometimes falsely report throttling).

theromi commented 2 months ago

The screenshot above was taken under 100% load (running CS2 with uncapped fps).

in the screenshot you have thermal throttling reported, but that might not be accurate as RDNA3 can sometimes falsely report throttling

Yeah, it's always reporting that, even idling at 50°C.

I was playing around with the settings and it gets weirder. Setting the VRAM clock (both min and max) to 2698 works under load and keeps it at a constant 2696 (under load):

Screenshot_20240909_161908

But, while idling, it drops to 1544 again and my screen flickers (which does not happen under load). Even more weird: My GPU core clock is now about 200MHz higher (see this screenshot and screenshot above), though I didn't touch that setting at all. This is reproducible and CS2 has about 10% more fps (most likely from GPU clock increase). I don't know what is happening, but I guess it's more amdgpus fault than LACT?

ilya-zlobintsev commented 2 months ago

After the settings are applied, all further behaviour is up to the GPU firmware. There isn't much you can do to control it further unfortunately.

ilya-zlobintsev commented 1 month ago

I'll close this as the original problem with the setting not applying was fixed.