在大规模混合专家模型(MoE,如 DeepSeek-V3 和 Llama 4-Scout)的训练中,保持高效率是当代人工智能面临的挑战之一。这些模型将 GPU、网络和编译器的性能推向了极限。为了解决这一问题,AMD 与 Meta 的 PyTorch 团队联手,针对新型 Instinct MI325X GPU 优化了 TorchTitan 和 AMD 的开源内核库 Primus-Turbo。双方共同实现了 1,024 个 GPU 近乎理想的扩展效率,证明了效率与规模并非不可兼得。

概览

通过利用 TorchTitan、Primus-Turbo 内核以及 MI325X 的硬件能力,我们实现了:

  • 2.77 倍加速:通过内核级优化提升 DeepSeek-V3-671B 训练速度
  • 96% 的扩展效率:DeepSeek-V3-671B 在 128 到 1,024 个 GPU 之间的扩展表现
  • 完美的线性扩展:Llama 4-Scout(32 到 512 个 GPU)
  • 完全开源的技术栈:基于 TorchTitan + Primus-Turbo 构建

什么是 TorchTitan?

TorchTitan 是 Meta 推出的原生 PyTorch 蓝图,旨在支持跨多 GPU 和多节点集群的大规模训练。它将适用于现代大语言模型 (LLM) 和 MoE 模型的成熟配方整合进一个可配置的训练栈中,使开发者能够从早期实验到全规模运行复用同一套代码路径。

配置优先的扩展性

只需在一个 TOML 文件中设置流水线并行、张量并行、数据并行或专家并行程度,TorchTitan 即可自动构建作业、连接 NCCL/RCCL 组,并在单个 GPU 或上千个 GPU 上运行相同的脚本。

广泛的架构覆盖

通过统一的 TorchTitan 配置,即可训练稠密模型(Llama 3)、混合模型(Qwen 3)和稀疏 MoE 模型(DeepSeek-V3, Llama 4)。

模块化设计

诸如 AMD FP8 Primus-Turbo 等优化内核可直接插入,无需更改代码,且同一接口可兼容未来的训练后工作流。

简而言之,TorchTitan 为扩展任何模型(无论是稠密还是稀疏)提供了一条统一、可组合的路径,从笔记本电脑原型到集群生产环境均适用。

理解混合专家 (MoE) 模型

混合专家模型是一种稀疏激活的 Transformer 替代方案。在标准模型中,每个 token 都会流经同一个前馈块,因此参数加倍意味着计算量加倍。MoE 层用一组专业专家替换了单个 MLP。一个学习型路由程序会检查每个 token,并仅将其发送给其中少数(例如 k 个)专家。

图 1:稠密层与 MoE 层架构对比

由于每个 token 仅由少数几个专家处理,因此每个 token 的计算预算现在随着较小的 k 值而不是专家总数来扩展。内存遵循同样的模式:如果应用了专家并行,每个 GPU 只存储其拥有的专家参数,从而留出空间来增加隐藏维度、序列长度或词汇量,而不会超出设备限制。专家本身是普通的 MLP 块,因此增加容量就像复制更多副本一样简单,而无需拓宽每一层。

这种经济性使得 MoE 模型能够在以稠密模型速度进行训练的同时,参数规模扩展到数千亿级别。DeepSeek-V3 和 Llama 4 展示了这种优势,通过融合 MoE 层和稠密层,在当前硬件上平衡了容量、准确性和效率。

MoE 预训练的挑战

虽然 MoE 模型具有极具吸引力的优势,但在大规模训练时,必须解决一些独特的挑战才能实现高效的分布式训练。

内核效率

微小矩阵乘法 (GEMM) → GPU 利用率低:路由后,每个专家仅处理极少数 token,导致矩阵乘法 (GEMM) 操作变得极小。这些微型 GEMM 无法使 GPU 的计算单元保持满负荷,并引入了显著的启动和数据移动开销。

通信

繁重的 All-to-All 通信 → 网络瓶颈:专家并行将 token 嵌入分散到拥有所选专家的 GPU 上。因此,每次前向传播都会触发繁重的 All-to-All 集体通信。随着集群规模扩大,通信时间可能超过计算时间,成为主要瓶颈。

并行策略

复杂的并行化 → 因管道不同步导致的空转:现代训练通常结合完全分片数据并行 (FSDP) 以节省内存,流水线并行以增加深度,以及专家并行以增加宽度。如果它们的微批次或调度不同步,就会出现“气泡”——即部分 GPU 空闲而其他 GPU 工作的时间段,导致利用率低下。

路由与稳定性

不稳定的路由 → 专家负载不均:学习型路由程序必须在遵守容量限制的同时,在专家之间均匀分配 token。偏斜的 token 计数、专家过载或丢弃的 token 可能会减缓收敛速度或降低最终模型质量。

我们从三个方面解决了这些预训练障碍:AMD Instinct MI325X GPU 提供 256GB HBM3E 和超过 6TB/s 的带宽,加上 FP8 张量核心,使 MoE 专家保持本地化和计算密集型;TorchTitan 并行策略(FSDP + PP/VPP + EP)平衡了计算和通信;Primus-Turbo 的 FP8 注意力和分组 GEMM 内核将 MoE 的微型 GEMM 转变为高占用、高吞吐量的操作。

AMD Instinct™ MI325X:硬件与软件栈

图 2:AMD Instinct MI325X 规格

Instinct MI325X 将 256 GB HBM3E 与超过 6 TB/s 的封装内带宽以及 Petaflop 级的 FP8/BF16 矩阵核心相结合。如此巨大的快速内存使得 MoE 可以在本地设备上运行其大部分专家,而不是分散在整个集群中,这同时带来了三个好处:

  • 单 GPU 专家数量更多 —— 在不将模型碎片化成更小分片的情况下增加容量。
  • 更高的容量因子,更少的 token 丢弃 —— 路由程序可以将额外的 token 分配给忙碌的专家而不会耗尽内存,从而稳定训练。
  • 更少的 All-to-All 流量 —— 较小的专家并行度缩小了集合通信的占用空间,使得通信不再主导墙上时钟时间。

在实践中,MI325X 的内存裕量和带宽将通常的网络瓶颈转化为插槽内工作负载,即使在大规模环境下也能使 MoE 训练保持在计算密集型状态。

并行策略设计

我们支持在 AMD GPU 上进行多维并行策略:

  • 专家并行 (EP) 将专家池划分到节点内的 GPU 上,并在模型无法适应单个节点时跨节点划分。这使我们能够增加专家数量,同时保持每个 GPU 的专家状态在有限范围内,并避免过于微小的专家分片。
  • 完全分片数据并行 (FSDP) 在数据并行组中切分参数、梯度和优化器状态,将每个 GPU 的模型占用空间减少约数据并行度倍,从而使大型检查点能够舒适地放入 MI325X 的 256 GB HBM 中。
  • 流水线 + 虚拟流水线并行 (PP + VPP) 将层划分为多个阶段并交错进行前向和后向步骤;VPP 进一步将每个阶段细分为虚拟块,以便微批次交错运行并减少流水线空闲时间。

通过 EP 处理宽度,FSDP 处理内存,PP + VPP 重叠前向和后向传递以减少流水线气泡,该技术栈协调了 GPU 算术、HBM 带宽和 400 Gb RoCE 流量——确保没有任何单一维度成为瓶颈。

图 3:PP 调度——蓝色/橙色热图显示了 VPP 如何重叠前向/后向传递

Primus-Turbo:AMD 加速库

Primus-Turbo 是一个致力于 AMD GPU 上大规模模型训练的高性能加速库。在此技术栈中,Primus-Turbo 是本工作所使用的 ROCm 优化内核库。它提供高性能算子(GEMM、注意力机制、分组 GEMM)、通信原语(包括 All-to-All/DeepEP)、优化器实用程序以及用于在 AMD Instinct™ GPU 上进行高效训练的低精度内核(如 FP8)。

图 4:Primus-Turbo 架构

关键组件

组件 功能
GEMM – 支持 BF16/FP16

– 支持 FP8 (E4M3/E5M2),具有张量级、行级和块级量化
– FP6 和 FP4(针对 MI350 及更高版本开发中)

分组 GEMM – 支持 BF16/FP16

– 支持低精度(如 FP8 (E4M3/E5M2)),具有张量级、行级和块级量化

注意力 – 支持 BF16/FP16

– 支持低精度(如 FP8 (E4M3/E5M2)),具有块级量化

DeepEP – 支持节点内和节点间

– 支持 Mellanox;Broadcom NIC 和 AMD AINIC(均在开发中)

All2All – 支持低精度(如 FP8 (E4M3/E5M2)),具有张量级和行级量化
逐元素算子 (Elementwise Ops) – 支持归一化、激活函数、RoPE 等

集成示例

在 MI325X 集群上的大规模预训练

所有实验均在配备 1024 个 AMD Instinct MI325X GPU 的 TensorWave 集群上运行。每个 GPU 连接一个 400Gb RoCE v2 Broadcom Thor 2 NIC,节点采用三层胖树拓扑结构。该设计提供了全分段带宽,因此专家并行 All-to-All 流量永远不会遇到网络瓶颈。TorchTitan 和 Primus-Turbo 提供了软件栈。

图 5:具有 3 层胖树网络拓扑的 MI325X 集群

通过 Primus-Turbo 优化 DeepSeekV3-671B 性能

首先,我们在 64 个 MI325X 节点上对 DeepSeek-V3-671B 进行了完整运行分析,以确定内核热点,如注意力内核和图 6 中的分组 GEMM。

实验配置

层数 序列长度 EP (专家并行度) PP (流水线并行度) VPP (虚拟流水线并行度) 批次大小
64 4096 8 8 4 16

 图 6:显示注意力内核和 FP8 分组 GEMM 内核优化目标的内核分析

使用 Primus-Turbo,我们解决了这些问题并测量了每一步后的吞吐量,如图 7 中的条形图所示。

图 7:64 个节点(512 个 GPU)上的逐步性能优化

  1. 启用 AITER 注意力。 吞吐量提升约 15%。(要了解有关 AITER 的更多信息: AITER 博客
  2. 用于稠密层的 FP8 GEMM。 将线性层切换到张量级 FP8,减少了内存流量并使有效 FLOPS 加倍,在此前的运行基础上又增加了约 102%。
  3. 用于专家的 FP8 分组 GEMM。 最后,结合置换和计算的融合内核消除了微型 GEMM 瓶颈,并额外带来了约 60% 的增益。

叠加在一起,这些优化使得端到端训练速度比基准提升了 2.77 倍,将 MI325X 集群转变为一台计算密集型而非带宽密集型的 MoE 训练机器。

DeepSeekV3-671B 预训练扩展

图 8:DeepSeekV3-671B 在 MI325 集群上的扩展效率

从 256 个 GPU 开始,吞吐量保持在接近理想水平的范围内:在 512 个 GPU 上为 97%,在 1024 个 GPU 的满规模下为 96%,这证明了软硬件结合的技术栈能够协调八路流水线阶段、专家路由和 FP8 内核,且不会浪费时钟周期。

DeepSeekV3 预训练收敛

图 9:DeepSeek-V3 在 MI325X 集群上的损失

为验证速度并未以牺牲质量为代价,我们使用 allenai/c4 数据集在 32 个 MI325X 节点(256 个 GPU)上跟踪了 DeepSeek-V3 FP8 的训练损失。曲线显示 900 次迭代中呈现平滑、单调的下降,与其他平台上的参考表现相匹配,证实了 FP8 内核、专家路由和并行调度按预期收敛。

Llama4-Scout 预训练扩展

图 10:Llama4-Scout 在 MI325X 集群上的扩展效率

随着 FSDP 与 EP=8 的结合,当我们将集群规模从 32 个增加到 512 个 GPU 时,Llama-4 Scout 保持了 100–102% 的扩展效率,证明了相同的优化可以干净利落地迁移到其他 MoE 架构中。

DeepEP — 有效控制专家流量

在上述实验中,我们应用了 EP=8,因为增加专家并行度会使 All-to-All 通信步骤变得代价高昂。为了在增加 EP 度时缓解这种影响,Primus-Turbo 还提供了 DeepEP 来加速 All-to-All 性能。下图比较了在 16 节点 MI325X 集群上训练 DeepSeek-V3 671B(24 层,PP 4 + VPP 3,本地 batch 16)时,标准 All-to-All 实现(红色)与 DeepEP(蓝色)的表现。随着专家并行度 (EP) 从 8 增加到 32,普通 All-to-All 的吞吐量从约 2000 TPS 下降到约 750 TPS,其占总运行时间的比例从 10% 激增至近 50%。DeepEP 将吞吐量保持在 2000–2100 TPS 左右,即便在 EP 32 时,通信的总运行时间占比也控制在约 18%,从而使可扩展性曲线保持平坦。

图 11:不同 EP 度下的 DeepEP 性能分析(DeepSeek-V3 671B, EP=8/16/32, LBS=16, PP=4, VPP=3, 24 层, 16 节点)

Primus-Turbo 构建在 ROCm DeepEP (https://github.com/ROCm/DeepEP) 之上,并进行了额外的性能改进,例如在训练工作负载中无需 CPU/GPU 同步(可在 https://github.com/AMD-AGI/Primus-Turbo 获取)。

结论与后续步骤

我们与 Meta 的联合工作表明,AMD Instinct MI325X 硬件结合 TorchTitan 和开源 Primus-Turbo 库,为现代 MoE 预训练模型提供了生产级的吞吐量。DeepSeek-V3 在高达 1024 个 GPU 上达到了超过 96% 的扩展效率;Llama-4 Scout 显示出更高的线性扩展效率。内核级调整(FP8 GEMM、分组 GEMM 和 Aiter 注意力)将端到端性能提升了 2.77 倍,且我们所有的实现均为开源。

下一步工作

  • 流水线演进。 DualPIPE 和其他高级调度将进一步减少深流水线中的空闲气泡。
  • 更广泛的内核覆盖。 正在进行的 FP6/FP4 支持和新算子旨在瞄准下一波 MoE 和稀疏张量架构。
  • 下一代硬件。 正在为 MI450 GPU 和 Helios AI 机架做准备,以将今天的成果扩展到更大的集群。
  • 开源扩展。 对 TorchTitan 的持续支持,以及对 Monarch, TorchForge 等项目的贡献。

总之,这些努力旨在保持 AMD 平台在大规模、高成本效益 MoE 训练领域的前沿地位。

了解更多

开源仓库

文档

免责声明

第三方内容由拥有该内容的第三方直接许可给您,而非由 AMD 许可给您。所有链接的第三方内容均按“原样”提供,不提供任何形式的担保。使用此类第三方内容完全由您自行决定,在任何情况下,AMD 均不对您因使用第三方内容而产生的任何损害负责。您承担所有风险,并对因使用第三方内容可能引起的任何损害负全部责任。