gpu-unlock kernel module doubles FP/BF16 issue rate on Nvidia RTX 30-series cards without repatching the driver
- gpu-unlock, a Linux kernel module, writes the SS0 0x88888888 and 4-bit SS1 0x8 speed selectors and runs FLR before the unmodified NVIDIA driver binds the card, doubling the FP/BF16 FMA issue rate into FP32 on GA102, GA103, GA104 and GA106 chips.
- On a 3090 Ti dense 8192³ GEMM at 450 W, five-sample medians with FP32 accumulation: FP16 rises from 87.46 to 118.39 TFLOPS, BF16 from 87.50 to 157.41, and TF32 from 42.58 to 82.61.
- User reports give BF16 GEMM gains of +25 to 67% on RTX 3090, +70 to 73% on 3080 10 GB, +73 to 81% on 3070 and about +80% on 3060 12 GB, while a 3080 Ti 20 GB OEM card completes the unlock but stays at half rate.
- Matrix-heavy work speeds up, with LLM prefill +14 to 36% and VLLM up to 30%, but memory-bandwidth-bound LLM decode and INT8 work stay flat, and every report that compared outputs found them bit-identical.
- The module abuses a stack buffer overflow in the GA102 booter firmware and executes via ROP, so no unsigned code runs, which is why the approach survives new driver releases and stacks under the p2p mod.
Hacker News opinions
Tested it myself, results are legit and honestly incredible, even if relying on a firmware exploit is a bit risky. Their booter has a classic stack buffer overflow writing into the stack, so you get code execution via ROP.
There's a repo for the 4090 and 4070 Ti Super too, but those need a pinned driver version and don't play nice with other mods like this one does.
It's real but the caveats matter. The full payoff wants a 450W power limit, well above what the stock cooler was designed for, so plan extra cooling. Nice part is it stacks underneath the p2p mod with no interference.
Do you really have to run it hotter? I never touched my power limit and it stays inside spec, the card just spends more time at max power.
It's more nuanced than that. The unlock flips the 2 bits that halve how often the core issues those instructions, so more compute needs more power and the card shifts down the frequency curve. I've run it on two 3090s for a month with no issues, though they're water cooled.
Only helps a limited set of workloads, training is often memory bandwidth bound. I'm also curious how it affects power consumption.
Training is compute bound. If you're bandwidth bound, raise your batch sizes for more parallelism. It helps prefill in inference too, VLLM sees up to 30% depending on kernels and prefill size.
The framing here is off, it's FP32 unlocked from being halved, not 16-bit ops. And I haven't seen reports of it on any 3xxx card except the 3090 and 3090 Ti.
The repo has fp16 numbers, and there are plenty of 3xxx reports: 3080 Ti, 3070 Ti, 3070, 3060. It's the FP/BF16 FMA to FP32 path, and most 3000 series run the same vulnerable GA102 booter.
This is my work, though the exploits aren't mine at all. I just wrapped it up so you don't patch the nvidia driver every release, inspired by the CMP90/50 UEFI unlocks.
Super well done, I wish all mods took your approach. Patched drivers are a nuisance when you have more than one kind of card. Now do the 4090.
Thanks, 27b is a favourite model of mine and my dev got 133 tok/s last night, about 3.2x. Changes the economics.
Semi related, there's a patch giving around 20% more card-to-card speed on consumer GPUs. The hardware supports it but nvidia disabled it when the driver detects cheaper cards.
The next version will surely ship signed firmware that locks these configs down. Though the encrypted debug images could be decrypted with a public test key and are close enough to production to build exploits from.
If nvidia is going to be short on cards for years there's no reason to keep this locked. Making it official won't change sales at this point.
Real gains are far less than advertised. TFLOPS tests show 25% at a 200W cap, and since mostly prefill benefits, the real world gain lands around 7-8% on Qwen 27B Int4 with 4x3090 and full batching on VLLM.
Worked for me, about 6% faster training on nanochat with my 3060. Took extra steps since the repo targets kernel 6.x and I'm on 5.15, Claude Code got me past it. I'm clearly power limited at 170W and have no desire to brick the card.