gpu-unlock Gives Nvidia RTX 3090 Ti Nearly 80% More AI Throughput on Linux
An open source Linux kernel module removes the FP16 and BF16 throttle on Ampere GeForce cards, roughly doubling tensor throughput on an RTX 3090.
- gpu-unlock removes the FP16/BF16 tensor throttle on Ampere GeForce cards via a Linux kernel module.
- RTX 3090 BF16 matmul jumped from 77.5 to 129.6 TFLOPS in community tests, roughly matching the RTX A6000.
- Works without flashing VBIOS or patching the Nvidia driver, which loads unmodified after the unlock runs.
- ComfyUI image generation gained 47 to 59 percent on an RTX 3090 Ti, LLM token decode barely moved.
- Requires a cold boot, kernel command line opt-in, and GA102 or GA104 silicon. Linux only.
- Builds on earlier CMP mining card unlocks and uses pre-driver timing from the UEFI approach.
An open-source Linux kernel module called gpu-unlock removes an instruction-rate limit affecting FP16 and BF16 Tensor Core operations with FP32 accumulation on some Nvidia Ampere GeForce GPUs. The change requires neither a modified VBIOS nor a patched Nvidia driver. Early RTX 3090 and 3090 Ti benchmarks report gains approaching 2x in targeted matrix operations, although hardware support and long-term stability remain lightly tested.
An Ampere limit surfaces
The project targets a hardware speed selector that reduces how quickly GA102 and GA104 GeForce GPUs issue specific Tensor Core instructions. Those mixed-precision operations are common in neural-network training, model prefill, image generation, and other workloads that multiply FP16 or BF16 values while accumulating results in FP32.
Nvidia’s published Ampere specifications reflect the restriction. The RTX 3090 is rated for about 71 TFLOPS in the affected dense mode, while professional GA102 products reach roughly twice that rate. The RTX A6000, for example, is rated at about 155 TFLOPS for comparable dense FP16 Tensor Core work. Differences in clocks and enabled cores affect the exact figures, but the issue-rate setting accounts for the large gap in this operating mode.
The module writes 0x88888888 to the SS0 speed-selector register, enabling the full BF16 issue rate before Nvidia’s driver initializes the GPU. The implementation combines the V67/PLM firmware-loading technique from earlier CMP mining-card research with the early-boot timing used by previous UEFI-based unlocks.
The register changes before Linux claims the GPU
Because the target register can be changed only on a freshly powered, unbound GPU,
This story is for Pro members
You've reached the end of the free preview. Upgrade to AlphaSignal Pro to read the full article - and everything else behind the paywall.