Prhub

#39389 [NPU] [DOC] Rename NPU hardware to Ascend A2/A3 Series product

原始 PR 作者 amote-i 合并时间 2026-09-15 10:33 文件变更 66 提交数 2 评论 0 代码增减 +759 / -759

执行摘要

NPU 文档统一改用 Ascend A2/A3 系列产品名

PR body 明确说明动机:"Rename retired Atlas 800I A2/A3 and Ascend 910B/910C hardware names to the Ascend A2/A3/950PR/DT Series product naming across the docs"。即 Atlas 800I A2/A3、Ascend 910B/910C 属于已退役的旧产品名,文档需要与华为官方产品线命名保持一致,避免用户在 Ascend NPU 部署时因旧名造成混淆。

作为纯文档重命名 PR,不需要精读全部 diff;但维护文档 Playground 或 NPU 配方文档的同学值得关注两点:一是 _deployment.jsx 与各 Deployment 组件里 label/targetTabName 和 MDX Tab 的跨文件一致性契约,二是本文确立的 "A3 Series" 与 "Ascend A3 Series Products" 命名分层。后续 NPU 文档改动应以此 PR 为命名基线,避免再次引入 Atlas 800I/910B/910C 等旧名。

讨论亮点

该 PR 没有任何 review 评论与讨论线程,由 sglang-npu-bot 直接合入。唯一可观察到的演进信号来自作者的第二笔提交(b970d97):将第一笔提交中成对的硬件引用进一步收敛为 "A2/A3 Series" 与 "Ascend A2/A3 Series Products" 两种形式,说明命名规范在提交过程中被细化。最终同时存在三种写法:组件下拉/注释用 "A3 Series",Tab 匹配用 "Ascend A3 Series",文档表格列用 "Ascend A3 Series Products"。

实现拆解

  1. 全局替换硬件旧名(docs/docs):以 support_features.mdx(+310/-310)为代表,将 reference、best-practices、tutorials、optimization 等目录下 NPU 文档中的 "Atlas 800I A2/A3"、"Ascend 910B/910C" 等旧名改为 "Ascend A2/A3/950PR/DT Series" 官方产品名;qwen3_5_397b.mdx 等 best-practices 页面的 Hardware 列统一使用带 "Series Products" 后缀的完整产品名。
  2. 同步部署组件的展示 label(docs/src/snippets/_deployment.jsx):共享部署面板的 npu 硬件下拉选项 label 从 "Atlas 800I A3" 改为 "Ascend A3 Series",并同步更新注释(910C 已退役);该 label 是全局命名契约,所有配方页面复用它。
  3. 同步模型配方 JSX(diffusion 部署组件):qwen-image、flux、wan21、wan22、zimage-turbo 五个 Deployment 组件的硬件 items label 从 "A2"/"A3" 改为 "A2 Series"/"A3 Series",命令模板注释 "#One A3 card has 2 npu chips" 改为 "#One A3 Series card has 2 npu chips"。
  4. 同步 Tab 点击逻辑的匹配字符串:各 JSX 组件 useEffect 中 targetTabName 由 'Ascend A3'/'Ascend A2 / A3' 改为 'Ascend A3 Series'/'Ascend A2/A3 Series'。这是与 MDX Tab 文案的跨文件契约,需 trim 后全等匹配,任何一边漏改都会导致自动切 Tab 静默失败。
  5. 第二笔提交收敛命名形式(b970d97):对成对出现的 A2/A3 引用,采用紧凑写法 "A2/A3 Series" 或 "Ascend A2/A3 Series Products";kimi-k3.jsx 等高复杂度配方配置的注释也统一为 "A3 Series" 表述。
  6. 测试与 CI 配套:无测试文件变更,属于纯文档/展示层改动;PR Test 通过,PR Test (Extra) 显示 x,无 AMD 运行记录。
文件 模块 状态 重要度
docs/src/snippets/_deployment.jsx 部署面板 modified 4.62
docs/src/snippets/diffusion/qwen-image-deployment.jsx 部署组件 modified 4.94
docs/docs/hardware-platforms/ascend-npus/reference/support_features.mdx NPU 文档 modified 4.25
docs/docs/hardware-platforms/ascend-npus/model-deployment/best-practices/qwen3_5_397b.mdx 部署文档 modified 3.68
docs/src/snippets/configs/moonshotai/kimi-k3.jsx 配方配置 modified 4.37

关键符号

Deployment Playground QwenImageDeployment FluxDeployment Wan21Deployment Wan22Deployment ZImageTurboDeployment

关键源码片段

docs/src/snippets/_deployment.jsx data-contract

文档 Playground 的共享硬件下拉数据源,npu 硬件选项 label 从 "Atlas 800I A3" 改为 "Ascend A3 Series"。该 label 是全局命名契约,所有配方页面复用,是本次重命名在展示层的关键落点。

// 部署 Playground 的共享硬件选项表(Deployment 组件内部)。
// label 是用户可见的产品名,同时也是各配方 JSX 自动点击 Tab 时的匹配键,
// 命名改动必须与 MDX 页面上的 Tab 文案保持一致,否则切 Tab 会静默失败。
const hardwareTable = {
  amd: [
    { id: "mi350x", label: "MI350X", vram: "288GB" },
    { id: "mi355x", label: "MI355X", vram: "288GB" },
  ],
  // 旧产品名 Atlas 800I A3 (910C) 已退役,整体改用华为官方
  // Ascend A3 Series 产品命名;1 张卡 = 2 个 die,因此 --tp-size
  // 是卡数的 2 倍(32 卡 -> --tp-size 64)。
  npu: [
    { id: "a3", label: "Ascend A3 Series", vram: "64GB/die" },
  ],
};
docs/src/snippets/diffusion/qwen-image-deployment.jsx data-contract

代表一组 diffusion 部署组件(flux/wan21/wan22/zimage-turbo 同构改动):同时修改硬件选项 label 与自动切 Tab 的 targetTabName 字符串,完整展示了 JSX 与 MDX 之间的双端命名契约。

export const QwenImageDeployment = () => {
  const config = {
    modelFamily: 'Qwen-Image',
    options: {
      hardware: {
        name: 'hardware',
        title: 'Hardware Platform',
        items: [
          { id: 'b200', label: 'B200', default: true },
          { id: 'b300', label: 'B300', default: false },
          { id: 'h200', label: 'H200', default: false },
          { id: 'h100', label: 'H100', default: false },
          { id: 'mi300x', label: 'MI300X', default: false },
          { id: 'mi325x', label: 'MI325X', default: false },
          { id: 'mi355x', label: 'MI355X', default: false },
          // 退役名 A2/A3 -> 官方产品名 A2 Series/A3 Series
          { id: 'a2', label: 'A2 Series', default: false },
          { id: 'a3', label: 'A3 Series', default: false },
        ],
      },
    },
  };
​
  // 硬件切换后自动点击与硬件匹配的 Tab。targetTabName 与 MDX 页面的
  // Tab 文案必须 trim 后全等,任一端漏改都会导致自动切 Tab 静默失败。
  useEffect(() => {
    let targetTabName = 'AMD MI300X';
    if (values.hardware === 'a2') targetTabName = 'Ascend A2 Series';
    if (values.hardware === 'a3') targetTabName = 'Ascend A3 Series';
​
    const allTabs = document.querySelectorAll('button, [role="tab"]');
    allTabs.forEach((tab) => {
      const text = tab.textContent.trim();
      if (text === targetTabName && tab.getAttribute('aria-selected') !== 'true') {
        tab.click();
      }
    });
  }, [values.hardware]);
};

评论区精华

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

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

风险与影响

  • 跨文件 Tab 匹配契约:qwen-image/flux/wan21/wan22/zimage-turbo 的 targetTabName 与对应 MDX 页面 Tab 文案必须逐字一致(trim 后全等比较),66 个文件跨文档改名一旦有遗漏,自动切 Tab 会静默失败,且该行为没有自动化测试覆盖。
  • 三种命名形式并存:"A3 Series"、"Ascend A3 Series"、"Ascend A3 Series Products" 同时存在,后续新增 NPU 文档容易用错,需要维护者记住各自适用场景(组件/注释 vs Tab 匹配 vs 表格列)。
  • 旧名不可检索:910B/910C、Atlas 800I 等旧名被整体替换后,按旧名搜索的存量用户将无法命中文档。
  • 不影响运行时:全部改动限于 docs 与展示层 JSX 的 label/注释字符串,不涉及任何 sglang serve 参数、内核或推理逻辑。
  • 用户:Ascend NPU 用户看到的硬件命名与华为官方产品线一致,减少 Atlas 800I/910B/910C 等旧称带来的部署误解。
  • 系统:零运行时影响;文档站与 Playground 交互层面的 label/Tab 文案同步更新,需保证 JSX 与 MDX 两端一致。
  • 团队:66 个文件的全局重命名建立了一条 NPU 硬件命名基线,后续新增 NPU 配方文档时应沿用 "A2/A3 Series"(组件/注释)与 "Ascend A2/A3 Series Products"(表格/正文)的分层规范。
跨文件命名契约 无测试覆盖 旧名不可检索

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论