Open-source module unlocks BF16 speed on RTX 30 GPUs

Open source illustration: hands joining branches to a shared node tree

gpu-unlock, an open-source project released on GitHub by developer Zagitta, has collected about 8,100 stars and more than 850 forks in roughly a week. What it does is specific: it removes the rate limit on FP16/BF16 Tensor Core instructions on GeForce RTX 30-series cards, without flashing the VBIOS or modifying Nvidia's driver.

GeForce versions of Ampere cards run matrix-multiply instructions with half-precision inputs and FP32 accumulation at only half rate. gpu-unlock aims to double the issue rate of that instruction, covering four dies: GA102, GA103, GA104 and GA106.

How it works

gpu-unlock is a Linux kernel module. Its author describes it as combining the V67/PLM technique from CMP mining-card unlockers with the timing of earlier UEFI approaches, which act before the driver loads. The module performs the unlock before Nvidia's driver takes over the GPU, writes the speed selector, and then triggers a function-level reset (FLR).

The upside is low maintenance. It is neither a UEFI program nor a patched driver, so users do not have to re-apply a patch every time Nvidia ships a new driver.

The author's RTX 3090 Ti test used an 8192³ dense GEMM at 450 W with FP32 accumulation, taking the median of five samples:

Input precisionBefore unlockAfter unlock
FP1687.46 TFLOPS118.39 TFLOPS
BF1687.50 TFLOPS157.41 TFLOPS
TF3242.58 TFLOPS82.61 TFLOPS

BF16 gains reported by users vary by card: 73% to 81% on the RTX 3070, 70% to 73% on the 3080 10GB, about 80% on the 3060 12GB, and 25% to 67% on the 3090, with the lowest figure coming from a card capped at 225 W. These numbers come from each reporter's own benchmarks and cannot be compared directly.

What it means for real workloads

Matrix-heavy stages get noticeably faster. The prefill phase of LLM inference is reported to improve by 14% to 36%, and diffusion models and FlashAttention can benefit too. Token-by-token LLM generation is limited by memory bandwidth, and INT8 workloads take a different path, so neither changes much. Users who compared outputs report that results before and after the unlock are bit-for-bit identical.

So the "80% more compute" figure is mostly a theoretical peak. When running a local LLM chatbot, the most noticeable effect is faster reading of long prompts, while output speed changes little. No independent testing has been published on whether game frame rates are affected.

For second-hand card buyers in China

In China's local-deployment community, used 3090s and 3080 20GB cards with modded memory have long been the value picks. The project's compatibility table includes a row for the "RTX 3080 20 GB (memory mod)", with a reported gain of 56% to 59%, which suggests modded cards can benefit from the unlock as well.

The hurdle is the operating system. The module currently supports only Linux and ships packages for Arch, Debian/Ubuntu and Fedora families. It must be enabled explicitly in the kernel boot parameters; loading it manually after boot does not work. Windows users can only look at community UEFI ports; the 3070 Ti, for example, has so far been verified only on that route.

The author also lists a fair number of limitations:

  • After suspend-to-RAM the card is unlocked again, adding about one second; hibernation is not supported.
  • A card connected to a monitor goes briefly black during the unlock reset.
  • On some cards whose firmware cannot be stopped, a full power-off is required before retrying.
  • OEM RTX 3080 Ti cards still run BF16 at half rate after unlocking, and there are no reports yet for GA103.

The project is open source under the GPL-2.0 license. The README does not discuss whether altering the card's factory rate limit affects the warranty, and Nvidia has not publicly responded so far, so users planning to try it on their main machine will need to weigh that themselves.

Sources: gpu-unlock project README, GameApps.hk, CocoLoop; star and fork counts were checked against the GitHub repository, and TFLOPS figures and per-model gain ranges against the README benchmark table.