We unlocked the tensor cores on our RTX 4070 SUPER, and here are the numbers

Listening edition

Narrated · 6 chapters · about 5 minutes

Listening editions are read aloud by synthesized voices generated with ElevenLabs. The words are written and checked by people at Axiovex Systems.

THE CAP

The factory cap and the community unlock

  • NVIDIA sells the same silicon twice: the consumer GeForce card is fused at the factory so tensor core work in FP16 or BF16 that accumulates into FP32 runs at half speed
  • That mode is what a lot of local AI training and fine-tuning actually uses, and the professional card with the same chip runs it at full rate
  • A small open source community figured out how to lift the cap: Zagitta's gpu-unlock, continued in the gpu-unlock-ada fork

TakeawaySame chip, two speeds — and the slower one is the one on the consumer card.

0:00 / 4:58 Chapter 1 of 6

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.

MeasurementLockedUnlockedChange
GPU 0 · GEMM FP16 with FP32 accumulate, 8192 (TFLOPS)68.950122.784+78.08%
GPU 0 · GEMM TF32, 4096 (TFLOPS)33.41257.432+71.89%
GPU 0 · GEMM BF16 with FP32 accumulate, 8192 (TFLOPS)76.403121.614+59.18%
GPU 0 · GEMM BF16 with FP32 accumulate, 4096 (TFLOPS)68.967109.484+58.75%
GPU 0 · GEMM FP16 with FP32 accumulate, 4096 (TFLOPS)69.007105.774+53.28%
GPU 0 · FP8 (E4M3) throughput (TFLOPS)147.099219.984+49.55%
GPU 0 · GEMM TF32, 8192 (TFLOPS)38.10254.789+43.80%
GPU 0 · MMA probe, TF32 over FP32 ratio (derived)1.72482.4659+42.96%
GPU 0 · Sustained load, mean throughput (TFLOPS)73.273104.070+42.03%
GPU 0 · Attention (SDPA), equivalent throughput (derived) (TFLOPS)72.727102.750+41.28%
GPU 0 · Sustained load, iterations completed7178.09987.0+39.13%
GPU 0 · MMA probe at end, TF32 over FP32 ratio1.82002.4273+33.37%
GPU 0 · Attention (SDPA) time, ms (lower is better)7.55925.3504-29.22%
GPU 0 · Sustained load, mean SM clock, MHz2657.82001.5-24.69%
GPU 0 · MMA probe, TF32 over FP16 ratio (derived)0.55260.4462-19.25%
GPU 0 · Transformer training step time, ms (lower is better)192.689156.551-18.75%
GPU 0 · INT8 throughput (TOPS)258.608222.952-13.79%
GPU 0 · MMA probe at end, TF32 over FP16 ratio0.50920.4617-9.32%
GPU 0 · GEMM FP32, 4096 (TFLOPS)23.98725.102+4.65%
GPU 0 · Total elapsed time, seconds112.800110.100-2.39%
GPU 0 · Sustained load duration, seconds107.710105.510-2.04%
GPU 0 · Memory bandwidth (triad), GB/s443.576434.643-2.01%
GPU 0 · Sustained load, peak temperature, °C83.00082.000-1.20%
GPU 0 · GEMM FP32, 8192 (TFLOPS)22.09022.219+0.58%
GPU 0 · Sustained load, peak power, W220.300219.360-0.43%
GPU 0 · Decode proxy, steps per second832.418833.741+0.16%
GPU 0 · Sustained load, mean power, W217.374217.046-0.15%
GPU 0 · Temperature before GEMM, °C44.00044.000+0.00%
GPU 0 · Sustained load, samples53.00053.000+0.00%
GPU 1 · Temperature before GEMM, °C38.00036.000-5.26%
GPU 1 · Total elapsed time, seconds6.10006.2000+1.64%
GPU 1 · Attention (SDPA), equivalent throughput (derived) (TFLOPS)45.25345.723+1.04%
GPU 1 · Attention (SDPA) time, ms (lower is better)12.14912.024-1.03%
GPU 1 · Decode proxy, steps per second835.232828.353-0.82%
GPU 1 · Memory bandwidth (triad), GB/s396.225394.873-0.34%
GPU 1 · FP8 (E4M3) throughput (TFLOPS)183.511183.884+0.20%
GPU 1 · Transformer training step time, ms (lower is better)273.566273.839+0.10%
GPU 1 · GEMM FP32, 4096 (TFLOPS)16.25616.245-0.07%
GPU 1 · INT8 throughput (TOPS)176.387176.296-0.05%
GPU 1 · MMA probe, TF32 over FP16 ratio (derived)0.49940.4991-0.05%
GPU 1 · MMA probe at end, TF32 over FP32 ratio1.36201.3615-0.04%
GPU 1 · GEMM BF16 with FP32 accumulate, 4096 (TFLOPS)47.76047.740-0.04%
GPU 1 · GEMM TF32, 4096 (TFLOPS)23.31923.310-0.04%
GPU 1 · MMA probe, TF32 over FP32 ratio (derived)1.35831.3580-0.03%
GPU 1 · GEMM TF32, 8192 (TFLOPS)23.80723.801-0.03%
GPU 1 · GEMM FP16 with FP32 accumulate, 8192 (TFLOPS)47.67347.683+0.02%
GPU 1 · GEMM FP16 with FP32 accumulate, 4096 (TFLOPS)47.70547.703-0.00%
GPU 1 · GEMM FP32, 8192 (TFLOPS)17.52617.527+0.00%
GPU 1 · GEMM BF16 with FP32 accumulate, 8192 (TFLOPS)47.76047.758-0.00%
GPU 1 · MMA probe at end, TF32 over FP16 ratio0.49940.4994+0.00%

Corrections and updates

No corrections or updates recorded since publication.

Likes are a rough signal only: one per browser, not a count of readers.

THE AXIOVEX SIGNAL — MONTHLY

The month, in your inbox.

What changed in Michigan industry and the field → one email, after the monthly economic releases, with the numbers, their vintages, and why they matter.

Choose what to join

Three separate lists — join only the ones you want, and leave any of them in one click, any time. We send a confirmation first — nothing arrives until you click it. No tracking pixels, no per-reader analytics. Privacy policy

Next step

Questions about this analysis?

If this analysis touches a problem you’re facing, we’d like to hear about it.

Start a conversation