性能实测:解锁前后
上游公布的全部同卡前后对比数据,包括没有变化的张量模式、实测 1.0029× 的 FP8 CUTLASS 一组,以及 Turing 分支的 RTX 2080 Ti cuBLAS 表格。
数据是怎么测的
RTX 4090 的数据来自寄存器驻留的 MMA 发射率循环,每种模式 20,000 次迭代、重复三次,取三次最好值。RTX 4070 Ti SUPER 的数据来自分支的 tensor-modes-comparison.json:66 个 SM、驱动 580.178.04、240 W 功耗上限、20,000 次迭代、重复三次,全 1 输入、8 条独立链。FP8 那组是另一次 CUTLASS 4.8.1 profiler 运行,单个 sm_89 内核。RTX 2080 Ti 的数据来自 Turing 分支 README 的表格:cuBLAS FP16 GEMM、FP32 累加、250 W、驱动 575.51.03,四个 M.N.K 尺寸,在戴尔 22 GB 卡上测得。该表直接给出 TFLOPS,括号里附 56.9 TF/s 峰值的百分比,这个峰值取自 NVIDIA Turing 白皮书;本页原样引用这些 TFLOPS。README 没有给出迭代次数,因此这里也不显示。
GeForce RTX 4090
| 模式 | 解锁前 | 解锁后 | 提升 |
|---|---|---|---|
f16/f16 | 325.70 TF/s | 331.60 TF/s | 1.02× |
f16/f32 | 165.60 TF/s | 330.80 TF/s | 2.00× |
bf16/f32 | 165.50 TF/s | 330.30 TF/s | 2.00× |
s8/s32 | 661.60 TF/s | 659.50 TF/s | 1.00× |
dp4a | 164.50 TF/s | 164.10 TF/s | 1.00× |
ffma | 79.10 TF/s | 79.10 TF/s | 1.00× |
GeForce RTX 4070 Ti SUPER
| 模式 | 解锁前 | 解锁后 | 提升 |
|---|---|---|---|
f16/f32 | 94.96 TFLOP/s | 188.97 TFLOP/s | 1.99× |
tf32 | 47.49 TFLOP/s | 94.51 TFLOP/s | 1.99× |
u4/s32 | 754.81 TOP/s | 754.68 TOP/s | 1.00× |
GeForce RTX 2080 Ti
| 模式 | 解锁前 | 解锁后 | 提升 |
|---|---|---|---|
f16/f32 1024³ | 50.30 TF/s | 68.30 TF/s | 1.36× |
f16/f32 2048³ | 55.70 TF/s | 91.40 TF/s | 1.64× |
f16/f32 4096³ | 53.70 TF/s | 81.70 TF/s | 1.52× |
f16/f32 8192³ | 52.80 TF/s | 77.90 TF/s | 1.48× |
没有变化的 FP8 一组
分支在 RTX 4070 Ti SUPER 上用同一份 CUTLASS profiler、单个内核、10 次预热与 20 次测量,对 E4M3 FP8 输入、FP32 累加的 4096³ GEMM 做了匹配测量,并要求设备参考校验。两次运行都通过了参考校验。
| 运行 | 毫秒 | GFLOP/s |
|---|---|---|
| 解锁前 | 2.31724 | 59325.8 |
| 解锁后 | 2.31066 | 59495.0 |
如何理解 1.00×
1.00× 不代表解锁失败。它说明那条路径本来就没有被限速,覆盖没有可恢复的东西。如果你在自己的卡上测出你关心的模式是 1.00×,解锁很可能确实生效了,只是对这个负载没有帮助。