Prhub

#28471 docs(cookbook): add AMD MI300X/MI325X/MI355X support for GLM-5.2

原始 PR 作者 andyluo7 合并时间 2026-07-01 05:08 文件变更 3 提交数 12 评论 13 代码增减 +324 / -5

执行摘要

为 GLM-5.2 Cookbook 添加 AMD MI300X/MI325X/MI355X 支持

扩大 GLM-5.2 的硬件覆盖范围,使 AMD 用户也能在 MI300X/MI325X/MI355X 上部署该模型。PR body 中提到:GLM-5.2 与 GLM-5.1 / DeepSeek-V3.2 架构相同,验证过的 ROCm 配方可直接携带,仅需更换模型路径。

该 PR 值得精读,特别是学习如何通过 disable + disableReason 优雅处理硬件限制,以及如何基于已验证的架构快速扩展多硬件支持。文档中的警告和版本固定策略也值得借鉴。

讨论亮点
  • 审核者要求禁用 AMD MTP:zijiexia 要求禁用 AMD 的 MTP 选项,因为 AMD 暂不支持。作者响应并添加了 disable 逻辑和详细原因。
  • BF16 适配性讨论:zijiexia 询问 BF16 是否适合单节点 MI300X,作者确认 MI300X 内存不足后移除了 MI300X BF16 配置。
  • gfx950 精度 bug 的发现与修复:作者在验证时发现 block-FP8 GEMM 内核存在 bug,导致 GSM8K 准确率接近 0,并提交了上游修复 PR #28685。后续通过更新镜像版本解决,并在文档中固定了正确镜像。

实现拆解

  1. 修改部署面板配置 (glm-5.2.jsx):在 supportedHardware 中添加 mi355x, mi325x, mi300x;添加对应硬件专用 ROCm Docker 镜像;在 Playground 的 Attention 卡片中将 AMD 硬件加入 CP 的禁用列表并更新禁用原因;在 Speculative 卡片中将 AMD 硬件加入 MTP 选项的禁用列表并添加禁用原因;在 cells 数组中新增 AMD 硬件的配置单元格(low-latency / balanced / high-throughput),使用 DSA tilelang 后端。

  2. 添加基准数据 (glm-5.2-benchmarks.jsx):新增 MI355X + FP8 在三种策略下的基准测试数据(TTFT、TPOT、吞吐量)。

  3. 更新用户文档 (GLM-5.2.mdx):修改 description 以包含 AMD GPU;新增 "AMD GPUs (MI300X / MI325X / MI355X)" 配置提示;添加 <Warning> 组件说明 gfx950 block-FP8 精度问题(已修复,但用于提醒用户使用指定镜像版本)。

文件 模块 状态 重要度
docs_new/src/snippets/configs/zai-org/glm-5.2.jsx 部署面板 modified 7.12
docs_new/src/snippets/configs/zai-org/glm-5.2-benchmarks.jsx 基准数据 modified 5.71
docs_new/cookbook/autoregressive/GLM/GLM-5.2.mdx 用户文档 modified 3.16

关键源码片段

docs_new/src/snippets/configs/zai-org/glm-5.2.jsx core-logic

核心配置文件,添加 AMD 硬件支持、Docker 镜像、禁用逻辑和配置单元格

// Playground 中 "Speculative Decoding" 卡片的配置
// 展示如何为特定硬件(AMD)禁用选项,并通过 disableReason 向用户解释
speculative: {
  options: [
    { id: "current", label: "Inherited from base" },
    { id: "off", label: "Off (greedy)" },
    // MTP 5-1-6 选项:在 NVIDIA 上启用,在 AMD 上禁用(原因说明)
    { id: "mtp-516", label: "EAGLE / MTP 5-1-6 (low-latency)",
      flags: ["--speculative-algorithm EAGLE", "--speculative-num-steps 5",
              "--speculative-eagle-topk 1", "--speculative-num-draft-tokens 6"],
      disable: { hw: ["mi355x", "mi325x", "mi300x"] },
      disableReason: "MTP/EAGLE speculative decoding is not yet validated on AMD ROCm (MI300X/MI325X/MI355X): the gfx950 spec-decode draft kernel is not yet validated and at --speculative-num-steps > 3 hits a separate build issue; the DSA nextn draft path is CUDA-only." },
    // MTP 1-1-2 选项:类似禁用逻辑
    { id: "mtp-112", label: "EAGLE / MTP 1-1-2 (balanced)",
      flags: ["--speculative-algorithm EAGLE", "--speculative-num-steps 1",
              "--speculative-eagle-topk 1", "--speculative-num-draft-tokens 2"],
      disable: { hw: ["mi355x", "mi325x", "mi300x"] },
      disableReason: "MTP/EAGLE speculative decoding is not yet validated on AMD ROCm (MI300X/MI325X/MI355X): the gfx950 spec-decode draft kernel is not yet validated and at --speculative-num-steps > 3 hits a separate build issue; the DSA nextn draft path is CUDA-only." },
  ],
},

评论区精华

要求禁用 AMD MTP 选项 设计

审核者 zijiexia 要求禁用 AMD 的 MTP 选项,因为 AMD 暂不支持 MTP。作者回复已添加 disable 逻辑及详细原因。

结论:在 speculative 选项的 mtp-516 和 mtp-112 中添加 disable: { hw: ["mi355x","mi325x","mi300x"] } 以及 disableReason。 · 已解决

BF16 是否适配 MI300X 单节点 question

审核者询问 BF16 权重是否适合单节点 MI300X。作者核实后确认 MI300X 1.5 TB HBM 无法容纳 BF16 约 1.51 TB 权重加 KV cache,因此移除了 MI300X 的 BF16 配置。

结论:MI300X 不支持单节点 BF16,仅推荐 FP8;MI325X/MI355X 可支持。 · 已解决

gfx950 block-FP8 精度 bug 的发现与修复 正确性

作者在验证时发现 gfx950 上的 block-FP8 GEMM 内核存在 bug,导致 GSM8K 准确率接近 0。向上游提交修复 PR #28685,并在文档中添加警告和固定镜像版本。后续验证确认在 0618 镜像上已修复。

结论:文档始终固定到 v0.5.13.post1-rocm720-mi35x-20260618 镜像,包含修复。 · 已解决

风险与影响

  • 精度风险:如果用户使用早于 2026-06-18 的 ROCm 镜像,gfx950 上的 block-FP8 输出不可信。文档已固定正确镜像版本,但仍需关注。
  • 兼容性风险:AMD 上的 MTP 和 CP 功能被禁用,如果用户强制启用可能失败。配置通过 disable 机制阻止,但后续版本更新需重新验证。
  • 依赖风险:依赖特定 ROCm 镜像和内核版本,AMD 驱动更新可能导致配置失效。
  • 用户影响:AMD 用户现在有明确的部署指南,可快速部署 GLM-5.2。由于使用了固定镜像版本,用户需拉取对应镜像。
  • 团队影响:维护成本增加,需跟踪 AMD 版本更新,并有更多硬件组合需要验证。
镜像版本绑定 硬件限制未验证 精度问题已修复

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论