姚鑫 | NVIDIA GPU加速计算专家团队 高级工程师 | NVIDIA AI Open Day, Nov. 7th, 2025
该方案的软件栈构建于 Transformer Layer 之上,主要由 Megatron-Core 和 Transformer Engine 两部分组成。
Megatron-Core
* 模型定义
* 模型并行化
* 流水线并行调度 (Pipeline parallel schedule)
* EP alltoall 重叠 (EP alltoall overlap)
* MoE 并行折叠 (MoE Parallel folding)
优化器 (Optimizer)
检查点 (Checkpoint)
Transformer Engine
低精度 (Low-precision)
GEMM 实现
核函数优化 (Kernel optimizations)
Attention 后端实现
性能优化的过程遵循一个迭代循环:
下图展示了 Transformer 层的数据流和各模块的计算精度。其中,权重(Weights)使用 MXFP8 精度,而激活值(activations)在 BF16 和 MXFP8 之间转换。
除了上述配置外,还包括以下设置:
3. 端到端性能
4. 强制平衡,不使用 MTP
5. 开始性能研究时已具备的特性:
a. MXFP8 配方
b. Blackwell 上的 MLA attention kernels
c. MXFP8 分组 GEMM (grouped GEMM)
d. Yarn RoPE 融合/Permute 融合/交叉熵损失融合
e. 灵活的 PP 布局
f. Token分发器: NCCL AlltoAll based, DeepEP based (不支持 NVL72)
g. 主权重为 FP8
h. BF16 优化器状态
基线性能
在初始配置下,DeepSeek-V3 模型的基线性能如下表所示:
通过性能剖析工具,我们识别出以下几个主要瓶颈:
* [红色] 存在过多微小的 kernels,导致 PyTorch/Python 开销和 CUDA kernel 启动开销过大。
* [绿色] NCCL alltoall-based 分发器不是最优的,它要求在发送 tokens 之前进行显式的全局 permute 操作。
* [黄色] Recompute MLA up projection 过程受限于 CPU。
优化的主要目标是减少 CPU 开销,因为 GPU 速度远超 CPU,但 CPU 无法跟上其速度。同时,使用 FP8 的细粒度 MoE 模型也带来了新的挑战,例如 Router 和预处理过程与 EP 通信的协调,以及量化和缩放因子相关的 kernels。
优化工作主要分为以下几个方面:
通过一系列核函数融合,显著减少了 kernel 数量和 CPU 开销。
* a. 批量内存分配: 针对 MXFP8 数据和 scales,默认自 TE 2.7 版本起。
* b. Permute 核优化: MCore 参数 --moe-permute-fusion,自 TE 2.6 起优化。
* c. Router 融合: MCore 参数 --moe-router-fusion,需要 TE 2.6+。
* d. 融合 MXFP8 swizzle 缩放因子: 默认自 TE 2.7 版本起。
* e. 融合量化到 normalization: 通过 TE 环境变量 NVTE_NORM_FWD_USE_CUDNN=1 NVTE_NORM_BWD_USE_CUDNN=1 配合 cuDNN 9.14+ 实现。
下图展示了融合 alloc zeros 和 swizzle 操作到 Routed experts 后的性能剖析对比。
这些融合带来了显著的性能提升,具体如下:
* a, b, c 项融合: +35 TFLOPS
* 将 kernel 数量从 72 个减少到 31 个。
+35.5 TFLOPS+13.8 TFLOPS下图展示了应用这些优化后的性能剖析结果。
下图展示了通过 DeepEP 移除 recompute 并进一步减少 router kernels 后的效果。
+54.3 TFLOPS+44.7 TFLOPS下图展示了 Transformer 前向传播层中如何通过保存特定中间结果(BF16 输出和 FP8 输入)并重计算激活函数来实现内存节省。
该优化带来了 +84.8 TFLOPS 的性能提升。下图对比了使用 CUDA Graphs 前后的性能剖析,显示了 Attention、Router 和 experts 等模块被图化 (Graphed) 后的效果。
+70.6 TFLOPSbindpcie 脚本。+12.7 TFLOPS下图高亮了动态部分的 CPU 开销,并展示了优化后的通信带宽从 -400 GB/s 提升至 -190 GB/s 的变化。
+113.6 TFLOPS~670 GB/s 的带宽。下图展示了 HybridEP dispatch 操作在性能剖析中的表现。
下表总结了从基线开始,逐步应用各项优化后,DeepSeek-V3 模型在单 GPU 上的 TFLOPS 性能演进过程。性能从最初的 494.46 TFLOPS/GPU 提升至最终的 970.01 TFLOPS/GPU。
为什么我们不在 GB200* 上使用 FP8 dispatch?
为什么我们不在 GB200* 上使用 1F1B alltoall 重叠(NVIDIA 的批间重叠解决方案)?
与 B200* 的性能比较
与 H100* 的性能比较
* 仅供技术讨论和参考。性能可能因不同的产品组合而异。
列表中的优化项
隐藏 EP (Expert Parallelism) 通信: 细粒度重叠或迭代-批次 (iter-batch) 重叠。