内存优化
本仓库很多价值都来自于减少不必要的内存搬运。
为什么融合有效
很多 Transformer 子图的瓶颈并不只是算力,还来自中间张量频繁写回再读回 HBM。
融合的核心价值,就是让中间值尽量留在更靠近计算的位置,而不是先写回全局显存再被下一个算子读走。
fused_rmsnorm_rope
最大的收益是:归一化结果不需要先落成单独的全局张量,再去做 RoPE。
实际效果:
- 更少的 HBM 读写,
- 比拆成两个操作更少的 launch 开销,
- 整体更偏向带宽优化问题。
fused_gated_mlp
输入 tile 会在一次 kernel 路径里复用到两条投影中,随后完成激活与相乘,再写出最终结果。
这减少了如果拆成多个 operator 时会出现的中间张量搬运。
FP8 路径
fp8_gemm 还通过使用单字节量化矩阵来降低内存压力。
它同时影响:
- 存储占用,
- 每次矩阵读取所需搬运的字节数。
代价是会引入受控的量化误差,这也是为什么 FP8 指南强调一定要和 baseline 对比。
实践中需要关注的点
- tensor 是否 contiguous,
- 形状是否适合当前 kernel 的分块策略,
- 真实 workload 的瓶颈是否确实位于这些融合片段,而不是位于外围模型代码。
结论
当被减少的内存往返本来就占了显著成本时,本仓库的收益最大。也就是说,它最适合放在那些原本会频繁把中间结果写回 HBM 的热点路径上。