Benchmarks: stock versus unlocked

Every same-card stock-vs-unlocked measurement published upstream, including the tensor modes that did not change, the FP8 CUTLASS pair that measured 1.0029×, and the RTX 2080 Ti cuBLAS table from the Turing fork.

How these were taken

The RTX 4090 rows come from a register-resident MMA issue-rate loop run at 20,000 iterations and three repetitions per mode, best-of-three reported. The RTX 4070 Ti SUPER rows come from the fork's tensor-modes-comparison.json, 66 SMs, driver 580.178.04, 240 W cap, 20,000 iterations and three repetitions, with all-one inputs across eight independent chains. The FP8 pair is a separate CUTLASS 4.8.1 profiler run on one sm_89 kernel. The RTX 2080 Ti rows are the Turing fork's README table: cuBLAS FP16 GEMM with FP32 accumulate, 250 W, driver 575.51.03, four M.N.K sizes, measured on a Dell 22 GB card. The README states TFLOPS directly and gives percent of a 56.9 TF/s peak in parentheses, which the author takes from the NVIDIA Turing whitepaper; those TFLOPS are quoted here unchanged. The README gives no iteration count, so none is shown.

GeForce RTX 4090

AD102 · 128 SMs · driver unrecorded in the evidence file

ModeStockUnlockedGain
f16/f16325.70 TF/s331.60 TF/s1.02×
f16/f32165.60 TF/s330.80 TF/s2.00×
bf16/f32165.50 TF/s330.30 TF/s2.00×
s8/s32661.60 TF/s659.50 TF/s1.00×
dp4a164.50 TF/s164.10 TF/s1.00×
ffma79.10 TF/s79.10 TF/s1.00×
  • f16/f16: unlocked values are the 40,000-iteration run; f16/f16 was mostly unaffected, unlike f16/f32
  • s8/s32: already at full rate before the unlock
  • ffma: FP32 was never rate-limited

Source files for this run

GeForce RTX 4070 Ti SUPER

AD103 · 66 SMs · driver 580.178.04

ModeStockUnlockedGain
f16/f3294.96 TFLOP/s188.97 TFLOP/s1.99×
tf3247.49 TFLOP/s94.51 TFLOP/s1.99×
u4/s32754.81 TOP/s754.68 TOP/s1.00×
  • u4/s32: integer path, unaffected

Source files for this run

GeForce RTX 2080 Ti

TU102 · 68 SMs · driver 575.51.03

ModeStockUnlockedGain
f16/f32 1024³50.30 TF/s68.30 TF/s1.36×
f16/f32 2048³55.70 TF/s91.40 TF/s1.64×
f16/f32 4096³53.70 TF/s81.70 TF/s1.52×
f16/f32 8192³52.80 TF/s77.90 TF/s1.48×
  • f16/f32 1024³: README row 1024: 50.3 (88.4% of a 56.9 TF/s peak) -> 68.3 (120.0%)
  • f16/f32 2048³: README row 2048: 55.7 (97.9% of a 56.9 TF/s peak) -> 91.4 (160.6%)
  • f16/f32 4096³: README row 4096: 53.7 (94.4% of a 56.9 TF/s peak) -> 81.7 (143.6%)
  • f16/f32 8192³: README row 8192: 52.8 (92.8% of a 56.9 TF/s peak) -> 77.9 (136.9%)

Source files for this run

The FP8 pair that did not move

The fork measured a matched E4M3 FP8 input, FP32 accumulate 4096³ GEMM on the 4070 Ti SUPER with the same CUTLASS profiler binary, one kernel, 10 warmups and 20 profiling iterations, requiring device-reference verification. Both runs passed their reference checks.

RunmsGFLOP/s
stock2.3172459325.8
unlocked2.3106659495.0

RTX 4070 Ti SUPER · cutlass_tensorop_s16832gemm_e4m3_128x128_64x3_tn_align16 · 1.0029×

How to read a ratio of 1.00×

A 1.00× row is not a failed unlock. It says that particular path was never rate-limited, so the override had nothing to restore. If you benchmark your own card and see 1.00× on the mode you care about, the unlock may well have applied correctly and simply does not help that workload.