Day 14 · 实测峰值算力:大方阵 matmul 能打到几成
昨天测了斜线,今天测屋顶。用大方阵矩阵乘法把 T4 真正能算多快测出来:FLOPs = 2MNK 除以时间。坑比带宽多:矩阵不够大打不满、fp32 的标称是另一个数、fp16 要真走 tensor core 才对得上 65 TFLOPS、A100 的 624 是稀疏值。顺手算出方阵多大才跨过 ridge point。
昨天测了斜线,今天测屋顶。用大方阵矩阵乘法把 T4 真正能算多快测出来:FLOPs = 2MNK 除以时间。坑比带宽多:矩阵不够大打不满、fp32 的标称是另一个数、fp16 要真走 tensor core 才对得上 65 TFLOPS、A100 的 624 是稀疏值。顺手算出方阵多大才跨过 ridge point。
W3 开工。标称 320 GB/s 是纸面数字,今天用一次最简单的逐元素加法,把 T4 真正能搬多快测出来,再把这个实测值装回 Day 5 的 decode 下限公式里。顺手踩清三个坑:字节只算读没算写、张量小到落进 L2、没 synchronize。
计时器只给一个数,profiler 给每个 kernel 的名字和时长。今天把 Day 9 那个比值拆开:一步 decode 里 GPU 真正在跑的是哪几个 kernel,各对应模型的哪一部分,CPU 那边又在干什么。
一次 generate 的耗时里藏着两个性格完全不同的数:首 token 时间和后续每 token 时间。今天把它们拆开,各自算出理论下限,然后用一个比值回答 W1 那张表能不能信。
W1 一行代码没写,今天开始写。在 Colab 的免费 T4 上加载一个 1.1B 的模型跑通 generate,搞清第一次为什么慢好几倍,再把连续十次运行的延迟方差压到 10% 以内。这周所有实测数字的可信度,从今天的 warmup 开始。