跳到主要内容
返回时间线
NVIDIA Technical Blog来源发表:

JAX 里的无丢弃 MoE 训练提速十倍:DeepSeek-V3 671B 在 1024 块 GPU 上仍保持 97% 扩展效率

核心概要

NVIDIA 把 Transformer Engine 的 MoE 优化接入 JAX 训练栈,让每个 token 都送进所选专家、不丢弃也不补齐。此前在 GB300 上训练 DeepSeek-V3 时,未优化基线只有 103 TFLOPS/GPU,跨 GPU 通信占累计内核时间的 84%;加入分组 GEMM、MXFP8 分组量化和融合的专家并行收发后达到 1,068 TFLOPS/GPU,端到端吞吐约提升 10 倍,并在 1,024 块 GPU 上维持 97% 扩展效率。

AI-generated editorial illustration: Accelerating Dropless MoE Training in JAX with NVIDIA Transformer Engine

深度剖析

无丢弃 MoE 训练现在可以在 JAX 栈上跑满硬件,每个 token 都交给路由器选中的专家处理,不再因负载不均被裁掉或补齐。 此前的 JAX 训练栈在 GB300 上训练 DeepSeek-V3 时,未优化基线只有 103 TFLOPS/GPU,跨 GPU 通信吃掉累计内核时间的 84%,GPU 大量时间在等数据。 同一 DeepSeek-V3 训练在加入 Transformer Engine 的目标内核优化后达到 1,068 TFLOPS/GPU,相对该基线为 10.4 倍;端到端吞吐提升约 10 倍。

做法是把专家计算、量化、token 收发和通信调度各自换成能直接处理变长分组的实现。 分组 GEMM 用一次内核调用完成所有专家的矩阵乘,每个专家按自己的实际 token 数计算,只算有有效 token 的区域;它由 cuBLAS 和 cuBLASLt 支撑,在 Blackwell 上还启用 MXFP8 块缩放。 专家并行的分发与合并被融合成一条内核路径,由面向不均衡流量的 NCCL EP 后端驱动,同一 token 发往同一节点多个专家时只过一次网络;XLA 多流集合通信把跨节点 InfiniBand 传输与节点内 NVLink 通信重叠,延迟隐藏调度器自动判断哪些集合通信可安全重叠。

规模上去以后,通信开销通常比计算涨得更快,而这套栈把退化压住了。 多机架扩展是多数系统吃力的地方,通信开销往往先于计算成为瓶颈。 应用 JAX MoE 与 Transformer Engine 栈后,系统在 1,024 块 GPU 上维持 97% 效率;这些优化随内置 Transformer Engine 的 NVIDIA NGC MaxText 容器发布。

启示与展望

已展示的范围是 DeepSeek-V3 671B 在 NVIDIA GB300 上的 JAX 训练,吞吐数字来自该模型的训练配置,扩展效率报告到 1,024 块 GPU。随容器发布的参考配置针对 DeepSeek-V3,文中说明不同模型需要不同调参;建议先在小 MoE 模型上验证正确性,再逐步放大并跟踪步时、TFLOPS/GPU、MFU、分组 GEMM 延迟和 MoE 分发/合并延迟。

文中给出的 97% 扩展效率止于 1,024 块 GPU,更大规模下的表现未报告;吞吐与扩展数字都绑定 DeepSeek-V3 671B 及其训练配置,其他模型需要不同调参。NVFP4、量化与 GEMM 融合、A2A 重叠被列为后续计划,尚未包含在本次结果中。