NVIDIA sells the same silicon twice. A consumer GeForce card and a professional card can carry the same chip, but the consumer card is fused at the factory so that one specific kind of math runs at half speed: tensor core work in FP16 or BF16 that accumulates into FP32. That mode matters because it is what a lot of local AI training and fine-tuning actually uses. The professional card runs it at full rate. The GeForce card, with the same hardware on the die, does not.
A small open source community figured out how to lift that cap. The work starts with Zagitta's gpu-unlock for the 20 and 30 series and continues in the gpu-unlock-ada fork for the 40 series. We spent about 2 weeks porting it to our exact card (an MSI RTX 4070 SUPER, which the project lists as an experimental target) and proving each step instead of trusting it.
Here is what we did, in order. We first proved the unlock at the register level on Windows, using an EFI tool we ported to this card: the speed select registers were written and read back with the unlocked values, and the readback survived a PCIe reset. Then the machine was rebuilt on Linux, and we did the part that actually matters. We took a full locked benchmark baseline on the new stack first, then built and installed the Linux version of the unlock from hash-pinned sources, then ran the identical benchmark suite in the same boot that the kernel log showed the unlock applying.
The results, locked to unlocked, same box and same 220 W power ceiling:
- FP16 with FP32 accumulate, large matrix multiply: 68.95 to 122.78 TFLOPS (1.78x)
- BF16 with FP32 accumulate: 76.40 to 121.61 TFLOPS (1.59x)
- TF32: 38.10 to 54.79 TFLOPS (1.44x)
- Sustained load over about 105 seconds: 73.27 to 104.07 TFLOPS, at the same 217 W average power
- Attention and transformer training steps got faster by 29% and 19% on time
The controls are why I believe the numbers. Scalar FP32 math moved 0.6%. Memory bandwidth moved 2%. And the second card in the same machine, an RTX 5060 Ti that the unlock does not touch, reproduced its baseline within 1% on every measurement. If the machine or the drivers had changed, the controls would have moved too. They did not.
3 honest caveats. First, one measurement went the wrong way: INT8 throughput fell about 14% in the unlocked session, and we do not have an explanation for it yet (it is not a mode the unlock targets, but it is in the data and it stays in the report). Second, this is unofficial firmware-level work. It can break with a driver update, it is not supported by NVIDIA or MSI, and I would not do it to a machine I could not afford to rebuild. Third, the 5060 Ti in the same box gets nothing. Blackwell cards use a different boot chain with no equivalent opening, and as of this writing there is no unlock path for them at all. We also checked whether quantum computing could help open signed firmware like this (the signatures are RSA-3072, and factoring them is the theoretical route in). It cannot, not on any hardware that exists or is on a published roadmap. That study is its own write-up for another day.
What this changes for us is practical. A 12 GB consumer card that was capped at about 76 TFLOPS in the modes we care about now sustains about 104 and peaks at about 123, which is the class of performance NVIDIA reserves for cards costing several times more. Our inference fleet runs on consumer cards on purpose, and this is close to a free doubling of the training and fine-tuning throughput on the Ada cards in it.
The full benchmark comparison, including the controls and the methodology, is published with this article. The code we built on is not ours and we take no credit for it: the credit belongs to Zagitta, to the gpu-unlock-ada maintainers, and to the people who published the underlying research. We are sending our measurements and one build fix back to those projects, which is the least a result like this owes.
Thanks, Tristen
Appendix: the full benchmark comparison
The two runs were made on the same machine, our tower-compute build running Pop!_OS 24.04 with NVIDIA driver 595.104.02, under the same 220 W power ceiling. The locked baseline was measured first. The unlock was then built from hash-pinned sources and installed, and the identical benchmark suite was run again, in the same boot whose kernel log records the unlock applying. GPU 0 is the RTX 4070 SUPER, the card the unlock targets. GPU 1 is the RTX 5060 Ti in the same machine, which the unlock does not touch, so it serves as the control card: anything that changed the machine or the drivers as a whole would move GPU 1's numbers too. The comparison tool judged the pair valid: A measured unlocked, B measured capped, 0 confounds, across 44 independent metrics. The governing check is absolute throughput against the silicon's capped ceiling of 76.8 TFLOPS for FP16 and BF16 with FP32 accumulate at 8192 cubed. A capped card cannot pass that ceiling, and the unlocked run measured 122.78. Rows marked "derived" are computed from measured rows rather than measured directly, and rows marked "lower is better" are times, where a smaller number is the faster run. All 50 rows of the comparison are reproduced below, GPU 0 first, then GPU 1.
| Measurement | Locked | Unlocked | Change |
|---|---|---|---|
| GPU 0 · GEMM FP16 with FP32 accumulate, 8192 (TFLOPS) | 68.950 | 122.784 | +78.08% |
| GPU 0 · GEMM TF32, 4096 (TFLOPS) | 33.412 | 57.432 | +71.89% |
| GPU 0 · GEMM BF16 with FP32 accumulate, 8192 (TFLOPS) | 76.403 | 121.614 | +59.18% |
| GPU 0 · GEMM BF16 with FP32 accumulate, 4096 (TFLOPS) | 68.967 | 109.484 | +58.75% |
| GPU 0 · GEMM FP16 with FP32 accumulate, 4096 (TFLOPS) | 69.007 | 105.774 | +53.28% |
| GPU 0 · FP8 (E4M3) throughput (TFLOPS) | 147.099 | 219.984 | +49.55% |
| GPU 0 · GEMM TF32, 8192 (TFLOPS) | 38.102 | 54.789 | +43.80% |
| GPU 0 · MMA probe, TF32 over FP32 ratio (derived) | 1.7248 | 2.4659 | +42.96% |
| GPU 0 · Sustained load, mean throughput (TFLOPS) | 73.273 | 104.070 | +42.03% |
| GPU 0 · Attention (SDPA), equivalent throughput (derived) (TFLOPS) | 72.727 | 102.750 | +41.28% |
| GPU 0 · Sustained load, iterations completed | 7178.0 | 9987.0 | +39.13% |
| GPU 0 · MMA probe at end, TF32 over FP32 ratio | 1.8200 | 2.4273 | +33.37% |
| GPU 0 · Attention (SDPA) time, ms (lower is better) | 7.5592 | 5.3504 | -29.22% |
| GPU 0 · Sustained load, mean SM clock, MHz | 2657.8 | 2001.5 | -24.69% |
| GPU 0 · MMA probe, TF32 over FP16 ratio (derived) | 0.5526 | 0.4462 | -19.25% |
| GPU 0 · Transformer training step time, ms (lower is better) | 192.689 | 156.551 | -18.75% |
| GPU 0 · INT8 throughput (TOPS) | 258.608 | 222.952 | -13.79% |
| GPU 0 · MMA probe at end, TF32 over FP16 ratio | 0.5092 | 0.4617 | -9.32% |
| GPU 0 · GEMM FP32, 4096 (TFLOPS) | 23.987 | 25.102 | +4.65% |
| GPU 0 · Total elapsed time, seconds | 112.800 | 110.100 | -2.39% |
| GPU 0 · Sustained load duration, seconds | 107.710 | 105.510 | -2.04% |
| GPU 0 · Memory bandwidth (triad), GB/s | 443.576 | 434.643 | -2.01% |
| GPU 0 · Sustained load, peak temperature, °C | 83.000 | 82.000 | -1.20% |
| GPU 0 · GEMM FP32, 8192 (TFLOPS) | 22.090 | 22.219 | +0.58% |
| GPU 0 · Sustained load, peak power, W | 220.300 | 219.360 | -0.43% |
| GPU 0 · Decode proxy, steps per second | 832.418 | 833.741 | +0.16% |
| GPU 0 · Sustained load, mean power, W | 217.374 | 217.046 | -0.15% |
| GPU 0 · Temperature before GEMM, °C | 44.000 | 44.000 | +0.00% |
| GPU 0 · Sustained load, samples | 53.000 | 53.000 | +0.00% |
| GPU 1 · Temperature before GEMM, °C | 38.000 | 36.000 | -5.26% |
| GPU 1 · Total elapsed time, seconds | 6.1000 | 6.2000 | +1.64% |
| GPU 1 · Attention (SDPA), equivalent throughput (derived) (TFLOPS) | 45.253 | 45.723 | +1.04% |
| GPU 1 · Attention (SDPA) time, ms (lower is better) | 12.149 | 12.024 | -1.03% |
| GPU 1 · Decode proxy, steps per second | 835.232 | 828.353 | -0.82% |
| GPU 1 · Memory bandwidth (triad), GB/s | 396.225 | 394.873 | -0.34% |
| GPU 1 · FP8 (E4M3) throughput (TFLOPS) | 183.511 | 183.884 | +0.20% |
| GPU 1 · Transformer training step time, ms (lower is better) | 273.566 | 273.839 | +0.10% |
| GPU 1 · GEMM FP32, 4096 (TFLOPS) | 16.256 | 16.245 | -0.07% |
| GPU 1 · INT8 throughput (TOPS) | 176.387 | 176.296 | -0.05% |
| GPU 1 · MMA probe, TF32 over FP16 ratio (derived) | 0.4994 | 0.4991 | -0.05% |
| GPU 1 · MMA probe at end, TF32 over FP32 ratio | 1.3620 | 1.3615 | -0.04% |
| GPU 1 · GEMM BF16 with FP32 accumulate, 4096 (TFLOPS) | 47.760 | 47.740 | -0.04% |
| GPU 1 · GEMM TF32, 4096 (TFLOPS) | 23.319 | 23.310 | -0.04% |
| GPU 1 · MMA probe, TF32 over FP32 ratio (derived) | 1.3583 | 1.3580 | -0.03% |
| GPU 1 · GEMM TF32, 8192 (TFLOPS) | 23.807 | 23.801 | -0.03% |
| GPU 1 · GEMM FP16 with FP32 accumulate, 8192 (TFLOPS) | 47.673 | 47.683 | +0.02% |
| GPU 1 · GEMM FP16 with FP32 accumulate, 4096 (TFLOPS) | 47.705 | 47.703 | -0.00% |
| GPU 1 · GEMM FP32, 8192 (TFLOPS) | 17.526 | 17.527 | +0.00% |
| GPU 1 · GEMM BF16 with FP32 accumulate, 8192 (TFLOPS) | 47.760 | 47.758 | -0.00% |
| GPU 1 · MMA probe at end, TF32 over FP16 ratio | 0.4994 | 0.4994 | +0.00% |