3090 Delivers 80% More Compute at the Same Power: Someone Changed GPU Registers Before the Driver Loaded
A 3090's power draw stayed unchanged while PyTorch tests went from 75 TFLOPS to 135 TFLOPS. A Linux kernel module writes the speed selector before the NVIDIA driver binds the GPU; unlock reports exist for the 3090, 3060, and 4090. The trade-offs: Linux only, no gaming frame-rate improvement, and a future driver version may block it.
A 3090, with power still capped at 360W, went from 75 TFLOPS to 135 TFLOPS in PyTorch tests, an increase of about 80%. The original post calls this an unlock, and the project is named GPU unlock. It does not raise power draw; it changes the registers in the GPU that control compute speed.
Those registers are normally protected by permissions, and once the driver is loaded they cannot be written normally. The project author uses a vulnerability in the GPU boot firmware to gain write access before the NVIDIA driver loads, sets the speed selectors for AI operations such as FP16/BF16 input with FP32 accumulation to full speed, performs an FLR functional-level reset, and then hands the card over to the original driver. The project README states that it is a Linux kernel module, does not modify the NVIDIA driver, and does not rely on a UEFI application.
The README is very specific: the module writes SS0 0x88888888 to select the full BF16 rate, then writes 4-bit SS1 0x8 IMLA4. It is loaded into initramfs at boot, and kernel command-line parameters determine which cards are unlocked, for example gpu_unlock.targets=all.
The data is not limited to the 3090. The original post's 3090 test went from 75 to 135 TFLOPS at 360W. The README's 3090 Ti test at 450W shows FP16 going from 87.46 to 118.39 TFLOPS, BF16 from 87.50 to 157.41 TFLOPS, and TF32 from 42.58 to 82.61 TFLOPS. User reports for the 3090 span a wider range, with BF16 GEMM improvements from 25% to 67%, and the lowest value comes from a card with a 225W power limit. A 3060 12GB has reports of about 80%.
There is also a fork for the 4090. Someone in the replies posted a screenshot of the project page, version 1.1.1, where FP16 and BF16 plus FP32 accumulation throughput was pushed from about 165 TFLOPS to 331 TFLOPS, nearly doubling. The screenshot also mentions the 4070 Ti SUPER on the watchlist.
The effect is more obvious for matrix-heavy work: LLM prefill has reported improvements of 14% to 36%, and diffusion models and FlashAttention also benefit. LLM decode is limited by memory bandwidth and is basically unchanged; INT8 is also basically unchanged. Some reports comparing outputs say they are bit-identical before and after unlocking.
The limitations are equally clear. It only works on Linux and cannot improve gaming frame rates. Installation requires a kernel module, initramfs, and kernel command-line parameters, so the process is not lightweight. Manually operating a card that is already bound after loading the module has no effect. Hibernation is not covered. Driver or firmware updates may close the window. Some commenters worry that the next driver version will lock down firmware signing, while others note that used 3-series cards have already gone up in price; this claim has no independent data to support it.
Hardware redundancy and product segmentation are not new in the GPU industry. What is truly uncomfortable is that the limits are written into registers and maintained by software permissions. Getting 80% more compute at the same power shows that some performance tiers are determined by firmware and drivers. For developers, it is worth reproducing on an isolated machine; for ordinary users, do not treat it as a free upgrade yet.
Project address: https://github.com/Zagitta/gpu-unlock
Original post: https://x.com/lxfater/status/2113891680000901380
发布时间: 2026-10-25 02:37