Skip to content

fix: match LayerNorm autocast policy - #263

Merged
chen2021673 merged 1 commit into
masterfrom
fix/layernorm-autocast-policy
Nov 10, 2026
Merged

chen2021673 merged 1 commit into
masterfrom
fix/layernorm-autocast-policy

Conversation

@JYMiracle305

@JYMiracle305 JYMiracle305 commented Nov 10, 2026 •

Copy link
Copy Markdown
Contributor

背景

LayerNorm autograd function 注册的 op 名是 LayerNormFunction,autocast 去掉 Function 后缀后实际查找的是 LayerNorm。但 cast policy 表里写成了 Layernorm,导致预期的 FP32 autocast policy 没有匹配成功,BF16 输入仍保持 BF16。

在 BF16 训练路径中,这会暴露 dtype 不一致问题,尤其是相邻 Linear backward kernel 会将梯度提升为 FP32 的场景。

修改内容

  • 将 LayerNorm autocast policy key 从 Layernorm 修正为 LayerNorm。
  • 增加 CPU/CUDA 参数化回归测试,验证 BF16 LayerNorm 输入在 autocast 下会提升为 FP32。
  • 按 IWYU 要求补充测试中的 device.h include。

@JYMiracle305
JYMiracle305 force-pushed the fix/layernorm-autocast-policy branch from 8e5313e to 6170847 Compare November 10, 2026 07:40
@JYMiracle305

Copy link
Copy Markdown
Contributor Author

精度对比

Image

性能对比

Image

@chen2021673
chen2021673 merged commit e19a56d into master Nov 10, 2026
3 checks passed
@chen2021673
chen2021673 deleted the fix/layernorm-autocast-policy branch November 10, 2026 09:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants