Compute#Benchmark#AI chips#Model inference
Open-source GPU Unlock lifts Ampere's FP/BF16 issue-rate cap — up to +80% BF16 GEMM
The open-source GPU Unlock module rewrites Ampere speed registers before NVIDIA's driver binds, lifting RTX 30 BF16 GEMM up to +80%. Linux only.

A one-week-old open-source project called GPU Unlock is making RTX 30 series cards behave like NVIDIA’s professional boards — at least where it counts for AI work. Released on GitHub by developer Zagitta on October 18, it is a Linux kernel module that rewrites the FP/BF16 instruction issue rate NVIDIA caps on Ampere GeForce cards, restoring the full rate the professional boards ship with. The first numbers in the repository’s README: dense BF16 GEMM on an RTX 3090 Ti rose from 87.50 to 157.41 TFLOPS. As of the morning of October 25 (UTC), the repo held 2,893 stars and 319 forks.
Key points
- Issue #1’s launch data, measured on a 3090 Ti at 450 W over five-sample medians: FP16 87.46→118.39 TFLOPS, BF16 87.50→157.41 TFLOPS (+80%), TF32 42.58→82.61 TFLOPS.
- The module lives in the initramfs and writes speed selector SS0 to
0x88888888(full BF16 rate) plus SS10x8, then performs a FLR — all before the unmodified stock NVIDIA driver binds the card. GA102, GA103, GA104 and GA106 are covered. - Gains concentrate in matrix-heavy work: LLM prefill +14–36% across user reports, three BF16 ComfyUI tasks +56.1–58.6%; INT8 and memory-bandwidth-bound token generation barely move.
How the unlock works
GPU Unlock targets a gap NVIDIA built into the Ampere generation itself. The same GA102 silicon ships in both a GeForce 3090 and professional boards — the RTX Pro 5500 that Chinese regulators reportedly cleared for purchase is one — but the consumer card issues only half as many FP/BF16 FMA instructions per clock as its pro counterpart. The repo’s own description puts it plainly: unlock FP/BF16 instruction issue rate on RTX 3000 cards to their professional equivalents.
The implementation works at the firmware layer. It combines the V67/PLM technique of an older CMP unlocker with the pre-driver timing of a UEFI approach: shipped inside the initramfs, it runs before the nvidia driver loads, writes SS0 0x88888888 and the 4-bit SS1 0x8 into the card’s firmware, does a function-level reset, and lets the stock driver bind normally. The whole pass takes about a second, and by default the module does nothing — the unlock only runs when the kernel command line carries gpu_unlock.targets=all or explicit PCI addresses. Remove the parameter and the card returns to stock.
Because it touches firmware registers rather than driver code, the module survives NVIDIA driver updates without re-patching. The README documents compatibility with the display card itself, up to four cards in one machine, and cards passed through to VMs via vfio-pci.
The numbers
Every figure comes from users benchmarking their own cards, so the runs are not directly comparable — the power limit matters a lot (the weakest result, +25%, came from a card capped at 225 W). The 3090 Ti data from issue #1:
| Input | Before | After | Source |
|---|---|---|---|
| FP16 | 87.46 TFLOPS | 118.39 TFLOPS | issue #1 |
| BF16 | 87.50 TFLOPS | 157.41 TFLOPS | issue #1 |
| TF32 | 42.58 TFLOPS | 82.61 TFLOPS | issue #1 |
Other cards and real workloads line up across sources. Notebookcheck (October 24, Anil Ganti) relayed community reports of a 3090’s BF16 matrix multiplication rising from 77.5 to 129.6 TFLOPS. IT Home (October 25) lists a 3080 Ti going from 71.59 to 113.98 TFLOPS BF16. On real workloads, IT Home measured a 3090 at +33% vLLM prompt-processing throughput with token generation unchanged, and three BF16 ComfyUI tasks: MOSS-Image SFT at +58.6%, Qwen-Image 2.1 Turbo at +57.2% and Z-Image Turbo at +56.1%; Notebookcheck describes ComfyUI gains of “roughly 47–59%” over a different task set, so we take IT Home’s three specific tasks here. Reports that compared outputs before and after found them bit-identical.
Reproductions and pitfalls
The comment thread on issue #1 already holds independent reproductions on unmodified setups. On October 22, user Pento95 confirmed the 3090 Ti unlock on Fedora 44 with the stock RPM Fusion NVIDIA 615.78.08 driver — no Xid errors — and, normalizing for clock drift under the power limit, doubled FP16 throughput from 0.043 to 0.083 TFLOPS per MHz. On October 24, user peterc confirmed similar results on the same card and OS.
Pento95 also hit two silent-failure traps worth knowing before installing. The RPM package’s %post script only runs dkms add — nothing builds the module for the running kernel or regenerates the initramfs, so after a plain dnf install the unlock simply never runs, with no error anywhere; a manual dkms install followed by dracut -f fixed it. And on Fedora, grubby --update-kernel only edits existing boot entries: new kernels take their command line from /etc/kernel/cmdline and GRUB_CMDLINE_LINUX, so if the parameter isn’t there too, the unlock quietly stops working after the next kernel update.
Limits and risks
The boundaries are as clear as the gains. INT8 sees almost nothing: the README says so outright, IT Home measured +0.3% on an INT8 MOSS-Image SFT task, and Pento95’s int8-heavy vLLM stack gained about 5% end-to-end — within run-to-run noise. LLM decoding is limited by memory bandwidth, which the module does not touch, and it unlocks no extra CUDA cores, so token generation speed stays flat. The OEM RTX 3080 Ti 20 GB (GA102-250) completes the unlock yet keeps BF16 at half rate. On the gaming side there is no independently verified FPS gain at all — DLSS runs on tensor cores, but the DLSS 5 line we covered earlier has seen no measured change from this unlock.
A few more caveats: Notebookcheck notes that every number so far comes from GitHub and Reddit community reports, with no test lab having verified any of it. Suspending to RAM powers the cards off and resets the selectors; the module re-unlocks before the driver resumes them, at the cost of about a second of resume time, and hibernation is not covered. On Windows there is only an experimental UEFI variant, and its +82.5% BF16 result has succeeded on exactly one machine. There is no standard root LICENSE file (GitHub therefore shows the repo as unlicensed), while the README states the kernel module and local packaging are GPL-2.0-only, with the generated firmware under separate terms in firmware/NOTICE.md.
Our take
The clear winners are people running local models on RTX 30 cards under Linux: these boards are cheap secondhand, and a near-doubling of BF16 throughput means meaningfully faster prefill and diffusion rendering, while int8-quantized stacks won’t notice a difference. Set against spending $4,999 on a DGX Spark or $7,299 on AMD’s 192 GB Ryzen AI Halo, this is the zero-hardware-cost path. But the project is a week old, its packaging has known traps, its compatibility matrix runs on voluntary reports, and no third-party lab has reproduced the headline numbers — keep it off anything production-critical. If you want to try it, do it on a non-primary machine: follow the README’s make install, add the kernel parameter, and reboot.