cuBLAS FP16 GEMM, FP32 accumulate

A library GEMM rather than an issue-rate loop, so it measures what a real workload gets at several M.N.K sizes.

So wurden sie gemessen

cuBLAS FP16-in/FP32-accumulate GEMM at M.N.K 1024, 2048, 4096 and 8192, one timed run per size. The Turing rows are the nlzy/turing-unlock README table, which states TFLOPS directly.

Unter der Kontrolle der SM-Speed-Select-Sicherung: ja

Gemessene Zeilen

21 Zeilen über 8 Karten. 21 verbesserten sich um mehr als 5 %, 0 nicht; der größte Gewinn ist GeForce RTX 4080 mit 1.94×.

ModusOriginalUnlockGewinnKarte
cuBLAS f16/f32 4096³ · cublasGemmEx, CUBLAS_COMPUTE_32F100.7194.9 TFLOP/s1.94×GeForce RTX 4080 · AD103 · 76 SMs
cuBLAS f16/f32 8192³83.4162.1 TFLOP/s1.94×GeForce RTX 4070 Ti · AD104 · 60 SMs
cuBLAS f16/f32 4096³98.7190.7 TFLOP/s1.93×GeForce RTX 4080 SUPER · AD103 · 80 SMs
cuBLAS f16/f32 4096³79.8154.0 TFLOP/s1.93×GeForce RTX 4070 Ti · AD104 · 60 SMs
cuBLAS f16/f32 8192³75.7144.4 TFLOP/s1.91×GeForce RTX 4070 SUPER · AD104 · 56 SMs
cuBLAS f16/f32 8192³ · power-limited at 250 W100.9177.7 TFLOP/s1.76×GeForce RTX 4080 SUPER · AD103 · 80 SMs
cuBLAS f16/f32 4096³73.6122.9 TFLOP/s1.67×GeForce RTX 4070 SUPER · AD104 · 56 SMs
f16/f32 2048³ · README row 2048: 55.7 (97.9% of a 56.9 TF/s peak) -> 91.4 (160.6%)55.791.4 TFLOP/s1.64×GeForce RTX 2080 Ti · TU102 · 68 SMs
cuBLAS f16/f32 8192³ · power-limited at 250 W, not issue-limited102.5164.9 TFLOP/s1.61×GeForce RTX 4080 · AD103 · 76 SMs
cuBLAS f16/f32 4096³ · PyTorch cuBLAS, median of 3 reps of 30 calls30.046.5 TFLOP/s1.55×GeForce RTX 4060 · AD107 · 24 SMs
f16/f32 4096³ · README row 4096: 53.7 (94.4% of a 56.9 TF/s peak) -> 81.7 (143.6%)53.781.7 TFLOP/s1.52×GeForce RTX 2080 Ti · TU102 · 68 SMs
cuBLAS f16/f32 4096³64.096.3 TFLOP/s1.50×GeForce RTX 4070 (AD103) · AD103 · 46 SMs
cuBLAS f16/f32 1024³51.977.8 TFLOP/s1.50×GeForce RTX 4070 Ti · AD104 · 60 SMs
f16/f32 8192³ · README row 8192: 52.8 (92.8% of a 56.9 TF/s peak) -> 77.9 (136.9%)52.877.9 TFLOP/s1.48×GeForce RTX 2080 Ti · TU102 · 68 SMs
cuBLAS f16/f32 8192³ · power-limited at 200 W64.493.6 TFLOP/s1.45×GeForce RTX 4070 (AD103) · AD103 · 46 SMs
cuBLAS f16/f32 1024³ · not tensor-bound at this shape49.170.1 TFLOP/s1.43×GeForce RTX 4070 (AD103) · AD103 · 46 SMs
cuBLAS f16/f32 4096³ · 70 W cap active in most samples, so large shapes are power-limited15.822.5 TFLOP/s1.42×GeForce RTX 3050 6GB · GA107 · 18 SMs
cuBLAS f16/f32 8192³31.444.2 TFLOP/s1.41×GeForce RTX 4060 · AD107 · 24 SMs
cuBLAS f16/f32 1024³ · not tensor-bound at this shape49.367.5 TFLOP/s1.37×GeForce RTX 4070 SUPER · AD104 · 56 SMs
f16/f32 1024³ · README row 1024: 50.3 (88.4% of a 56.9 TF/s peak) -> 68.3 (120.0%)50.368.3 TFLOP/s1.36×GeForce RTX 2080 Ti · TU102 · 68 SMs
cuBLAS f16/f32 8192³ · power-limited at 70 W16.119.7 TFLOP/s1.22×GeForce RTX 3050 6GB · GA107 · 18 SMs

Das kleinste Verhältnis in diesem Satz ist GeForce RTX 3050 6GB mit 1.22×.

Wie ein Verhältnis von 1,00× zu lesen ist

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.

Andere Messpfade