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,