Overclock.net banner
21 - 40 of 721 Posts
Discussion starter · #21 · (Edited)
The active version of the script is up!
https://gitlab.com/fpsflow/power_limit_removal/-/raw/main/script.sh

I'll start this with a warning: this script modifies data on your GPU's voltage regulators. It is temporary, it goes away on power off of PC (not reboot, power off).
There might be a chance it totally bricks your GPU and voids your warranty (somehow), so if you are using it, you are doing it at your own risk!

Now that we got that out of the way, the script detects if RDNA3 or RDNA4 GPU. For RDNA3 it can increase PPT/TDC limits to whatever values you set.
For RDNA4 it can be useful to increase GFX TDC limit from 330A to as high as you want, but without hardware mod to remove power limit that won't be of much help.
VID offsets can be applied on both RDNA3 and RDNA4 on all rails (5 for RDNA3 and 4 for RDNA4). Useful for tweaking operating points on RDNA3 GPUs, less usefull for GFX on RDNA4 without hardware power limit removal. Can still be useful for VRAM/DDCI/SoC rails tweaking.
With VRAM Samsung chips you can raise the clocks higher (2880MHz in my case). Maybe even with Hynix ones.

I have set some sane limits on the values you can use for VID offsets. They are still pretty high (+400mV on GFX, and 145mV on VRAM), so maybe use VID only if you know what you are doing. Start with small +/- values, see what happens.

The script looks for certain VR models at certain addresses, if you do not have mp2857 at 0x22 and mp2856 at 0x24 and 0x26, the script exits. Some RDNA3 GPUs might not be compatible with the script.
For RDNA4 it checks you have mp2868 at 0x22 and 0x24.

If you download it and run it, it won't do anything:

Bash:
Detected Linux OS
i2c_dev module already loaded
i2c-tools is already installed.
Found i2c bus with SMU 0: i2c-3
Detected RDNA3 GPU
RDNA3 GPU validated successfully!

User-defined values:

CGO Multiplier: Not Set

GFX_VID: Not Set
Current GFX_VID: +0mV

SoC_VID: Not Set
Current SoC_VID: +0mV

USR_VID: Not Set
Current USR_VID: +0mV

VRAM_VID: Not Set
Current VRAM_VID: +0mV

DDCI_VID: Not Set
Current DDCI_VID: +0mV

No settings provided.
Run script with -m for menu
It detects everything, reads you stock VID offsets on all 5 rails (4 for RDNA4), prints them out and exits.
You can run the script with -m switch ( run "chmod +x script.sh" and then run it with "./script.sh -m", also make sure you have internet access to install missing i2c-tools or bc packages), that gets you to the menu where you can set stuff:

Code:
Please select an option:

1. Modify Limits
2. Modify VID Offsets
0. Exit

Enter your choice:
In the first menu you can modify your current gain offset values, it's what increases PPT/TDC limits.

Code:
Power/Current Limits Menu:

1. Increase your limits by x2.00
2. Set custom limit scalar
0. Back to Main Menu

Enter your choice:
Scaling for PPT/TDC limits is set at x2 for RDNA3 and x1.5 for RDNA4 (weaker VRMs, higher stock TDC). If you choose option 1 it will increase TGP by two times on RDNA3.
Or you can set a custom scaler if that is not enough (XTX). Either that, either run it 2-3 times with x2.00, it doubles the set limits each time.
Scalar values are between 1.00 and 4.00, use two decimal places.
This can be used to set your GFX TDC limit so it matches your total VRM capacity. For example, my GPU has 220A TDC limit, but has 9 phases on GFX, at 70A each. That means my max VRM capacity is of 630A.
If I want to move the stock TDC limit from 220A to 630A, I'd use 630/220=2.86 so x2.86 scalar. Once that is set, the GPU's TDC limit will kick in at 630A real current draw. Which can be useful as protection for VRM, you're repurposing the TDC limit.

Some RDNA4 cards have 8 phases at 50A, which means 400A max. Stock TDC limit is 330A for GFX, so a x1.20 is recommended in that case, to have TDC limit kick in at 400A. This will only happen if you do the hardware mod for power limit removal anyway.

The script increases only GFX TDC limit on RDNA4, rest don't matter.
On RDNA3 all rails contribute to TGP limit (263W in my 7800XT case). So the script is affecting all 5 rails. This way you can use the same multiplier in HWinfo to get back correct reading for each of the 5 rails, for power and current sensors, and also for TGP. TBP sensor data will be wrong, cannot scale it with same value.

Image


Apart from TBP you can fix the rest that are in this photo, for correct data reporting.

Image

I use a multiplier of 2 for my setup, since I am modifying all rails by x2 in the script. That is enough for me, I never hit 440A or 524W anyway (110C hotspot at ~440W TGP, with stock thermal paste).
For RDNA4 this can be done for GFX rail current/power sensors only.

For VID offset menu:
Code:
Please select an option:

1. GFX_VID: +0 mV -> +35 mV
2. SoC_VID: +0 mV -> -5 mV
3. USR_VID: +0 mV -> +5 mV
4. VRAM_VID: +0 mV -> +100 mV
5. DDCI_VID: +0 mV -> +10 mV

6. Apply
0. Back

Enter your choice:
Values on left side are current ones read from each rail, right side is what you set for modification. For +5mV input +5, for -10mV input -10.
After you added the values you want and choose 6, they will apply:
Code:
Applying changes:

GFX_VID: +35 mV -> 0x0007
SoC_VID: -5 mV -> 0x01FF
USR_VID: +5 mV -> 0x0001
VRAM_VID: +100 mV -> 0x0014
DDCI_VID: +10 mV -> 0x0002

Please select an option:

1. GFX_VID: +35 mV -> +35 mV
2. SoC_VID: -5 mV -> -5 mV
3. USR_VID: +5 mV -> +5 mV
4. VRAM_VID: +100 mV -> +100 mV
5. DDCI_VID: +10 mV -> +10 mV

6. Apply
0. Back

Enter your choice:
You can start over and change them all to 0. Just input +/-0 for 0mV (didn't have time to make an exception for 0).

Code:
Applying changes:

GFX_VID: +0 mV -> 0x0000
SoC_VID: +0 mV -> 0x0000
USR_VID: +0 mV -> 0x0000
VRAM_VID: +0 mV -> 0x0000
DDCI_VID: +0 mV -> 0x0000

Please select an option:

1. GFX_VID: +0 mV -> +0 mV
2. SoC_VID: +0 mV -> +0 mV
3. USR_VID: +0 mV -> +0 mV
4. VRAM_VID: +0 mV -> +0 mV
5. DDCI_VID: +0 mV -> +0 mV

6. Apply
0. Back

Enter your choice:
So this sums up the menu part of the script.
But this would get tiresome if you'd have to do it each time your PC crashes in testing hardcore OC settings. So I made a simpler option, you can just edit the script file, and add your values at the beginning of the script:

Bash:
#!/bin/bash
# Start script with -m switch for menu.

# User defined values for current gain offset/VID RDNA3/4
#Add multiplier value for increasing TDC/PPT limits, valid values 1 to 4
#Use fractional multipliers to two decimal places, eg 1.73 or 2.00
user_current_gain_offset_multiplier=

#Use value in mV with +/- in front, eg -20 or +35
#+0 or -0 are valid to set 0mV VID offset.

#GFX limits -70 to +400
user_vid_offset_gfx=

#VRAM limits -70 to +145
user_vid_offset_vram=

#SoC limits -70 to +100
user_vid_offset_soc=

#DDCI limits -70 to +100
user_vid_offset_ddci=

#Only for RDNA3:
#USR limits -70 to +100
user_vid_offset_usr=
Just add your multiplier for increasing TDC/PPT limits, and VID offset values in mV ( for example +10 for +10mV or -5 for -5mV, or +/- 0 to set 0mV each time you run it, some RDNA4 come with +5mV on GFX from factory)
The ones you don't want to change just leave empty.
USR rail does not exist on RDNA4, but it's also ignored by the script if it detects RDNA4.
This way you can simply run the script, without the -m switch, and it will apply the values you saved in the script file, and then exit without user input. It's faster than manually setting everything from the menu each time.

I tested it on CachyOS and Ubuntu live boot usb sticks. Works fine on both.
On Ubuntu you have to "sudo su" before, and then run it with ./script.sh.
CachyOS has everything needed, on Ubuntu script will automatically install i2c-tools. You can then reboot in Windows and the mods will carry over. They go away on full power off of PC, so have to be reapplied next time you power on your PC.
edit: Tested with Fedora live usb boot and worked fine. Same as Ubuntu, regular user doesn't have access to i2c bus so "sudo su" before running the script.
I had to mount the first partition of the USB stick so I can save the script on it, same when booting into live, to run it.
You can also directly get the script on Linux with
Bash:
wget https://gitlab.com/fpsflow/power_limit_removal/-/raw/main/script.sh
And a final warning: after you increase your PPT/TDC limits, your only protection will be the hotspot temperature limit (110C). So take care, after removing the limits check your temperature when running loads, it's not healthy for the GPU to work at >100C hotspot. It will shorten its life.

RDNA4 VRs share the same current gain offset/VID offset registries as RDNA3, but rail assignment is different (apart from GFX and SoC, which are on same VR addresses/loops as RDNA3). Thanks @hellm for helping with two's complement conversion and RDNA4 registry hints.

If you have errors/issues ask here on this thread. Or general questions about how to use it for OC.
Good luck!
 
This is awesome, man.
 
  • Rep+
Reactions: fpsflow
Discussion starter · #25 · (Edited)
For people who daily Linux, there's a mp2856 kernel driver, which offers hwmon data. You can monitor your VRs rails data on Linux.

Once you expose them on hwmon, you cannot use the script. The VRs are busy, and i2cget/i2cset commands will fail. You have to remove the hwmon interfaces before using the script or sending i2cget/i2cset commands.

The way to expose them on hwmon is using these commands:

Bash:
echo mp2856 0x22 > /sys/class/i2c-dev/i2c-3/device/new_device
Bash:
echo mp2856 0x24 > /sys/class/i2c-dev/i2c-3/device/new_device
Bash:
echo mp2856 0x26 > /sys/class/i2c-dev/i2c-3/device/new_device
Note that this is for i2c-3 bus, in my case. Adjust to your setup.
For RDNA4 only 0x22 and 0x24 are needed.
You should now see them if running the "sensors" command.

The way you remove them is:
Bash:
echo 0x22 > /sys/class/i2c-dev/i2c-3/device/delete_device
Bash:
echo 0x24 > /sys/class/i2c-dev/i2c-3/device/delete_device
Bash:
echo 0x26 > /sys/class/i2c-dev/i2c-3/device/delete_device
For RDNA4 the same driver works to some degree, but hasn't been properly confirmed.

The stock driver has some mistakes, and is not complete. Bellow is a patch for the driver that shows more than 8 phases for GFX, and seems to correctly show the per-phase current draw for GFX, but I have tweaked the values for my 7800XT. I am not sure if all GPUs share the same Kcs/Rcs values on RDNA3, or RDNA4.
The stock driver is locked on 8 phases max. The patch makes the driver read the actual phase configuration from your VRs, and show up to 12 phases if you have them.
This driver gives you current/voltage/temperature reading for all rails, on Linux. But it's far from perfect atm.

C++:
diff --git a/drivers/hwmon/pmbus/mp2856.c b/drivers/hwmon/pmbus/mp2856.c
index e83c70a..59e23e9 100644
--- a/drivers/hwmon/pmbus/mp2856.c
+++ b/drivers/hwmon/pmbus/mp2856.c
@@ -42,7 +42,7 @@
#define MP2856_MAX_PHASE_RAIL2        4

#define MP2857_MAX_PHASE_RAIL1        12
-#define MP2857_MAX_PHASE_RAIL2        4
+#define MP2857_MAX_PHASE_RAIL2        6

#define MP2856_PAGE_NUM            2

@@ -153,7 +153,8 @@ mp2856_read_phase(struct i2c_client *client, struct mp2856_data *data,
     /*
      * Output value is calculated as: (READ_CSx * 12.5mV - 1.23V) / (Kcs * Rcs)
      */
-    val = (ret * 125) - 12300;
+    /* val = (ret * 125) - 12300; */
+    val = (((ret * 125) - 12300) * 10000) / (data->curr_sense_gain[page] * 11);

     return val2linear11(val);
}
@@ -182,6 +183,14 @@ mp2856_read_phases(struct i2c_client *client, struct mp2856_data *data,
             ret = mp2856_read_phase(client, data, page, phase,
                         MP2856_MFR_READ_CS7_8_R1);
             break;
+                case 8 ... 9:
+                        ret = mp2856_read_phase(client, data, page, phase,
+                                                MP2856_MFR_READ_CS9_10_R1);
+                        break;
+                case 10 ... 11:
+                        ret = mp2856_read_phase(client, data, page, phase,
+                                                MP2856_MFR_READ_CS11_12_R1);
+                        break;
         default:
             return -ENODATA;
         }
@@ -193,8 +202,12 @@ mp2856_read_phases(struct i2c_client *client, struct mp2856_data *data,
             break;
         case 2 ... 3:
             ret = mp2856_read_phase(client, data, page, phase,
-                        MP2856_MFR_READ_CS1_2_R2);
+                        MP2856_MFR_READ_CS3_4_R2);
             break;
+                case 4 ... 5:
+                        ret = mp2856_read_phase(client, data, page, phase,
+                                                MP2856_MFR_READ_CS5_6_R2);
+                        break;
         default:
             return -ENODATA;
         }
@@ -264,7 +277,7 @@ mp2856_identify_multiphase_rail1(struct i2c_client *client,
     int ret, i;

     ret = mp2856_identify_multiphase(client, MP2856_MFR_VR_MULTI_CONFIG_R1,
-                     MP2856_MAX_PHASE_RAIL1, GENMASK(3, 0));
+                     data->max_phases[0], GENMASK(3, 0));
     if (ret < 0)
         return ret;

@@ -284,7 +297,7 @@ mp2856_identify_multiphase_rail2(struct i2c_client *client,
     int ret, i;

     ret = mp2856_identify_multiphase(client, MP2856_MFR_VR_MULTI_CONFIG_R2,
-                     MP2856_MAX_PHASE_RAIL2, GENMASK(2, 0));
+                     data->max_phases[1], GENMASK(2, 0));
     if (ret < 0)
         return ret;
If anyone tests it, please report results.

This is the info I get in my case:
Code:
❯ sensors mp2857-i2c-3-22 mp2856-i2c-3-24 mp2856-i2c-3-26
mp2857-i2c-3-22
Adapter: AMDGPU SMU 0
vin:          11.50 V  (crit min = -2748416.00 V, min = -494.00 V)
                       (max = -3833856.00 V, crit max = +16.00 V)
                       (rated min = +512.00 V, rated max =  +0.00 V)
vout1:       636.00 mV (crit min =  +0.02 V, min =  +0.00 V)
                       (max =  +0.00 V, crit max =  +0.00 V)
                       (rated min =  +0.08 V, rated max =  +0.09 V)
temp1:        +41.0°C  (low  = +255.0°C, high = +150.0°C)
                       (crit low = -1022.0°C, crit = +170.0°C)
pin:           0.00 W  (max =   2.05 W, rated max =   0.00 W)
pout1:         0.00 W  (max =   1.56 kW, crit =   2.00 W)
                       (rated max =   0.00 W)
iin:           0.00 A  (max = +99.00 A, crit max = -164096.00 A)
                       (rated max =  +0.00 A)
iout1:         0.00 A  (crit min = +143.00 A, max = +20.00 A)
                       (crit max =  +0.00 A, rated max =  +0.00 A)
iout1.0:     -910.00 mA
iout1.1:     -910.00 mA
iout1.2:     -910.00 mA
iout1.3:     -910.00 mA
iout1.4:       1.36 A
iout1.5:       1.36 A
iout1.6:       1.36 A
iout1.7:       1.36 A
iout1.8:       1.36 A

mp2856-i2c-3-24
Adapter: AMDGPU SMU 0
vin:          11.56 V  (crit min = -2748416.00 V, min = -474.00 V)
                       (max = -3833856.00 V, crit max = +16.00 V)
                       (rated min = -1024.00 V, rated max =  +0.00 V)
vout1:       687.00 mV (crit min =  +0.02 V, min =  +0.00 V)
                       (max =  +0.00 V, crit max =  +0.00 V)
                       (rated min =  +0.09 V, rated max =  +0.09 V)
vout2:       738.00 mV (crit min =  +0.03 V, min =  +0.13 V)
                       (max =  +0.17 V, crit max =  +0.52 V)
                       (rated min =  +0.10 V, rated max =  +0.10 V)
temp1:        +39.0°C  (low  = +255.0°C, high = +150.0°C)
                       (crit low = -1022.0°C, crit = +170.0°C)
temp2:        +40.0°C  (low  = +8355840.0°C, high =  +0.0°C)
                       (crit low = -1024.0°C, crit = +574464.0°C)
pin:           0.00 W  (max =   2.05 W, rated max =   0.00 W)
pout1:        16.00 W  (max =   2.08 kW, crit =   2.00 W)
                       (rated max =   0.00 W)
pout2:         0.00 W  (max =   2.08 kW, crit =   2.00 W)
                       (rated max =   0.00 W)
iin:           0.00 A  (max = +99.00 A, crit max = -164096.00 A)
                       (rated max =  +0.00 A)
iout1:       750.00 mA (crit min = +155.00 A, max = +24.00 A)
                       (crit max =  +0.00 A, rated max =  +0.00 A)
iout1.0:     -910.00 mA
iout1.1:       1.36 A
iout2:       625.00 mA (crit min = +260.00 A, max = +93.00 A)
                       (crit max = +87.00 A, rated max =  +0.00 A)
iout2.0:     -910.00 mA

mp2856-i2c-3-26
Adapter: AMDGPU SMU 0
vin:          11.56 V  (crit min = -2748416.00 V, min = -494.00 V)
                       (max = -3833856.00 V, crit max = +16.00 V)
                       (rated min = -512.00 V, rated max =  +0.00 V)
vout1:         1.23 V  (crit min =  +0.13 V, min =  +0.00 V)
                       (max =  +0.00 V, crit max =  +0.00 V)
                       (rated min =  +0.20 V, rated max =  +0.22 V)
vout2:       667.00 mV (crit min =  +0.02 V, min =  +0.13 V)
                       (max =  +0.17 V, crit max =  +0.52 V)
                       (rated min =  +0.08 V, rated max =  +0.09 V)
temp1:        +41.0°C  (low  = +255.0°C, high = +150.0°C)
                       (crit low = -1022.0°C, crit = +170.0°C)
temp2:        +40.0°C  (low  = +8355840.0°C, high =  +0.0°C)
                       (crit low = -1024.0°C, crit = +576512.0°C)
pin:         1000.00 mW (max =   2.05 W, rated max =   0.00 W)
pout1:        56.00 W  (max =   2.08 kW, crit =   2.00 W)
                       (rated max =   0.00 W)
pout2:         0.00 W  (max =   2.08 kW, crit =   2.00 W)
                       (rated max =   0.00 W)
iin:         125.00 mA (max = +500.00 A, crit max = +65280.00 A)
                       (rated max =  +0.00 A)
iout1:         2.62 A  (crit min = +76288.00 A, max = +236.00 A)
                       (crit max =  +0.00 A, rated max =  +0.00 A)
iout1.0:       1.36 A
iout1.1:       3.64 A
iout2:       250.00 mA (crit min = +260.00 A, max = +93.00 A)
                       (crit max = +87.00 A, rated max =  +0.00 A)
iout2.0:     -910.00 mA
Per-phase current reporting is not accurate at low power levels, but seems fine at higher power levels.

iout1/iout2 is total for each rail, and that should be accurate. iout1.0 etc is per phase. iout1 is loop 1 and iout2 is loop 2 of VR.
 
Dunno if anyone has tried this, but the script actually executes under WSL (Windows Subsystem for Linux) it

"Loaded i2c_dev module
Hit:1 http://archive.ubuntu.com/ubuntu jammy InRelease
Get:2 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [128 kB]
Get:3 http://archive.ubuntu.com/ubuntu jammy-backports InRelease [127 kB]
Get:4 http://archive.ubuntu.com/ubuntu jammy/universe amd64 Packages [14.1 MB]
Get:5 http://security.ubuntu.com/ubuntu jammy-security InRelease [129 kB]
Get:6 http://archive.ubuntu.com/ubuntu jammy/universe Translation-en [5652 kB]
Get:7 http://archive.ubuntu.com/ubuntu jammy/universe amd64 c-n-f Metadata [286 kB]
Get:8 http://archive.ubuntu.com/ubuntu jammy/multiverse amd64 Packages [217 kB]
Get:9 http://archive.ubuntu.com/ubuntu jammy/multiverse Translation-en [112 kB]
Get:10 http://archive.ubuntu.com/ubuntu jammy/multiverse amd64 c-n-f Metadata [8372 B]
Get:11 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages [2623 kB]
Get:12 http://archive.ubuntu.com/ubuntu jammy-updates/main Translation-en [423 kB]
Get:13 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 c-n-f Metadata [18.5 kB]
Get:14 http://archive.ubuntu.com/ubuntu jammy-updates/restricted amd64 Packages [3638 kB]
Get:15 http://archive.ubuntu.com/ubuntu jammy-updates/restricted Translation-en [648 kB]
Get:16 http://archive.ubuntu.com/ubuntu jammy-updates/restricted amd64 c-n-f Metadata [676 B]
Get:17 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 Packages [1208 kB]
Get:18 http://archive.ubuntu.com/ubuntu jammy-updates/universe Translation-en [298 kB]
Get:19 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 c-n-f Metadata [28.7 kB]
Get:20 http://archive.ubuntu.com/ubuntu jammy-updates/multiverse amd64 Packages [46.5 kB]
Get:21 http://archive.ubuntu.com/ubuntu jammy-updates/multiverse Translation-en [11.8 kB]
Get:22 http://archive.ubuntu.com/ubuntu jammy-updates/multiverse amd64 c-n-f Metadata [592 B]
Get:23 http://archive.ubuntu.com/ubuntu jammy-backports/main amd64 Packages [68.8 kB]
Get:24 http://archive.ubuntu.com/ubuntu jammy-backports/main Translation-en [11.4 kB]
Get:25 http://archive.ubuntu.com/ubuntu jammy-backports/main amd64 c-n-f Metadata [392 B]
Get:26 http://archive.ubuntu.com/ubuntu jammy-backports/restricted amd64 c-n-f Metadata [116 B]
Get:27 http://archive.ubuntu.com/ubuntu jammy-backports/universe amd64 Packages [30.0 kB]
Get:28 http://archive.ubuntu.com/ubuntu jammy-backports/universe Translation-en [16.5 kB]
Get:29 http://archive.ubuntu.com/ubuntu jammy-backports/universe amd64 c-n-f Metadata [672 B]
Get:30 http://archive.ubuntu.com/ubuntu jammy-backports/multiverse amd64 c-n-f Metadata [116 B]
Get:31 http://security.ubuntu.com/ubuntu jammy-security/main amd64 Packages [2375 kB]
Get:32 http://security.ubuntu.com/ubuntu jammy-security/main Translation-en [359 kB]
Get:33 http://security.ubuntu.com/ubuntu jammy-security/main amd64 c-n-f Metadata [13.6 kB]
Get:34 http://security.ubuntu.com/ubuntu jammy-security/restricted amd64 Packages [3513 kB]
Get:35 http://security.ubuntu.com/ubuntu jammy-security/restricted Translation-en [628 kB]
Get:36 http://security.ubuntu.com/ubuntu jammy-security/restricted amd64 c-n-f Metadata [624 B]
Get:37 http://security.ubuntu.com/ubuntu jammy-security/universe amd64 Packages [974 kB]
Get:38 http://security.ubuntu.com/ubuntu jammy-security/universe Translation-en [210 kB]
Get:39 http://security.ubuntu.com/ubuntu jammy-security/universe amd64 c-n-f Metadata [21.7 kB]
Get:40 http://security.ubuntu.com/ubuntu jammy-security/multiverse amd64 Packages [39.6 kB]
Get:41 http://security.ubuntu.com/ubuntu jammy-security/multiverse Translation-en [8716 B]
Get:42 http://security.ubuntu.com/ubuntu jammy-security/multiverse amd64 c-n-f Metadata [368 B]
Fetched 38.0 MB in 3s (11.3 MB/s)
Reading package lists... Done
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
libi2c0 libx86-1 read-edid
Suggested packages:
libi2c-dev python3-smbus
The following NEW packages will be installed:
i2c-tools libi2c0 libx86-1 read-edid
0 upgraded, 4 newly installed, 0 to remove and 199 not upgraded.
Need to get 184 kB of archives.
After this operation, 715 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu jammy/universe amd64 libi2c0 amd64 4.3-2build1 [6608 B]
Get:2 http://archive.ubuntu.com/ubuntu jammy/universe amd64 libx86-1 amd64 1.1+ds1-12 [77.3 kB]
Get:3 http://archive.ubuntu.com/ubuntu jammy/universe amd64 read-edid amd64 3.0.2-1.1 [19.0 kB]
Get:4 http://archive.ubuntu.com/ubuntu jammy/universe amd64 i2c-tools amd64 4.3-2build1 [80.8 kB]
Fetched 184 kB in 0s (1489 kB/s)
Selecting previously unselected package libi2c0:amd64.
(Reading database ... 24075 files and directories currently installed.)
Preparing to unpack .../libi2c0_4.3-2build1_amd64.deb ...
Unpacking libi2c0:amd64 (4.3-2build1) ...
Selecting previously unselected package libx86-1:amd64.
Preparing to unpack .../libx86-1_1.1+ds1-12_amd64.deb ...
Unpacking libx86-1:amd64 (1.1+ds1-12) ...
Selecting previously unselected package read-edid.
Preparing to unpack .../read-edid_3.0.2-1.1_amd64.deb ...
Unpacking read-edid (3.0.2-1.1) ...
Selecting previously unselected package i2c-tools.
Preparing to unpack .../i2c-tools_4.3-2build1_amd64.deb ...
Unpacking i2c-tools (4.3-2build1) ...
Setting up libx86-1:amd64 (1.1+ds1-12) ...
Setting up libi2c0:amd64 (4.3-2build1) ...
Setting up read-edid (3.0.2-1.1) ...
Setting up i2c-tools (4.3-2build1) ...
Failed to send reload request: No such file or directory
Processing triggers for man-db (2.10.2-1) ...
Processing triggers for libc-bin (2.35-0ubuntu3.1) ...
Installed i2c-tools
No i2c bus with "SMU 0" found."

I ran it on my notebook without an AMD GPU just to see if it launches, and it actually does. Will try later this week on my AMD GPU powered PC :cool:
 
Discussion starter · #27 ·
I tried it but WSL doesn't expose the i2c bus sadly. I remember reading somewhere that it's not designed to, so not sure you can hack it somehow. But do try.
I made some progress on permanently saving the power limit increase, but don't yet have a solution. Still need to solve something for that, not sure when or if I manage it.
This way you'd only need to use it once to permanently increase your power limits.
VID offsets can be permanently saved atm (script doesn't offer the option to), but that's not as useful without the permanent power limit increase, so it doesn't reset to stock on PC power off.
 
Discussion starter · #28 ·
Forgot to mention that this is for desktop class RDNA3/4 GPUs. On laptops the script will most likely fail validation, as they probably won't use the same VRs.
I could try and work with someone who has laptop class RDNA3/4 but the issue with laptops it they have zero TDP margins, they're already saturated in stock config. You won't get much extra, if anything.
 
Forgot to mention that this is for desktop class RDNA3/4 GPUs. On laptops the script will most likely fail validation, as they probably won't use the same VRs.
I could try and work with someone who has laptop class RDNA3/4 but the issue with laptops it they have zero TDP margins, they're already saturated in stock config. You won't get much extra, if anything.
You need to get me again i think its possible can you try it ? I scored 47 674 in Wild Life Extreme
 
  • Haha
Reactions: fpsflow
Discussion starter · #30 ·
You need to get me again i think its possible can you try it ? I scored 47 674 in Wild Life Extreme
I will try! But not now as I am still busy trying to figure out how to make changes permanent on GPU.
I ran lower clocks than you, I think I can do better. I didn't try too much on that benchmark. But will try more when I have the time.
 
I will try! But not now as I am still busy trying to figure out how to make changes permanent on GPU.
I ran lower clocks than you, I think I can do better. I didn't try too much on that benchmark. But will try more when I have the time.
I also didnt try much on this benchmark but i was wondered how i got 2k more when we are running both with custom voltages i am also busy to bench timespy again maybe i can get you again but i will see what i can do. Great Job with the whole script and its very nice to see that it works now without soldering its impressive so big respect to you👍
 
  • Rep+
Reactions: fpsflow
Discussion starter · #32 ·
I also didnt try much on this benchmark but i was wondered how i got 2k more when we are running both with custom voltages i am also busy to bench timespy again maybe i can get you again but i will see what i can do. Great Job with the whole script and its very nice to see that it works now without soldering its impressive so big respect to you👍
Thank you, I appreciate it!
If I remember right you have aftermarket fans on your heatsink. I have the stock fans. But I will give it another try and see what happens.
 
Thank you, I appreciate it!
If I remember right you have aftermarket fans on your heatsink. I have the stock fans. But I will give it another try and see what happens.
Yes i have 2x 140mm arctic Fans they are pretty good i am thinking of buying a waterblock for the gpu too go harder with my oc on this card
 
Discussion starter · #34 ·
I now have a solution to permanently save current gain offsets, as well as VID, and any other possible modification to VRs (will look into LLC for RDNA3).
It is not yet implemented in the script, and it will take a while to test. It might also work for RDNA4 to permanently increase GFX TDC limit to whatever limit you want, like the script does at the moment.
I will update after more testing is done, but I have now successfully booted fine with permanently saved custom current gain offset values! You will only need to run the script once and that's it!
🥳 🚀🚀
 
I prefer it temporary but fair play to you getting it permanently saved. The reason I prefer temp is I own my 7900 XTX since launch and it's still on original paste and air cooler. I already flashed the 550W extreme bios and that is too much for my card I have to go into the negative on the power limits as it's too much for my cards cooling so permanently having high power limits would be a bad idea for my card.
 
Discussion starter · #36 · (Edited)
Yes of-course, both aproaches have their uses. The permanent modification version will be a separate script for people interested in that.
For example, on RDNA4 if you short the power monitoring chips on the PCB, you still have the TDC limit. Some people might want to permanently increase the TDC limit as well, without having to use the script each time. Depends from case to case, so will probably be a separate script for permanent modifications.
You can always restore back to stock values, permanently.

edit: For RDNA4 it might not be so simple. @PJVol made a dump of page 0x2a and it's full of 0x0000, so it's most likely locked. Once we can unlock it, then we can probably modify it the same as I did on RDNA3. Will update if anything changes for RDNA4.
 
Yes of-course, both aproaches have their uses. The permanent modification version will be a separate script for people interested in that.
For example, on RDNA4 if you short the power monitoring chips on the PCB, you still have the TDC limit. Some people might want to permanently increase the TDC limit as well, without having to use the script each time. Depends from case to case, so will probably be a separate script for permanent modifications.
You can always restore back to stock values, permanently.

edit: For RDNA4 it might not be so simple. @PJVol made a dump of page 0x2a and it's full of 0x0000, so it's most likely locked. Once we can unlock it, then we can probably modify it the same as I did on RDNA3. Will update if anything changes for RDNA4.
Thank you. Excellent work. I have one very simple question, which is just for clarification purpose before I try any of this:

Will it work in a Windows 10 environment only, without the use of any linux of other OS subsystems.
Thanks again.
 
Thank you. Excellent work. I have one very simple question, which is just for clarification purpose before I try any of this:

Will it work in a Windows 10 environment only, without the use of any linux of other OS subsystems.
Thanks again.
No you need a Linux live USB stick and enable it and then reboot into Windows.
 
  • Rep+
Reactions: AndyG
No you need a Linux live USB stick and enable it and then reboot into Windows.
Hey, thanks for the quick answer. I had a feeling that was the case. Cheers.
 
I now have a solution to permanently save current gain offsets, as well as VID, and any other possible modification to VRs (will look into LLC for RDNA3).
It is not yet implemented in the script, and it will take a while to test. It might also work for RDNA4 to permanently increase GFX TDC limit to whatever limit you want, like the script does at the moment.
I will update after more testing is done, but I have now successfully booted fine with permanently saved custom current gain offset values! You will only need to run the script once and that's it!
🥳 🚀🚀
Just stumbled upon this after googling your username from the GravityMark 7800XT benchmarks. Looking forward to trying it out!
 
21 - 40 of 721 Posts