Benchmarks: Original gegen Unlock

Alle upstream veröffentlichten Messungen auf derselben Karte, Original gegen Unlock — einschließlich der unveränderten Tensor-Modi, des FP8-CUTLASS-Paars mit 1,0029× und der RTX-2080-Ti-cuBLAS-Tabelle des Turing-Forks.

Wie gemessen wurde

Die RTX-4090-Zeilen stammen aus einer registerresidenten MMA-Issue-Rate-Schleife mit 20.000 Iterationen und drei Wiederholungen pro Modus, berichtet wird das Beste von drei. Die RTX-4070-Ti-SUPER-Zeilen stammen aus tensor-modes-comparison.json des Forks: 66 SMs, Treiber 580.178.04, 240-W-Limit, 20.000 Iterationen und drei Wiederholungen, mit All-One-Eingaben über acht unabhängige Ketten. Das FP8-Paar ist ein separater CUTLASS-4.8.1-Profiler-Lauf über einen sm_89-Kernel. Die RTX-2080-Ti-Zeilen sind die README-Tabelle des Turing-Forks: cuBLAS FP16 GEMM mit FP32-Akkumulation, 250 W, Treiber 575.51.03, vier M.N.K-Größen, gemessen auf einer 22-GB-Karte von Dell. Das README nennt TFLOPS direkt und gibt in Klammern den Anteil an einem Peak von 56,9 TF/s an, den der Autor aus dem NVIDIA-Turing-Whitepaper übernimmt; diese TFLOPS werden hier unverändert zitiert. Upstream nennt keine Iterationszahl, deshalb wird hier auch keine gezeigt.

GeForce RTX 4090

AD102 · 128 SMs · Treiber unrecorded in the evidence file

ModusOriginalUnlockGewinn
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

Quelldateien für diesen Lauf

GeForce RTX 4070 Ti SUPER

AD103 · 66 SMs · Treiber 580.178.04

ModusOriginalUnlockGewinn
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

Quelldateien für diesen Lauf

GeForce RTX 2080 Ti

TU102 · 68 SMs · Treiber 575.51.03

ModusOriginalUnlockGewinn
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%)

Quelldateien für diesen Lauf

Das FP8-Paar, das sich nicht bewegte

Der Fork maß eine passende E4M3-FP8-Eingabe, FP32-Akkumulation, 4096³-GEMM auf der 4070 Ti SUPER mit derselben CUTLASS-Profiler-Binärdatei, einem Kernel, 10 Aufwärm- und 20 Profiling-Iterationen und Pflicht zur Verifikation gegen die Gerätereferenz. Beide Läufe bestanden ihre Referenzprüfungen.

LaufmsGFLOP/s
Original2.3172459325.8
Unlock2.3106659495.0

RTX 4070 Ti SUPER · cutlass_tensorop_s16832gemm_e4m3_128x128_64x3_tn_align16 · 1.0029×

Wie man ein Verhältnis von 1,00× liest

Eine 1,00×-Zeile ist kein fehlgeschlagenes Unlock. Sie sagt, dass dieser Pfad nie gedrosselt war, das Override also nichts wiederherzustellen hatte. Wenn du deine eigene Karte benchmarkst und bei dem Modus, der dir wichtig ist, 1,00× siehst, kann das Unlock durchaus korrekt gegriffen haben und dieser Workload profitiert einfach nicht.