@ArkadiiBessonov: LLM预训练中使用FP8的三种主要方法——区别主要在于scale的附加方式。per-tens…

X AI KOLs Timeline 新闻

摘要

解释了LLM预训练中FP8缩放的三种主要方法——per-tensor、blockwise和MXFP8——重点关注scale的附加方式,并根据scale必须在matmul的收缩维度上保持恒定这一约束,推导出tile几何形状。

LLM预训练中使用FP8的三种主要方法——主要区别在于scale的附加方式。 per-tensor vs blockwise vs MXFP8。 为什么预训练在这里有如此多的结构:前向+反向传播涉及3个matmul(Fprop、Dgrad、Wgrad),跨越3个张量角色(权重、激活、梯度)。每个角色都需要自己的scale布局——这就是所有复杂性的来源。 三种方法在scale的附加方式上有所不同——粒度、数据类型、布局: — Per-tensor:整个张量只有一个scale。最简单,但对异常值最不鲁棒。 — Blockwise:1×128 / 128×128 tile,FP32 scale。DeepSeek-V3风格。 — MXFP8:1×32块 + E8M0 scale。Blackwell原生支持。 一个规则将一切联系在一起:scale必须在matmul的收缩维度上保持恒定。仅此一个约束就推导出了上述所有tile几何形状——这里没有任何随意之处。 我根据每种方法和每个matmul绘制了每种布局,因此几何形状是具体的,而非模糊不清。 在我的博客文章中有完整指南(评论中的链接)!
查看原文
查看缓存全文

缓存时间: 2026/06/28 18:13

大语言模型预训练中使用 FP8 的三种主要方法——它们主要在一个方面有所不同:如何附加缩放因子。

per-tensor vs blockwise vs MXFP8.

为什么预训练在这里有如此多的结构:前向+反向传播包含 3 个矩阵乘法(Fprop、Dgrad、Wgrad),涉及 3 种张量角色(权重、激活、梯度)。每种角色都希望有自己的缩放布局——这就是所有复杂性所在。

这三种方案在缩放因子的附加方式上有所不同——粒度、数据类型、布局:

— Per-tensor:整个张量一个缩放因子。最简单,对异常值最不鲁棒。 — Blockwise:1×128 / 128×128 分块,FP32 缩放因子。DeepSeek-V3 风格。 — MXFP8:1×32 块 + E8M0 缩放因子。Blackwell 原生支持。

一条规则将所有内容联系在一起:沿矩阵乘法的收缩维度,缩放因子必须保持不变。这一单一约束推导出了上述所有分块几何形状——这里没有任何任意之处。

我绘制了每种方案和每个矩阵乘法的每种布局,使几何形状具体化而非模糊不清。

完整讲解请参见我的博客文章(评论中的链接)!

完整阐述——每种方案、每个矩阵乘法,均已绘制:

相似文章