GPU-unlock: FP/BF16 instruction issue rate on Nvidia 3000's cards
Posted by fragebogen 5 days ago
Comments
Comment by Zagitta 4 days ago
Happy to answer questions!
Comment by aunty_helen 4 days ago
Comment by xenonite 4 days ago
Comment by aunty_helen 4 days ago
Comment by SSLy 4 days ago
Comment by razster 3 days ago
https://pastebin.com/FAdBbGUd Qwen3.8-27B on an RTX 3090: Inference Options and Benchmark Results
Comment by aunty_helen 2 days ago
Comment by jacquesm 4 days ago
edit: now do the 4090 ;)
Comment by Zagitta 4 days ago
4000s is WIP, forks has already unlocked it but I'm doing some refactoring to better support different families and after that I'll port it over :-)
Comment by jacquesm 4 days ago
Comment by Zagitta 4 days ago
If you can't wait for 4090 someone has a fork with a seemingly working unlock :D
Comment by jacquesm 4 days ago
I'm running 8 GPUs attached to a single CPU and that driver is a pretty essential part of getting this to work with P2P between as many cards as possible. The modded 4090 is a problem because the BAR1 it advertises (32G) is smaller than the VRAM so not all software is able to use it (you need two memory segments rather than a single 48G one to make this work). That driver is part of the solution for this problem.
Comment by Tiberium 4 days ago
Comment by jacquesm 4 days ago
Heh, got it working, thank you so much!!
Overall 30% reduction in wall clock time, that's pretty neat (and I'm still not running this at full power but 450 W is a bit much for that puny connector).
Comment by SlavikCA 4 days ago
Now i'm curious - am I missing some settings? Do I need to check any of these BAR things?
Comment by jacquesm 4 days ago
Comment by Zagitta 4 days ago
Comment by jacquesm 4 days ago
Comment by marcosscriven 4 days ago
Comment by jacquesm 4 days ago
Comment by marcosscriven 4 days ago
Comment by modeless 4 days ago
Comment by modeless 2 days ago
Comment by mietek 4 days ago
Comment by Zagitta 4 days ago
But I would suspect China has figured something out given the reports of them buying 5090s in droves and seemingly modifying them.
Comment by jacquesm 4 days ago
Comment by Zagitta 4 days ago
Comment by jacquesm 4 days ago
I suspect that modding a 5090 in such a way that you can sell it is a lot harder than doing the same with a 4090.
Comment by az226 4 days ago
Comment by marcosscriven 4 days ago
Comment by bilalq 3 days ago
And maybe I'm overthinking the cooling issue. It's not like I'm hammering it 24/7. Probably fine to burst high on power draw on use.
Btw, I always love moments like this where library or project owners stumble on their work and chime in on the comments. I really appreciate your work here. It's given me motivation to actually do something with parts that have been sitting on a shelf.
Comment by oceanplexian 3 days ago
Comment by bilalq 3 days ago
Comment by crspatel 1 day ago
Comment by verdverm 4 days ago
edit: seems you have provided some clarity that even if, unlikely soon unless China has and does the world a favor
Comment by jacquesm 4 days ago
Comment by userbinator 3 days ago
Comment by RachelF 4 days ago
https://github.com/aikitoria/open-gpu-kernel-modules
The hardware supports it, but then Nvidia disabled it if the driver detects cheaper cards. This bypasses the NVidia slowdown.
Comment by jacquesm 4 days ago
Comment by jacquesm 4 days ago
- you will need to run your card hotter than you might be comfortable with
- the real pay-off (on some cards, apparently, see downthread) requires increasing the maximum power to 450W
- This is well above what the stock cooler was designed for so a bit more cooling would help
What's nice is that you can stack this mod on top of (or rather, below of, this one loads first) the p2p mod that has been out for a while, they don't seem to interfere with each other.
Comment by Zagitta 4 days ago
Obviously doing more compute requires more power but what it does is shift the card down on the frequency curve to keep the wattage in check. So you're right that at stock power limits it hits a cap where the full issuing rate isn't reached but it depends heavily on the exact workload how much juice is left.
The frequency curve also takes heat into account so in general you end up with a nice perf boost for a slightly hotter card.
I've been running this on my 2 3090s for a month now with no issues but they are also water cooled :-)
Comment by jacquesm 4 days ago
Comment by BoorishBears 4 days ago
My EVGA came with stock firmware that started at a 420W and allowed up 500W, of course 500W did nothing for gaming
Comment by Tiberium 4 days ago
Can you explain this one? On my GPU I didn't have to change the power limit. Obviously the card might spend more time at max power usage, but it's still within the limit.
Comment by jacquesm 4 days ago
Comment by Tiberium 4 days ago
Comment by jacquesm 4 days ago
Obviously, if there are 3090's out there that respond differently then I will be happy to retract that.
Comment by unsnap_biceps 4 days ago
Comment by jacquesm 4 days ago
- get the largest PSU you can find (1500W at a minimum, more is better)
- get the ADT PLX Quad PCIe backplane. Run 4 thin (single slot) GPUs inside your main enclosure, stick the ADT interface board in between two of the thin boards (don't stack them close to each other or they won't be able to breathe).
- ensure you have as much or more RAM as you do VRAM
- Ensure your CPU has enough PCIe lanes to run at least five boards in x16 (four for the GPUs in the main enclosure, another for the PLX PCIe switch)
- In the BIOS set BAR1 to 'resizable' and > 4G decoding should be enabled.
- ditch the cables that come with the ADT board, they may work but there are much better ones out there and they're not expensive, this will save you days of troubleshooting
- Build your own enclosure rather than trying to adapt a standard one, it won't work anyway (the board pitch is wrong, as is the placement of the mounting holes).
- Put another four double or triple boards on the backplane.
- Add another 3x 140 mm fan to the front of the case so you get good airflow without the feeling of being next to a Harrier at take-off
- I used 3D printed parts to mount the PSU and the board as well as the fans (see below).
- Make sure the board is properly grounded to the enclosure
- If you're running 3090's or other cards that are P2P capable that were hobbled by NV then look at this https://github.com/aikitoria/open-gpu-kernel-modules driver module.
- Power on the ADT board, wait three seconds then power on the main machine. Enjoy your VRAM :)
If you have more questions please email me and I'll be happy to help out.
Comment by augment_me 4 days ago
https://github.com/JustAResearcher/gpu-unlock-ada/releases/t...
Comment by jacquesm 4 days ago
Comment by Tiberium 5 days ago
> Unfortunately for Nvidia the booter is vulnerable to a classic buffer overflow that writes straight into the stack which gives us the ability to execute code via Return Oriented Programming (ROP).
Repo for RTX 4090 and 4070 Ti Super: https://github.com/JustAResearcher/gpu-unlock-ada
Comment by qingcharles 4 days ago
Comment by jacquesm 4 days ago
Comment by wewewedxfgdf 4 days ago
https://github.com/keylase/nvidia-patch
So yeah, buy an Nvidia card then download and run all the software needed to make it work to its full potential so Jensen can buy his 500 millionth leather jacket.
Comment by RandyOrion 4 days ago
This unlock is super useful as it improves the GPU performance on computation-bounded neural network workloads like LLM prefilling, image/video generation, and general neural network training, in a way of disabling deliberate software segmentation on the same hardware imposed by Nvidia.
I'm on rtx 50 series, and no free performance uplifting for now. Waiting for more reverse engineering efforts to reveal whether the unlock is possible for 50 series.
Comment by Zagitta 4 days ago
Comment by RandyOrion 4 days ago
For now, I think reverse engineering efforts on 50 series gpus are just beginning. There are projects like reading sensor temperatures directly from the gpu itself instead of using deliberately DOWNGRADED software like nvidia-smi. However, I don't really see these efforts spreading, and people behind them really needs more recognition. Props to these people, too.
Comment by codedokode 3 days ago
This is why "right a reprogram" should exist. Anyone should be able to reverse-engineer and reprogram anything that has a CPU.
Comment by Havoc 3 days ago
That's just modern corporate capitalism.
Manufacturing economics favour making everything the same for scale, while sale economics favour market segmentation.
Comment by Ey7NFZ3P0nzAe 4 days ago
Comment by chromaton 4 days ago
However, it required a few extra steps, as the repo is set up for Linux kernel 6.x and I'm on 5.15. Claude Code was able to get me past the hurdles, including code modifications and startup scripts.
Right now, I'm clearly power limited at 170 watts and I have no desire to brick my card or set it on fire.
Comment by blagui 4 days ago
This is a benchmark test with Qwen 27B Int4 with 4x3090 and using full batching on VLLM to squeeze every bit of the GPU's.
Comment by triwats 4 days ago
[1] https://flopper.io/gpu/nvidia-geforce-rtx-3090-24gb [2] https://flopper.io/gpu/nvidia-geforce-rtx-3090-ti-24gb
Comment by londons_explore 4 days ago
Comment by Zagitta 4 days ago
In this case it's a DMA buffer overflow that writes to the stack which in turn can be exploited with Return Oriented Programming. So no unsigned code is ever executed but we still have code execution control.
Comment by pixl97 4 days ago
Comment by xrd 4 days ago
Comment by Sharlin 4 days ago
Certain (mostly AI) workloads. Depends on how hot you're comfortable running your card. The real-world improvement is considerably less due to other things being bottlenecks.
Comment by Scene_Cast2 4 days ago
On the other hand, this only applies to a limited set of workloads (training is often memory bandwidth bound for example).
I also wonder how this affects power consumption.
Comment by whatever1 4 days ago
Comment by jasomill 4 days ago
Comment by mkoryak 4 days ago
Comment by superkuh 4 days ago
Comment by Zagitta 4 days ago
And also it does work on most 3000 series cards as they all run the same GA102 booter that's vulnerable :-) There are some reports of cards with weird vbios layouts having issues but i'll try to get that fixed
Comment by augment_me 4 days ago
Also this one for 4070s shows that its for fp8 as well:
https://github.com/JustAResearcher/gpu-unlock-ada/releases/t...
Comment by Tuna-Fish 4 days ago
Comment by augment_me 4 days ago
Comment by Tiberium 4 days ago
There's at least 3080 Ti, 3070 Ti, 3070, 3060
Comment by RachelF 4 days ago
Comment by gawacer 4 days ago
Comment by toccter 4 days ago
Comment by rbaRBA 4 days ago