You are not logged in.

#1 2019-04-07 09:45:06

Bednar
Member
Registered: 2015-09-19
Posts: 72

vega 64 voltage values not respected on Linux

Hi all,

I have a Gigabyte Radeon RX Vega 64 GAMING OC 8GB and I have been playing with undervolting/overclocking the card for a better performance/power draw ratio. I have used this thread as a guide: https://forums.overclockers.co.uk/threa … .18793012/

I have set the voltages/frequency as follows: P6/P7 core - 1500/1525 P6/P7 voltage @ 950mV

HBM freq @ 1025 and voltage @ 950mV

Now of course prior to doing that I added the amdgpu.ppffeaturemask parameter to the boot line with value 0xfffd7fff.

WattmanGTK shows the values I have set properly but looking at sudo watch -n 0.5 cat /sys/kernel/debug/dri/0/amdgpu_pm_info shows that the voltage is at 1200mV (VDDGFX). The power draw is also not reduced as one could expect from undervolting the clocks but shoots up instead to 320W (50% power limit was also enabled).

Here is the script I use to modify the clocks: https://gist.github.com/Bednar87/eeeee4 … e2900d3405
Any ideas what's going on?

Where do I best open an issue against it? Kernel mailing list?


Thanks

Offline

#2 2019-04-07 10:56:20

Ropid
Member
Registered: 2015-03-09
Posts: 1,069

Re: vega 64 voltage values not respected on Linux

Can you show how the pp_od_clk_voltage contents look like for you?

Last edited by Ropid (2019-04-07 11:00:09)

Offline

#3 2019-04-07 11:11:16

Bednar
Member
Registered: 2015-09-19
Posts: 72

Re: vega 64 voltage values not respected on Linux

Ropid wrote:

Can you show how the pp_od_clk_voltage contents look like for you?

Hi!

Sure.

cat /sys/class/drm/card0/device/pp_od_clk_voltage
OD_SCLK:
0:        852Mhz        800mV
1:        991Mhz        825mV
2:       1084Mhz        850mV
3:       1138Mhz        875mV
4:       1250Mhz        900mV
5:       1370Mhz        925mV
6:       1475Mhz        950mV
7:       1575Mhz        950mV
OD_MCLK:
0:        167Mhz        800mV
1:        500Mhz        825mV
2:        800Mhz        865mV
3:       1050Mhz        950mV
OD_RANGE:
SCLK:     852MHz       2400MHz
MCLK:     167MHz       1500MHz
VDDC:     800mV        1200mV

Offline

#4 2019-04-07 11:41:14

Ropid
Member
Registered: 2015-03-09
Posts: 1,069

Re: vega 64 voltage values not respected on Linux

I could find people here complaining about the same thing as you:

https://github.com/RadeonOpenCompute/ROCm/issues/463

There's several people saying they see the values change in pp_od_clk_voltage but this isn't actually doing anything. Someone measured with wattmeter device at the power outlet and there's definitely no change in the hardware.

Then someone writes that what does work is a scary method that writes binary data into the "pp_table" file. If you want to try that, check out this post here about how to create a file with your own clock/voltage values:

https://github.com/RadeonOpenCompute/RO … -418604330

This whole thing with the spreadsheet software seems crazy. tongue

What you asked about where to go to complain, I think the bug tracker you should go to is this one here:

https://bugs.freedesktop.org/buglist.cg … t=advanced

This seems to be the bug tracker for the amdgpu kernel module which should be the part that is responsible for pp_od_clk_voltage not working right.

Last edited by Ropid (2019-04-07 11:41:46)

Offline

#5 2019-04-07 12:05:45

Bednar
Member
Registered: 2015-09-19
Posts: 72

Re: vega 64 voltage values not respected on Linux

thanks for taking the time to look into this. I have also tried the LTS kernel (as well as mainline 5.1 -RC3) but the result is the same. I have for now restored the settings to their default values.

I have also opened an issue on bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110347

I am able to work around the voltage issue by setting P6 frequency = P7 Frequency. In this case the voltage sits at the pre-defined value of 950mV, but I run into another problem. Memory Pstate is stuck at 0 (167 MHZ) so the overall performance goes down significantly. It seems there's an issue when the card goes into P7 with respect to voltages.

See also https://bugs.freedesktop.org/show_bug.cgi?id=109887

Last edited by Bednar (2019-04-07 15:02:47)

Offline

#6 2019-04-07 19:53:17

Ropid
Member
Registered: 2015-03-09
Posts: 1,069

Re: vega 64 voltage values not respected on Linux

About the memory clock staying stuck at the p0 state: did you write the full set of values for all states into the pp_od_clk_voltage file or did you just write core p6 and p7?

I vaguely remember problems here with my RX480 when the ppfeaturemask option is used. I think the card refused to switch between states until my overclocking script ran. That script sets everything in pp_od_clk_voltage, even the values I don't intend to change from default.

Offline

#7 2019-04-07 20:22:11

Bednar
Member
Registered: 2015-09-19
Posts: 72

Re: vega 64 voltage values not respected on Linux

Hi,

I write the full set of values, yes. At the moment, the values are as follows:

echo "s 0 852 800" > "$SYSPATH/pp_od_clk_voltage"
echo "s 1 979 825" > "$SYSPATH/pp_od_clk_voltage"
echo "s 2 1106 850" > "$SYSPATH/pp_od_clk_voltage"
echo "s 3 1233 875" > "$SYSPATH/pp_od_clk_voltage"
echo "s 4 1360 900" > "$SYSPATH/pp_od_clk_voltage"
echo "s 5 1485 925" > "$SYSPATH/pp_od_clk_voltage"
echo "s 6 1615 1000" > "$SYSPATH/pp_od_clk_voltage"
echo "s 7 1615 1000" > "$SYSPATH/pp_od_clk_voltage"
# Set memory frequencies/voltages:
echo "m 0 167 800" > "$SYSPATH/pp_od_clk_voltage"
echo "m 1 500 825" > "$SYSPATH/pp_od_clk_voltage"
echo "m 2 800 865" > "$SYSPATH/pp_od_clk_voltage"
echo "m 3 1050 1000" > "$SYSPATH/pp_od_clk_voltage"

Thanks

Last edited by Bednar (2019-04-07 20:22:27)

Offline

#8 2019-08-17 06:52:18

vanities
Member
Registered: 2019-08-17
Posts: 1

Re: vega 64 voltage values not respected on Linux

Is this still an issue? I can't my Vega to work with this either..

Offline

Board footer

Powered by FluxBB