InfrastructureResearch Paper · For R&DHabr AI→ original

gpu-unlock removes the software BF16 cap on RTX 20/30/40 — up to +100% in tensor cores

The gpu-unlock project removes an artificial tensor core speed limit on consumer RTX 20/30/40 cards. It is a Linux kernel module: it loads before the NVIDIA driver, changes the speed registers and resets the card, while the stock driver is left untouched. According to the README, pure BF16 matmul speeds up by 65–100%, but these are the author's claims, not an independent benchmark.

AI-processed from Habr AI; edited by Hamidun News
gpu-unlock removes the software BF16 cap on RTX 20/30/40 — up to +100% in tensor cores
Source: Habr AI. Collage: Hamidun News.
Listen to article
Article Fact Sheet & Key Figures
ParameterDetails
Primary sourceHabr AI ↗
Editor-in-Chief
LLM prefill and training+25–55% according to community reports
Decode and INT8/INT4 modelsno gain, bound by memory
Key metric #3Ampere is stable, Ada and Turing are still experimental

Imagine this: you bought an RTX 3090 or 4080, and part of its compute power for AI is locked not by the hardware, but by a setting in the firmware. That is exactly the case described by the gpu-unlock project from developer Zagitta. A caveat up front: I have not tested the module. What follows is a review of the repository and README, and all figures are claims by the author and the community, not my own measurements.

What the problem is

NVIDIA separates its lineup into gaming GeForce and professional cards by more than just price. On consumer cards, tensor core throughput in FP16/BF16/TF32 modes with FP32 accumulation is artificially cut, most often to half of the rated peak. In games this is unnoticeable. But in local LLMs, fine-tuning, and image and video generation, this very math takes up most of the training time and of prefill, that is, processing of the input prompt.

How gpu-unlock works

It is a Linux kernel module. It is built into the initramfs and fires before the nvidia driver binds to the card. The module writes speed selector registers into the card (SS0 = 0x88888888 for full BF16 speed and SS1 = 0x8), then performs a Function-Level Reset and releases the device. After that, the original NVIDIA driver picks up the card as usual. The driver itself is not patched and the VBIOS is not flashed. The driver archive is needed only to extract the firmware on which the unlock depends. The author claims the computation results are bit-for-bit identical, and only the speed changes.

Support looks like this: Ampere (RTX 30, including mobile 3070/3080) is stable. Ada Lovelace (RTX 40) and Turing (RTX 20) are experimental. Blackwell (RTX 50) is not supported, and the author believes it will not be. Pascal, including the GTX 1070, is not suitable at all: it lacks the necessary tensor cores.

What the numbers promise

According to the README, pure BF16 matmul at stock power limits: RTX 3060 — from 27 to 51 TFLOPS (+87%), RTX 3080 — from 65 to 113 (+73%), RTX 3090 — from 75 to 125 (+65%), RTX 4080 — from 104 to 193 (+87%), RTX 4090 — from 165 to 329 (+100% at peak). For the 4090 the author himself warns that the card will hit the power limit before the tensor core ceiling, so on large GEMMs the gain will be smaller.

On real workloads, according to community reports, the picture is more modest: LLM prefill +25–55%, LoRA and full BF16 fine-tuning +25–50%, image generation +30–55%, video (Wan 2.2) +15–20%, FlashAttention/SDPA +50–60%. For llama.cpp and Ollama with GGUF — 0–15%.

Where it won't help

The main limitation for home LLMs: decode is bound by memory bandwidth, not by compute. INT8/FP8/INT4 models, games and FP32 CUDA are not accelerated either. If you run a quantized model for generation speed, you may get nothing.

Installation and risks

Installation: git clone, then make install (there are install-arch, install-deb and install-rpm targets), after which gpu_unlock.targets=all or specific PCI addresses is added to the kernel parameters. Verify with journalctl -k -b | grep gpu_unlock. To roll back, remove the parameter or uninstall the package.

Caveats. On laptops, the unlock is lost when the discrete GPU is fully powered off. After suspend, the module unlocks the card again, with a delay of about a second; hibernation is not supported. If the firmware hangs, you need to actually power off, not reboot. The card will run hotter. The author does not support Windows, and third-party installers should be treated with extreme caution: the project has no cryptocurrency and no websites, only a GitHub repository. The module is licensed GPL-2.0-only, while NVIDIA firmware remains under its own license.

Practical takeaway

If you have an RTX 20/30/40, work with FP16/BF16 and mostly train, fine-tune or generate images, the project is worth trying: it is free and can be rolled back with a single parameter. First, honestly compare your workload profile against the "where it won't help" list. And do not install it on your only working machine without testing on a separate rig: the figures here are relayed from the README, not independently measured.

Story

Key Questions Answered

What the problem is?

NVIDIA separates its lineup into gaming GeForce and professional cards by more than just price. On consumer cards, tensor core throughput in FP16/BF16/TF32 modes with FP32 accumulation is artificially cut, most often to half of the rated peak. In games this is unnoticeable. But in local LLMs, fine-tuning, and image and video generation, this very math takes up most of the training time and of prefill, that is, processing of the input prompt.

How gpu-unlock works?

It is a Linux kernel module. It is built into the initramfs and fires before the nvidia driver binds to the card. The module writes speed selector registers into the card (SS0 = 0x88888888 for full BF16 speed and SS1 = 0x8), then performs a Function-Level Reset and releases the device. After that, the original NVIDIA driver picks up the card as usual. The driver itself is not patched and the VBIOS is not flashed. The driver archive is needed only to extract the firmware on which the unlock depends.

What the numbers promise?

According to the README, pure BF16 matmul at stock power limits: RTX 3060 — from 27 to 51 TFLOPS (+87%), RTX 3080 — from 65 to 113 (+73%), RTX 3090 — from 75 to 125 (+65%), RTX 4080 — from 104 to 193 (+87%), RTX 4090 — from 165 to 329 (+100% at peak). For the 4090 the author himself warns that the card will hit the power limit before the tensor core ceiling, so on large GEMMs the gain will be smaller.

ZK
Zhemal Khamidun — CPO at Alpina Digital, product manager of AlpinaGPT. Building AI products since 2019. Hamidun News is a pet project that grew into a production aggregator with 6,000+ readers.
✦ Unified AI Workspace · Nomad

Test Frontier LLMs & Autonomous Agents in One Workspace

Run Claude Opus 5.5, GPT-6, Gemini 3.1, and DeepSeek side-by-side in Nomad AI (nomadnet.ai) — unified model routing, deep research, and multimodal workflows under one subscription.

Try Nomad AI →Launch Nomad Agent
What do you think?
Loading comments…