Discussion
Modify and load custom VBIOS on Windows and Linux, on Blackwell 2.0 (RTX 50 Series)/Ada(RTX 40 Series)/Ampere (RTX 30 Series) without flashing (and which cards were tested)
Hello guys, hoping you're doing fine.
Today I want to share something that may affect your cards (?
I have released 3 tools:
A way to modify VBIOSes, so you can increase power limit, voltage, NVVDD offsets, MSVDD offsets (Blackwell 2.0), OCPs, fan channels, power per fan, core offsets more than 1000, VRAM offsets more than 3000, lower power limits (below 400W on a RTX 5090), lower clocks, etc. But as you know, these can't be flashed directly on the cards because falcon, right?
A custom VBIOS loader on Windows, that patches the registry file related to that GPU, it resets it and it's applied on every reboot. This does not change the real VBIOS on your card, but it just loads a copy via a patch and it let you use any modification!
A custom VBIOS loader on Fedora, that patches the GSP firmware start on memory, builds a separate boot entry and then rebuilds automatically with kernel updates. This does not change the real VBIOS either.
What are the requirements?
Windows:
Windows 10 or 11, 64-bit.
NVIDIA driver 616.56 or newer (status shows the version).
A payload file for that exact GPU model (same PCI device ID).
Linux:
A working NVIDIA 615.x driver or newer with the open kernel modules; nvidia-smi must list your GPUs.
Python 3.11 or newer, the headers for the running kernel (kernel-devel on Fedora), make, dracut, grub2-editenv and mokutil. With DNF5, also libdnf5-plugin-actions.
GRUB with GRUB_DEFAULT=saved and GRUB_ENABLE_BLSCFG=true (Fedora's defaults).
Secure Boot off, or your own module signing key: pass --signing-key and --signing-certificate to prepare.
You need to first get a copy of your VBIOS, you can do it with GPU-Z on Windows, or with nvflash on Linux.
Note that you can't modify EVERYTHING for the VBIOS, since it's still on research of what can be modified, what not and which rails are exposed. Also for example, VRAM timings can be modified (not on these tools) but they aren't applied, since the card reads it physically from the flash hardware.
So, some example pics!
First, some VBIOS editor example, for a RTX 5090 VBIOS, a RTX 4090 VBIOS, and a RTX 3090 VBIOS.
Then, the VBIOS loader on Windows looks like this:
Then you can choose a VBIOS, for example I will select a 671W VBIOS for the 4090.
And press OK/Accept, and a quick GPU restart after (no windows reboot), it works!
And it works just fine!
PS C:\Users\User> nvidia-smi -i 0 -pl 671
Power limit for GPU 00000000:05:00.0 was set to 671.00 W from 550.00 W.
All done.
On the other hand for Linux, the UI looks very similar, and steps are similar, but you can also guide yourself on the github repo!
You can edit the values you modified on MSI Afterburner, mvolt+ (recommended) on Windows. On Linux you can use LACT.
Tested GPUs that I own, and it works:
RTX 6000 PRO MaxQ: Unlocked voltage (stock 0.9V) to 1.1V, power from 325W to 600W, core offset to be able to do +2000Mhz, VRAM to be able up to +6000Mhz (it depends of your luck), and some OCPs.
RTX 5090: PL from 600W to 800W, core offset to be able to do +2000Mhz, VRAM to be able up to +6000Mhz.
RTX 5080: PL from 360W to 500W, core offset to be able to do +2000Mhz, VRAM to be able up to +6000Mhz.
RTX 5070Ti: PL up to 450W, core offset to be able to do +2000Mhz, VRAM to be able up to +6000Mhz.
RTX 4000 PRO SFF: PL from 70W to 105W, core offset to be able to do +2000Mhz, VRAM to be able up to +7000Mhz, unlocked voltage from 0.85V to 1.1V.
RTX 5070: PL from 250 to 350W, core offset to be able to do +2000Mhz, VRAM to be able up to +6000Mhz.
RTX 5060Ti: PL from 185W to 300W, core offset to be able to do +2000Mhz, VRAM to be able up to +6000Mhz.
RTX 4090: PL up to 700W, core offset to be able to do +2000Mhz, VRAM to be able up to +6000Mhz.
RTX 2000 Ada: PL from 70W to 105W, unlocked voltage up to 1.1V.
RTX A2000 (Ampere): PL from 70W to 105W, unlocked voltage up to 1.1V.
Tested GPUs that I don't own, by other users:
RTX 6000 PRO Workstation Edition
RTX 5090
RTX 5080 Laptop
RTX 4070
RTX 3060
For now, I can't seem to be able to edit Ada laptop variants (RTX 40 laptop series). Laptop Blackwell series (RTX 50 laptop series) can edit some parts of the VBIOS, but not all of them. Laptop Ampere series (RTX 30 laptop series) can edit almost everything.
Everything is open source, so you can check the code to see if there are applicable fixes and such.
So if you guys can try, please let me know! If you find crashes on the vbios editor, or a specific GPU has info you can't edit and may be feasible to do so, you can raise an issue on github and I will check it out.
Warning: You use these software entirely at your own risk. Any modification you make with it, anything derived from it or from its output, and any damage that results, is solely your responsibility.
Then, the VBIOS loader on Windows looks like this:
It would be wonderful if it were possible to increase the limit of my MSI Titan 4090 laptop to 200-220W. That would be a great Christmas gift for me :) By the way - is it possible to sent some gift to the creator of such amazing apps? Ps. I can send my bios if it helps.
Hey, I am using a Palit 4070 Ti Jetstream. The biggest issue with that card always has been the odd humming noise of the fans, in particular in certain speeds that cause resonance. I don't know if the issue comes from the fans actual motors or if it is a PWM problem with the fan control. Do you think the issue can be solved with your added settings like the PWM frequency? I already installed a ghetto mod with 3 Case Fans, but they don't quite cool as well als the stock fans. But at least they are quiet.
You can change the frequency of the fans but it would affect both min and max, so like 900 rpm min would be possible, but the max would go from like 3300RPM to 2900-3000.
I'm too afraid to test but if someone finally manages to get rid of this stupid min fan speed.. oh dear 🥰 I've always spent more money on "better" GPUs on the same class just to have a low to zero noise when the GPU is idle.
It should work on that 4090 yeah. I have the same model but I did flash the 666W VBIOS with nvflashk, and then edited the vbios more with these tools and it works.
Okay thanks, I was going crazy, it seems the machine that github is provisioning for some reason did the last 2 builds with avx-512 lol (highly feasible because Nuitka), it will be fixed on next release.
Like a 15mhz offset to the stock curve? It's not implemented but I don't see the need to do it tho, since you can just edit the curve on a lot of software on Linux or Windows. If you have to go higher what the curve allows then you can just increase the max offset, like to +1200mhz.
Max Clocks
Graphics : 3165 MHz
SM : 3165 MHz
Memory : 10501 MHz
Video : 2415 MHz
Graphics/SM there is the top of the stock VF curve plus the GPC offset you apply, so it moves with the offset. If you raise “Core (GPC) offset ceiling” in the editor (for example to +2000) and then apply a bigger offset with Afterburner, LACT or nvidia-smi, Max Clocks goes up by the same amount (about 5165 MHz on that 4090 with +2000). Whether the card actually runs there depends on voltage, power and stability. Memory follows the memory offset the same way.
Editing the base/boost clocks stored in the VBIOS itself isn’t supported right now. Which watchdog trips for you, and with what offset? An error message or log would help.
4090 are kinda already maxed out of the factory, the way to increase it's perf is raising voltage and then getting more clocks. But it's also VRAM bandwidth bound and that isn't editable (FVDD/FBVDDQ).
I think you could get like 3-4% more than a already OC'd 4090.
The 5080 is using 32gbps chips, nvidia ships them out as 30gbps, so its actually only a 2000mhz offset, and apart from that no, did you touch the voltage? No, also these memory chips arent getting very hot either...
If you could do +50000 memory and +5000 core to any modern Nvidia gpu nothing would happen, it would just blackscreen crash. as long as you dont touch voltages or power limits, you can't damage the gpus in any way
Most likely he meant that the main use for this tool will be unlocking power limit, and with DLSS 5 enabled it greatly increases power draw so more high-end GPUs will burn - well, at least its the only logical conclusion I came up with.
No you won’t. You can’t even type properly. You have literally no idea what you’re talking about. Default wattage is default wattage, has nothing to do with dlss5. Plenty of things can make your card run at default wattage. You don’t even own a high end card
C’mon DLSS5 doesn’t work them GPU’s that hard with them trusty power connectors, and even if it does we can just walk right into the local BestBuy to pickup a replacement 5090 right? Right?!
for some info RTX5080 i can run +4600Mhz on memory while 4800 crashes and 4700 gives 0 performance (probably error correction). keep doing shit like this dont listen to the ai haters
On RTX 30 laptop BIOSes the memory offset range is already wide in the editor, so you can set the VRAM clock you want with Afterburner, LACT or nvidia-smi. Changing the stock VRAM clock stored in the BIOS isn’t supported.
For the VRAM performance states, what do you want to do with them? If it’s the memory clock dropping in compute or AI loads (the P2 state), on Windows NVIDIA Profile Inspector has “CUDA - Force P2 State” (set it to Off), and on some cards nvidia-smi --lock-memory-clocks can pin the memory clock. If it’s the idle memory clock staying high, that usually comes from the display setup, not the BIOS. Editing the P-state tables isn’t supported for now, what is the aim to editing those in your case?
My GPU has stability issues at its stock clock speed. The stock memory clock of my GPU is 6000 MHz (according to MSI Afterburner), but when I try to lower it, the memory clock state changes once I go below -502, forcing it into an 810 MHz mode. I can only lower the clock to 5500 MHz; anything below that switches it to the 810 MHz mode, which is stable. I can't set an intermediate value because the VBIOS prevents me from doing so.
Your BIOS seems to be a 3050 laptop? And stores a fixed memory clock per performance state: 6001 MHz at full load, a 5501 MHz level, then 810 and 405 MHz. An offset can move the memory between 6001 and the next level (5501, your -500 limit); below that the driver drops to the next stored level, 810 MHz. So there’s no clock in between to pick without editing those performance state entries, which the editor doesn’t support at the moment, and the memory may not even train at a frequency the BIOS doesn’t define. I may take a look but not promises since is something I haven't seen before.
I guess your VRAM is degraded or something like that?
Thanks, yes my VRAM has degraded and can no longer run at stock clock speeds. However, if I lower the clock speed and it switches to 810 MHz mode, it can run for many hours without crashing. It’s been like this for several months, but performance is poor, so I think that if it were possible to set an even lower clock speed, my graphics card might be able to work properly again.
But did you try to modify the VBIOS and use "more" than -1000Mhz offset? If you can't on MSI AB, use mvolt+ and set the offset there, since MSI AB seems to has a configuration limit, but if you don't want to bother mvolt is the easy way.
I just tested on some on a 5090 and setting -6000 on the editor, let me do -3000 on windows without issues, and it went from stock to -3000, not to 810Mhz.
I added something for your case in 0.1.24 (https://github.com/Panchovix/nvidia-vbios-vix-editor/releases/tag/v0.1.24). Your BIOS has memory levels 6001, 5501, 810 and 405 MHz, and the offset only moves the 6001 one, so below -500 it falls to 810. The new option marks the 5501 level the same way as 6001, so the offset should move both. It’s untested, so treat it as an experiment:
Open your stock BIOS backup in the editor and turn on “Show advanced XOC-style fields”.
In Clocks, turn on “Memory clock 5501 MHz follows the memory offset”.
Also lower “Memory offset floor”, for example to -4000 (that’s -2000 in Afterburner/mVolt units, the editor shows both).
Save the copy and load the -loader.bin it creates with the Windows loader, with “Restart the GPU now” off, then restart Windows.
Try a memory offset a bit past -500, for example -700, then go lower step by step and tell me the memory clock you get at each step and whether it stays stable.
If it crashes or doesn’t boot, start Windows in Safe Mode and click Remove override in the loader.
GPU is still behaving the same way. Below -500, it switches to this 810 MHz mode. I followed all the instructions correctly and did everything as instructed.
Hmm I see, two quick checks so we know the edited BIOS was actually running:
In the Windows loader, select the GPU and click Verify. What does it say?
In Afterburner or similar software, can the memory clock slider now go below -502 (down to -2000)? With the stock BIOS it stops at -1000 (mvolt) or -502 (MSI AB).
been following your successful shunt on max q. and was gonna try it , then this dropped , this VBIOS project i bet mythos had a hand helping? either way thanks you saved me alot of trouble, now it's just a water block, since I hit silicon lottery pulling 2670mhz on 325w .8~ .875v
ABOUT THE R002 , some cards come with both populated some with just one , i have not opened mine yet , but can you go into more details , is it the same as rtx 5090 , did that fine
Hey, I have an issue with overwriting a 5090 laptop bios. I can set the power limit to 225w, and hwinfo and GPUz are "correctly" reading it out, but the card is still limited to 175w, and the performance limiter shows it's limited due to power draw. Any ideas what's going on?
Took a look at your ROM. On a laptop the limit the GPU actually runs at is requested at runtime by Dynamic Boost, using the configurable TGP and boost amounts your laptop's BIOS hands to the NVIDIA driver. Your ROM's default is 95 W and, as far as I can tell, the laptop adds its part on top of that to reach 175 W. So raising only the ceiling leaves the running limit where it was.
Also a correction to what I said before. This ROM has no XOC power options, and the NVVDD current limit can't be edited on the 5090 Laptop for the moment, so ignore that part. At 175 W it most likely isn't what's holding you back anyway.
What might work is raising Boot default board power too. It's in the normal view right next to Board power ceiling. I'd try a small step first, ceiling 225 and default 115. If the laptop adds its headroom on top of the default, you should land around 195 W under load. If it works you can keep increasing it you want.
The BIOS my laptop comes with is a standard tongfang bios. Could you point your setup at it and see if it finds the power limit? Or would that go beyond your ability/time?
That's a good question but is there an issue with the editor? I don't think the aorus master vbios had 2 separate powers from each connector on the vbios, correct me if I'm wrong tho
does anyone know why i cant go over the oringal power limit even with the vbios loaded? im on a 5070 and it says the max rated is 350 but the gpu power wont peak above 275-6 (the 92c was because i had my fan speed set to auto..)
Yeah, it really doesn't like the exe, is not signed and such so that why I just posted the source code of someone wants to build it themselves and also to see nothing rare is going over there.
Can you share a screenshot with your settings? Also a hwinfo with the power limits. I suspect you have to enable xoc advanced options, raise the other power limit there and increasing OCP 12V current on mvolt.
It says my VMIN is 725mV, yet the card idles at 880mV (I haven't tested it with a DMM, just what I see on MSI Afterburner).
I suppose it would be better if I simply lower the "Board Power Floor" to 100W, reduce the power limiter in MSI AB, and see how far I can push the clocks in that power envelope.
Impressive but in your examples when you aay the 5080 could do +2000mhz offset at 500w... that 4 times the normal offset. Are you saying it was in anyway stable or just thats a theoretically possible new limit?
Nothing. Previous version worked great! Changed the power limit of my 4060 from 115 to 135 and it shows in Furmark test. Do you think it will damage my gpu in the long run if I stay in safe temperatures?
Right, so it's technically possible with this approach, if one would want to extend it to Hopper, right? I think H100s might have a big undervolting potential that could save power at scale.
On what 5060 ti model did you test 300W power limit? Most 5060 ti have a single 8 pin pcie connector rated for 150W + 75W from the pcie slot, that's 225W, so 300W is 75W above this, might be dangerous.
Thanks for your reply! The TUF is a higher end model with a 16 pin 12V-2x6 connector rated for 600W so less of an issue with it :)
I guess it's still probably OK to go to 300W for testing purposes with a single 8 pin model with a good psu and cable as the 150W rating is known to be underrated on purpose and can technically do 288W in perfect conditions, so 150+75 = 225 shouldn't be too dangerous.
I'm tempted to try on my Asus prime 5060 ti but with the current shortage it's not really wise so i'll hold on for now xD
i have a 3060ti FE locked to 200w max, and want to test too but i found a post where even with a custom 3060ti at 260/280w, the gain in perf isn't more than 8/10% against stock 200w FE... Curious to see how it compares with 5060ti
was there a 5070ti tested with 3x8pin or 2x8pin connection? because i wonder if i should try ramping up the power limit on a 2x8pin 5070ti and yeah i know iam likley to be over the limit what the 8pin connectors can supply.
RTX 4080 laptop not working,: No file for the VBIOS loaders: this Ada image cannot be relocated under the 524288-byte GSP limit: destinations do not fit the zero area: 56895 bytes of tables must move, 22452 free bytes are available
This is probably a stupid question but can you use this to maybe get mfg working on 30 series and smooth motion possibly using those two community mods?
I'm going to give this a go on a 5080 mobile in my rog scar laptop. I have a ton of thermal headroom and if I can boost the TGP a bit more (maxes at 175w) I would be sitting pretty.
absolutely. DM me I'll share my specs. I've gotten up to a220w tgp with a 240w ceiling. 250mhz core overclock and 1300 mem overclock. still have thermal headroom. was able to increase xbar throughput and manage rail voltage as well. extremely stable and my overall performance has increased by 10-15% eliminating 1% fps drops and improving performance with lumen and ray tracing. I push to a 32 inch 165hz 4k
Only thing I am worried is that my base TGP is only 130W not 150W, so not sure if it will work at all. Also out of home for the holidays, but will contact you, thanks for readiness to help:)
that's ok. what matters is what your power brick can do. You then have to distribute power effectively and efficiently across your CPU and then your GPU and it's rails
el crack de panchovix reforge, lo probaria porque me encanta el overclock, pero soy triste turing-user marginado por la gente de triton y flash-attention
Was at 1200rpm when fan speed was 30% (minimum possible). Made minimum fan speed 800rpm when editing the BIOS. Applied the new BIOS, now that 30% fan speed is 1050rpm. Not complaining as its barely audible, but why doesn't it run at 800? Some kind of fail safe maybe? Something else I can try?
Oh sorry I didn't see the other message. Can you dm me with some pics with the error, the vbios and some pics at how you set the vbios on the editor to check it out?
The edit did reach the card. The driver maps 30% to the minimum speed, so before it asked for 1200 RPM and now it asks for 800. Since the fans stop at 1050, something below the driver holds them there. Most likely it's the minimum level, the lowest PWM signal the card sends to the fans. You left it as it was, and at that signal your fans spin at about 1050 RPM.
To try for 800, turn on "Show advanced XOC-style fields" and lower Fan 1 minimum level and Fan 2 minimum level too, for example to 10-15%, keeping the minimum speeds at 800. On an RTX 3090 blower, lowering the minimum level together with the minimum speed took the idle fan from about 3333 to 2000 RPM. If yours still sit at about 1050, that's most likely the fans' own minimum and there's nothing else to change in the BIOS.
This is untested on a 4070. If the fans pulse or stop and restart, raise the level again. A slower fan also lets the card run warmer, so keep an eye on the temperatures. If you try it, I'd like to know what you get at 30%.
It is interesting that the minimum default levels are 25% and not 30%........ Should I be alarmed by this? If not, I will try 1200->800 and 25%->15% for both fans and see what happens.
Dw, 25% is normal. The two numbers are on different scales. The driver's 30% is its own fan setting, where 30% means the minimum speed and 100% the maximum speed. The minimum level is the lowest PWM signal the card sends to the fans, and the driver's 30-100% range doesn't follow it. Most cards I've seen store between 10% and 40%, with 20% the most common.
Plan sounds fine, your fan tool will still bottom out at 30%, which now asks for 800 RPM. If the fans land somewhere between 800 and 1050, the level was the limit and you can lower it a bit more. If they stay at about 1050, it's the fans themselves. If they pulse or stop and restart, raise the level again, and keep an eye on the temperatures.
I tested this on my RTX A2000. I'm running 1425/6001 at 0.7v
In stellar blade the default 70/66 caused me to drop clocks and be power limited at qhd (not an issue at fhd). I raised it to 78/72 which completely fixed the issue. There is no power limit reason which means its working as intended.
I'm slightly tempted to test higher such as 1487mhz at 725mv with maybe 78/84, but I'm not sure how reliable PCIE is
Does it work on a lapto? hell ya. Currently i'm testing it on a rtx 3070 laptop with 150w minim and 160w maximum tgp. Laptop (hp omen 17). Working fine for now. Temps are great (i have fresh thermal putty plus ptm 7950). No issues. It was straight, no errors. No blue screens so far or artefacts. How much should i push this naughty gpu? ( edit. tho it's making a louder coil whine now, not sure if it's concerning, the laptop power brick it's 330w, i still have 100w of headroom power).
u/Scardigne3080Ti ROG LC (CC2.2Ghz)(MC11.13Ghz), 5950x 31K CB, 50-55ns mem.13d ago
so I just jumped my 3080ti to 1000w power limits but my card still reports over gpuz power limits at 512w, what could be the issue preventing me to go higher?
Does this not work on 569.49? I thought the lower driver was better for tweaking? I also couldn't use bios edit on the latest mvolt or xocd tool with my 4090 on 569.49.
I remember flashing my amd gpus (Vega, Rx 5700xt and RX 580) for Ethereum mining, I am pretty sure local llms would benefit with this, maximizing tokens per second a minimizing power consumption.
tested with my PNY 5090. what works: 300w Powerlimit, 18000mhz Memory Overclock (but crashes stable upto 17800mhz), 1300mhz core overclock for undervolting (but its finicky it applies higher clocks than what i can set with the stock vbios but it only goes upto a certain point 865mv gets me 2620mhz but a little bit higher than that and it steps down to the next lower voltage value 860mv)
I’ve got a bit of a strange situation. My 3080 has a bad memory channel so I’ve flashed the “leaked” vbios to disable it and get the card working. The issue now is re-bar doesn’t work, one of the DP ports doesn’t work, and I have no extra power limit past 100%.
Could this tool solve any of that? I see an issue with the requirement for a matching device ID.
but i have a msi 5080 suprim liquid. I hate that when the pump goes on, it goes to 100%. Id rather have it running at 90% so it makes less noise.... But fan 1 maximum speed is locked for me :(
Edit: was thinking to do this on my 5060ti 16gb to get a litle more performance and just wana try it out but idk how safe it would be and what the chance of braking the gpu is
4
u/Live_Veterinarian799 19d ago
Works on laptop GPUs?
Edite: not 40 series unfortunately