How to overclock Vega on Linux...?

Yea bios overclocking may be making a come back…Even RTX cards seem to need certain bios’s for power limits.

BIOS OC is the best way IMO … I did every card last year in my mining rig (7950/70/280x’s) in windows (one at a time, benched for 24h to test stability) ,then made bios… The only way to get 7 cards working on single motherboard with those chips was a custom arch linux with the catalyst drivers installed from AUR… So to OC cards, I had to bios mod each one… soo much time for like no gain, but i learn;t a hell of a lot … I was very disappointed after getting the vega64 last week to find out bios mod was blocked on these cards.

If any one wants any cheap 1GHZ OC’d 7950-280x and massive memory oc’s that are stable I have a fair few here gathering dust LOL.

Agreed, I also was shocked to learn bios modding was no longer a thing when I switched to Vega64 a couple months back. VB7 made it so easy to mod clocks and even power caps directly in the bios for pre-Vega era cards. I didn’t mod GPU bios for mining as CGminer would allow to set GPU core voltage in script or config file, however for gaming on linux sure was nice being able to run same gpu settings as windows. Not very happy with AMD over that one and spewed hate their direction several times :face_with_symbols_over_mouth:

but you don’t need to mod the bios to change the power target.
I can pull 225 watts on my vega 56 just by setting power limit +50 but you can get them to pull more w/o bios mod

@urmamasllama sure, in windows. Not necessary in linux yet.

Actually VBios Modding is still a thing, but it’s not easy.

In theory wattmangtk should be able to. I personally couldn’t run it to test unfortunately because it didn’t like that I have two amd gpus.

Hey, I am the creator of WattmanGTK. If you have problems with multiple GPU’s let me know. I am working hard on stuff, so let me know if you have any suggestions :wink:

6 Likes

Hay :slight_smile: I gave it a shot and the suggested grub line made my card pretty glitchy. Lots of flickering and flashing.
Asus strix rx480 8G OC card.
Suggested grub parameter
amdgpu.ppfeaturemask=0xfffd7fff

Only other setting I have is amdgpu.dc=0 because kernel 4.18 had no display .

Do you use dual monitors by any chance? If so, do you still have this using a single monitor?

Sure thing actually if you need any help with testing I’ll be happy to contribute.

Yes dual monitors… One HDMI one Displayport.

With one moniter the display is ok and the Wattman apt runs but the overclocks are not applied. When I drop out of a benchmark the peaks are still the default numbers.

so Kernel 4.20 is released, now I just need to figure out how the command line to increase Vega’s power target, anyone have any Idea’s?

2 Likes

You can look at the Arch Wiki:

https://wiki.archlinux.org/index.php/AMDGPU

Specifically:

To set the allowed maximum power consumption of the GPU to e.g. 50 Watts, run

echo 50000000 > /sys/class/drm/card0/device/hwmon/hwmon0/power1_cap

1 Like

thanks for the reply, I get “bash: /sys/class/drm/card0/device/hwmon/hwmon0/power1_cap: No such file or directory” because indeed there is no hwmon folder in device. I’ll research more
I would expect we just echo a value to one of the pp_od_?_? files under /sys/class/drm/card0/device/
Already had lm-sensors installed so I ran “sudo sensors-detect” and there is now a hwmon folder under device. from root I ran “echo 315000000 > /sys/class/drm/card0/device/hwmon/hwmon2/power1_cap” and indeed my Vega 64 is pulling more than 210 watts… Finally.
I choose 315000000 (315 watts) because the max value in the /sys/class/drm/card0/device/hwmon/hwmon2/power1_cap_max shows a value of 315000000.
315watts is better but still not enough. In windows card can use up to 240watts and with power target of +50% it’s allowed to pull in 360watts, oh well beggers can’t be choosers. thank you for all the help.

3 Likes

Glad you got it working and posted your solution!

I’m writing this to share how I (linux noob) increased my Sapphire Vega 64 Nitro+ power target to 50% above the cards default (240watt) on Ubuntu 18.10 using Kernel 4.20 (I’ve read that 18.04 is not possible but I’m not sure)
I’m using AMDGPU with mesa version 18.3 (I’ve read pre 18.3 will not work but I’m not sure)
if your GPU has the dual bios switch you will get 50% more of what ever that bios is programmed to, I got 315 watts on the one bios and 360 watts on the other bios.

  • in /etc/default/grub modify the line GRUB_CMDLINE_LINUX_DEFAULT=“quiet splash” so it shows
    GRUB_CMDLINE_LINUX_DEFAULT=“quiet splash amdgpu.ppfeaturemask=0xfffd7fff”
    If you have Radeon drivers installed you’ll need to specify to use amdgpu and you line will be
    GRUB_CMDLINE_LINUX_DEFAULT=“quiet splash radeon.si_support=0 amdgpu.si_support=1 amdgpu.ppfeaturemask=0xfffd7fff”
    -reboot
  • install lm-sensors(prerequisites are listed in the readme file) and run “sudo sensors-detect” as root
    -reboot
    when you navigate to /sys/class/drm/card0/device you will see a new folder “hwmon”
    in “/sys/class/drm/card0/device/hwmon/hwmon2/power1_cap_max” lists the maximum wattage according to your GPU/bios
    in “/sys/class/drm/card0/device/hwmon/hwmon2/power1_cap” shows you the wattage value set in your power play tables
    -in terminal “sudo su” then I run “echo 360000000 > /sys/class/drm/card0/device/hwmon/hwmon2/power1_cap” (without the quotation marks) which sets my maximum gpu power consumption to 360 watts.
    check in “/sys/class/drm/card0/device/hwmon/hwmon2/power1_cap” and see if it applied your settings.
  • using “watch cat /sys/kernel/debug/dri/0/amdgpu_pm_info” from root terminal will show gpu info.

I’m still having issues getting the GPU core and HBM memory overclock to work but last night I was actually successful and got a 20.7% FPS increase in the Strange Brigade benchmark.

for GPU HBM memory overclock I use echo “m 3 1105 1100” > /sys/class/drm/card0/device/pp_od_clk_voltage

I found that when I specify an overclock value only for state 7 the gpu will run in state 6, and when I specify a value for gpu state 6 the gpu will just operate in state 5 so now I just write my overclock to all three states and it works.
for GPU core pstate 5 overclock I use echo “s 5 1765 1200” > /sys/class/drm/card0/device/pp_od_clk_voltage
for GPU core pstate 6 overclock I use echo “s 6 1765 1200” > /sys/class/drm/card0/device/pp_od_clk_voltage
for GPU core pstate 7 overclock I use echo “s 7 1765 1200” > /sys/class/drm/card0/device/pp_od_clk_voltage

  • to apply overclock settings
    echo “c” > /sys/class/drm/card0/device/pp_od_clk_voltage
  • if overclock values are not applying try
    echo “manual” > /sys/class/drm/card0/device/power_dpm_force_performance_level

currently I’m using the amd.ppfeaturemask=0xffffff so my grub default line is
GRUB_CMDLINE_LINUX_DEFAULT=“quiet splash radeon.si_support=0 amdgpu.si_support=1 amdgpu.ppfeaturemask=0xffffff”

hope this helps someone.
I found much info from


https://wiki.archlinux.org/index.php/AMDGPU

1 Like

Well with the 4.20 kernel on Arch I can bring up the power target from 145W to 217W which is more than enough for the overclock I’m doing.

I definitely didn’t win the silicon lottery as I can only get 1440mhz core and 2250 memory with 1.15V. If I add more voltage the card heats up above 75 in long runs and gets unstable as a result. I can push the fans up to 3700rpm from 3000rpm for a little bit more overclock room but not worth the noise.

Side note… who can even take that kernel release seriously… I mean might as well name it the green kernel…

Sorry I have nothing constructive to add I’ll shush :joy:

I guess I can give my two cents.

On my Vega 64 raising the power limit, setting the fan speed and changing memory clock works. What doesn’t are core clock and voltage pstates. It disregards everything I write and is thus making overclocking/undervolting useless.

Under windows I had core ~1500mhz actual @ 990mV with memory being 1080mhz @980mV. That made the power draw fell down to ~180W. Now it’s going up to 280W and doing only 1600mhz.

Fedora 29 4.20.3-200.fc29.x86_64.
I guess flashing the bios is an option, but I never did that with such expensive hardware.

With a Vega 64, flashing the BIOS may not be a viable option. You can flash a Vega 56 BIOS with a cryptographically signed Vega 64 BIOS to get higher clocks, watts and voltage. But AFAIK no one has successfully modded a Vega 64 BIOS and booted with it. If someone has, please correct me.

However, all Vegas have dual BIOSes, which greatly reduces the risk of flashing the BIOS. If your flashed BIOS doesn’t work, just flip the switch and revert to the factory BIOS.

1 Like