Prhub

#2660 [AMD] Point the ROCm image at the v0.5.16 wheels release with TE 2.17.0

原始 PR 作者 JessicaJiang-123 合并时间 2026-08-20 10:52 文件变更 2 提交数 2 评论 0 代码增减 +2 / -3

执行摘要

ROCm 镜像升级 wheels 并切换 FP8 块缩放策略

PR 标题和提交信息表明需要将 ROCm 镜像指向 v0.5.16 wheels 发布(包含 TE 2.17.0),同时调整 FP8 缩放设置。由于 TE 版本升级,NVTE_FP8_BLOCK_SCALING_FP32_SCALES 的值从 '1' 改为 '0',可能因为 TE 2.17.0 不再推荐 FP32 缩放,或需要与 wheels 中的新构建保持一致。

值得轻度关注,尤其是 AMD 团队。建议精读以理解 TE 2.17.0 的行为变化,并测试 FP8 缩放调整对模型收敛的影响。由于改动小,没有复杂的架构决策。

讨论亮点

无人工 review 评论,claude[bot] 自动审查因 fork 而禁用,仅 guapisolo 批准。

实现拆解

  1. 修改 docker/Dockerfile.rocm,将 WHEELS_TAG_ROCM 从 'rocm720-gfx950-v0.5.14' 更新为 'rocm720-gfx950-v0.5.16',确保镜像使用包含 TE 2.17.0 的预编译 wheels。
  2. 修改 scripts/amd/run_deepseek_v4.py,在启用 FP8 训练时,将 NVTE_FP8_BLOCK_SCALING_FP32_SCALES 从 '1' 改为 '0',并移除对应的注释。这意味着块缩放使用非 FP32 尺度(可能为 BF16),与 TE 2.17.0 的默认行为对齐。
  3. 测试配套:无直接测试文件变更,但需要后续的镜像构建和训练运行验证。
文件 模块 状态 重要度
scripts/amd/run_deepseek_v4.py AMD 脚本 modified 4.7
docker/Dockerfile.rocm Docker modified 2.64

关键符号

_train

关键源码片段

scripts/amd/run_deepseek_v4.py core-logic

修改 FP8 训练时的缩放环境变量,直接影响数值稳定性和性能

if args.fp8_training:
    misc_args += "--transformer-impl transformer_engine " "--bf16 " "--fp8-format e4m3 " "--fp8-recipe blockwise "
    # TE 2.17.0 更新后,gfx950 改用非 FP32 块缩放,这里关闭 FP32 尺度
    misc_args += """--train-env-vars '{"NVTE_FP8_BLOCK_SCALING_FP32_SCALES":"0"}' """
    # ROCm TE MoE FP8 缺乏融合的 wgrad 累加,禁用该融合
    misc_args += "--no-gradient-accumulation-fusion "

评论区精华

没有提炼出高价值讨论线程

当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。

风险与影响

风险较低。wheels 版本升级可能引入 TE 2.17.0 的其他行为变化,影响训练稳定性和性能。FP8 缩放策略从 FP32 改为非 FP32,可能影响模型精度和收敛,需要在 gfx950 上实际训练验证。若不匹配,可能导致数值不稳定或性能下降。

影响范围限于 ROCm 后端(AMD GPU)的 DeepSeek-V4 训练。更新 Dockerfile 会影响所有从该镜像构建的部署。FP8 缩放改变会影响训练精度和速度,但对用户透明。团队需重新构建镜像并验证训练任务。

依赖版本升级 数值精度变化 缺少测试覆盖

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

参与讨论