gpu-unlock-ada

gpu-unlock-ada

Double tensor throughput on RTX 4090

Description

A GeForce RTX 4090 gives you about 165 TFLOPS of FP16 tensor math with FP32 accumulation, half of what the silicon can do. For training and inference that live on matrix multiplies, there was no ready-made Linux route to the other half.

gpu-unlock-ada ports Zagitta’s gpu-unlock to Ada. It is the same kind of kernel module: it runs before the stock NVIDIA driver, writes the full-rate speed selectors and performs a PCIe reset. On one 4090 the author measured FP16 and BF16 with FP32 accumulate going from 165.6 to 331.6 TF/s, with driver 615.78 initialization and CUDA benchmarks unaffected, and INT8 plus scalar FP32 unchanged.

The author is candid about the evidence: one card, one cold boot, with independent reproduction and application-level numerical validation still pending. The RTX 4070 Ti SUPER is experimental and needs an explicit flag and a single PCI address.

Features



RTX 4090 tensor rate: FP16 and BF16 with FP32 accumulate run at about twice the stock rate on AD102, while INT8, dp4a and scalar FP32 stay put.

4070 Ti SUPER, experimental: Needs gpu_unlock.ad103_experimental=1 plus that card’s exact PCI address, and targets=all never picks it. On one card the author saw FP16 go from 95.0 to 189.9 TF/s, while one FP8 CUTLASS test showed no real gain.

Runs before the driver: Executes signed firmware, checks the completion marker and permissions, writes the selectors and resets the card, then the unmodified NVIDIA driver takes over. No patched driver or UEFI app.

Firmware built locally: make install fetches hash-pinned NVIDIA inputs, generates the firmware on your machine and builds an Arch, Debian or RPM package. The repo ships no prebuilt firmware.

Cold start advice: Power off fully before the first attempt so the card’s firmware state is fresh. The module skips cards that are bound, powered down, or still holding WPR2.