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.

Como foram medidas

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.

Sob o fusível SM speed-select: sim

Linhas medidas

21 linhas em 8 placas. 21 subiram mais de 5 % e 0 não; o maior ganho é GeForce RTX 4080 com 1.94×.

ModoOriginalDesbloqueadoGanhoPlaca
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

O menor rácio deste conjunto é GeForce RTX 3050 6GB com 1.22×.

Como ler um rácio de 1,00×

Uma linha de 1,00× não é um desbloqueio falho. Ela diz que aquele caminho específico nunca foi limitado, então a substituição não tinha nada a restaurar. Se você medir sua própria placa e ver 1,00× no modo que lhe importa, o desbloqueio pode ter sido aplicado corretamente e simplesmente não ajudar aquela carga de trabalho.

Outros caminhos de medição