“MoE专用组件(涵盖分发、专家计算与合并环节)可能消耗掉总训练预算的30%至80%。”这一数据在论文中尤为触目惊心,也精准点出了整个大模型训练行业所面临的共同难题。
随着GPU算力呈指数级跃升,互连带宽的增长速度已远远落后,通信瓶颈正逐渐演变为制约大模型训练效率的核心障碍。
专家并行作为MoE模型训练的标准分布式方案,尽管解决了专家参数的存储与计算难题,却也引入了大量的token路由通信开销。为掩盖这些通信延迟,研究人员提出了多种计算与通信重叠技术,但这些方法要么依赖复杂的多流管理,导致CPU开销剧增并产生同步气泡;要么通过拆分微批次来实现重叠,从而牺牲了数值一致性,无法满足生产级训练的严苛要求。
- UniEP: Unified Expert-Parallel MoE MegaKernel for LLM Training
- https://arxiv.org/pdf/2604.19241
- 代码:https://github.com/ByteDance-Seed/Triton-distributed
- 1.5万字,阅读60分钟,播客23分钟
针对这些痛点,字节跳动Seed团队与清华大学计算机系联合推出了UniEP——一套统一的专家并行训练系统。UniEP的核心洞察在于,将原本用于推理场景的MegaKernel技术拓展至训练领域,通过将MoE的通信与计算子图融合成单个MegaKernel,在GPU SM级别实现细粒度的计算通信重叠,同时借助确定性token映射机制,严格保证了与顺序执行的数值一致性。
实验结果表明,在配备NVIDIA Hopper GPU的集群上,UniEP相比当前最先进的COMET系统实现了1.03至1.38倍的加速;在128GPU的生产训练集群中,训练吞吐量从1270亿token/天提升至1380亿token/天,提速达9%。
图3:UniEP在集群1与集群2上的内核级性能。图表对比了带宽受限(集群1)与高带宽(集群2)环境下,UniEP、COMET及串行基线在分发、合并内核上的性能差异。带宽越受限,UniEP的优势越显著,最高提速达1.87倍;高带宽场景下仍凭借单流融合占据领先。其核心源于中继工作的带宽压缩与单流无气泡设计,验证了UniEP对通信瓶颈场景的强适配性,也证明了内核融合与带宽优化的协同增益。图4:UniEP在集群1与集群2上的层级性能。图表整合了前向与反向完整MoE层的延迟,长序列下UniEP的优势持续放大,在集群1中相比COMET提速超过20%。单流融合消除了跨流同步开销,确定性token排序保障了数值稳定,中继工作减少了NVLink冗余传输。层级性能贴合工业训练实际,证明UniEP不仅内核高效,更能在完整训练链路中兼顾性能、精度与稳定性,适配真实LLM训练需求。表8:序列长度128k下的绝对性能(毫秒)。表格呈现了超长序列训练下,UniEP、COMET及串行基线的延迟数据,UniEP较基线提速2.38至6.9倍。超长序列下通信压力激增,UniEP的单流融合与带宽压缩优势被最大化,单步延迟显著低于基线。在工业级长上下文训练中,10%以上的吞吐量提升可转化为巨额算力成本节省,验证了UniEP在大规模、长序列LLM训练中的核心价值,适配下一代LLM训练需求。
更为关键的是,所有这些性能提升都是在保持比特级数值一致性的前提下实现的,这意味着UniEP可以直接替换现有生产系统中的专家并行模块,而不会影响训练轨迹或模型精度。
目前,UniEP的MegaKernel实现已开源至https://github.com/ByteDance-Seed/Triton-distributed,供社区研究和使用。
unsetunset本文目录unsetunset
- 一、MoE训练的通信困局与现有方案的致命缺陷
- 1.1 专家并行的本质与通信开销来源
- 1.2 现有优化方法的两大核心缺陷
- 二、UniEP的核心设计:统一MegaKernel架构
- 2.1 核心洞察:从多流粗粒度重叠到单流细粒度融合
- 2.2 Dispatch+GroupGEMM MegaKernel的实现细节
- 2.3 GroupGEMM+Combine MegaKernel的关键差异
- 三、自动调优:从手动调参到硬件感知的最优配置
- 3.1 优化空间与参数权衡
- 3.2 解析性能模型的构建
- 3.3 优先级token调度与运行时优化
- 四、实验评估:生产级验证的性能飞跃
- 4.1 实验设置与基准选择
- 4.2 数值精度验证:零偏差的突破性意义
- 4.3 内核级与层级性能对比
- 4.4 长上下文与端到端训练性能
- 4.5 消融实验:各优化组件的贡献量化
- 五、相关工作对比
- 5.1 高性能内核库与张量编译器
- 5.2 计算通信重叠技术
- 5.3 MoE训练与推理框架
- 六、结论与展望
- 6.1 结论总结
- 6.2 进阶分析:方法的边界与局限性
- 6.3 未来工作
unsetunset一、MoE训练的通信困局与现有方案的致命缺陷unsetunset
当大语言模型的参数规模突破万亿级别,混合专家架构已成为行业公认的唯一可行规模化路径。从GPT-5、Gemini3 Pro到DeepSeek-V3、Qwen3,所有顶尖大模型无一例外地采用了MoE设计。
然而,MoE架构在带来参数规模可扩展性的同时,也引入了前所未有的通信挑战。专家并行作为MoE训练的标准分布式策略,其核心是将不同专家部署在不同GPU上,通过token路由实现计算负载的均衡分配。但正是这个路由过程,成为了整个训练系统的最大瓶颈。
1.1 专家并行的本质与通信开销来源
MoE层的工作流程可分为前向传播与反向传播两个阶段,如图1所示。
图 1:MoE 前向与反向传播流程。该图完整展示了 MoE 层在训练过程中的数据流动:前向传播依次经过分发(Scatter)、GroupGEMM 计算与合并(Combine)三个阶段;反向传播则是前向的逆过程,但计算权重梯度时需使用转置 GroupGEMM。在此流程中,分发与合并阶段的通信操作构成了主要的性能瓶颈。在专家并行(EP)模式下,通信与计算深度交织,传统方法将其拆分为独立核函数,依赖 CPU 同步,从而引入额外开销并导致数值波动。UniEP 将上述环节融合为单一超级内核,直接针对流程瓶颈进行优化,为单流融合设计提供了流程层面的依据,并凸显了 EP 优化的核心痛点。
- 在前向传播阶段,门控网络首先计算每个 token 分配给各个专家的概率,随后依据 top-k 选择(通常 k=6 或 8)确定每个 token 的目标专家及目标 GPU。接着,token 被重新排列,并通过 AlltoAll 或 AllGather 通信原语发送至目标 GPU,此即分发阶段。token 到达目标 GPU 后,通过 GroupGEMM 操作执行计算,经 SwiGLU 激活后,再通过第二个 GroupGEMM 投影回原始维度。最后,计算结果被送回源 GPU,并根据门控分数进行加权求和,此即合并阶段。
- 反向传播阶段的流程与前向传播对称,但引入了一个关键复杂性:权重梯度的计算需要使用转置 GroupGEMM。 与前向传播中 GroupGEMM 沿 token 维度分区不同,转置 GroupGEMM 沿累加维度分区,这意味着输入批次的拆分方式会改变梯度的累加顺序。由于浮点数加法不满足结合律,尤其在 BFloat16 精度下,累加顺序的改变会导致梯度在比特级别产生差异,进而影响训练的可重复性与模型精度。
论文中的实证分析表明,MoE 层的分发、计算与合并三个阶段可消耗总训练时间的 30% 至 80%,其中通信操作占据主导地位。 随着专家数量从 64 增加到 384 甚至更多,通信开销还会进一步增大。在带宽受限的集群中,通信瓶颈甚至会导致 GPU 的计算利用率低于 30%,造成巨大的算力浪费。
1.2 现有优化方法的两大核心缺陷
为缓解 MoE 训练中的通信瓶颈,研究人员从计算、通信及重叠三个方面提出了大量优化方法。
- 在计算方面,无填充 GroupGEMM 是最核心的优化。
- 传统的 GroupGEMM 实现使用填充来统一不同专家的 token 数量,导致大量计算资源被浪费。
- MegaBlocks 和 vLLM 等系统提出了基于块稀疏格式的无填充 GroupGEMM,通过动态指针算术处理不规则的 token 偏移,将 GPU 的 Tensor Core 利用率提升至 65% 以上。
- 在通信方面,基于 NVSHMEM 的原语优化已成为主流。
- 传统的 NCCL 库主要针对稠密张量并行进行优化,对 MoE 的稀疏动态通信模式支持不佳。
- COMET 和 DeepEP 等系统利用 NVSHMEM 实现直接的 GPU 到 GPU 内存访问,绕过了主机 CPU,显著提升了通信带宽利用率。其中,DeepEP 专门优化了 AlltoAll 原语,而 COMET 则优化了 AllGather 原语。
- 在重叠方面,现有方法主要分为 tile 级重叠与批次级重叠两种。
- tile 级重叠将工作负载分解为固定大小的 tile,在不同的 CUDA 流中分别执行通信与计算,并通过全局内存中的细粒度信号进行同步,COMET 即采用此方法。
- 批次级重叠则在微批次级别使用双缓冲技术:当一个流处理当前批次的计算时,另一个流执行下一个批次的通信,DeepEP 采用此方法。
尽管这些优化方法取得了一定成效,但论文指出它们存在两个致命的核心缺陷:
- 第一,现有方法将计算与通信视为独立操作,依赖粗粒度的多流管理实现重叠。 这种分离需要频繁的主机端干预来启动内核与同步流,引入了大量的 CPU 开销与同步气泡。在大规模分布式训练中,不同 GPU 间的 rank 同步会进一步放大这些气泡,甚至完全抵消重叠带来的收益。更严重的是,批次级重叠需要拆分微批次,这会改变转置 GroupGEMM 的梯度累加顺序,导致数值不稳定,破坏训练的可重复性。
- 第二,现有框架缺乏统一的通信原语。 AllGather 在 top-k 较大时带宽效率更高,而 AlltoAll 在稀疏路由时性能更优。这种二分法迫使开发人员维护复杂的启发式规则与多个独立的内核,不仅增加了开发与维护成本,也限制了系统的可移植性与适应性。
现有 MoE 训练优化方法陷入了一个无法突破的悖论: 要么通过拆分微批次实现高性能重叠,但牺牲数值一致性;要么保持数值一致性,但只能获得有限的重叠效果。 UniEP 的核心目标就是打破这个悖论,在严格保证数值一致性的前提下,实现最大化的计算通信重叠。
unsetunset二、UniEP 的核心设计:统一 MegaKernel 架构unsetunset
UniEP 的核心创新在于将 MegaKernel 技术从推理场景扩展到训练领域,通过将 MoE 的通信与计算子图融合成单个 MegaKernel,在 GPU SM 级别实现细粒度的计算通信重叠。
与传统的多流方法不同,UniEP 将整个调度逻辑完全卸载到 GPU SM 上,无需主机端的任何干预。 这不仅消除了 CPU 开销与同步气泡,还通过动态 SM 调度实现了计算与通信资源的自动负载均衡。同时,UniEP 通过确定性 token 映射机制,严格保证了与顺序执行在比特级别的数值一致性。
2.1 核心洞察:从多流粗粒度重叠到单流细粒度融合
UniEP 的设计基于两个关键的核心洞察:
-
第一个洞察是,GPU 的流式多处理器(SM)可以通过块级调度实现计算与通信的细粒度重叠,无需主机端的多流管理。 传统的多流方法将整个 GPU 视为一个单一资源,在不同时间点分别分配给计算或通信任务。而实际上,GPU 由多个独立的 SM 组成,不同的 SM 可以同时执行不同的任务。UniEP 利用这一点,将不同的 SM 动态分配给通信或计算角色,在单个 CUDA 流中实现指令级的重叠。
-
第二个洞察是,通过参数化抽象可以统一 AllGather 和 AlltoAll 两种通信模式,无需显式的内核切换。 AllGather 与 AlltoAll 的本质区别在于数据的分发方式:AllGather 将所有数据发送给所有 rank,然后本地进行散射;AlltoAll 则将数据直接发送给目标 rank。
UniEP 通过中继 Worker 实现了一种混合模式,既保留了 AlltoAll 的低通信量优势,又具备 AllGather 的灵活性,同时通过参数化的配置空间自动适应不同的工作负载。
基于这两个洞察,UniEP 设计了两个核心的 MegaKernel:Dispatch+GroupGEMM MegaKernel 和 GroupGEMM+Combine MegaKernel。
这两个 MegaKernel 分别对应 MoE 层前向传播的两个主要阶段,同时也适用于反向传播的对应阶段。
2.2 Dispatch+GroupGEMM MegaKernel 的实现细节
Dispatch+GroupGEMM MegaKernel 是 UniEP 最核心的组件,它将前向传播中的 token 分发与专家计算两个阶段融合成一个单一的内核。其实现基于持久化 Worker 架构、确定性 token 映射、记分板同步、动态 SM 调度以及中继 Worker 带宽优化五项关键技术。
持久化 Worker 架构
UniEP 的 MegaKernel 采用持久化线程块设计。在内核启动时,会启动与 GPU 物理 SM 数量完全相等的线程块,每个线程块作为一个持久化 Worker,在整个内核执行期间占据一个 SM。这种一对一的映射消除了线程块上下文切换的开销,同时避免了因线程块数量超过硬件容量而导致的死锁问题。
每个 Worker 可以动态承担三种角色之一:
通信 Worker
职责为发送 token 并启动跨 GPU 的数据交换事务。
计算 Worker
专门执行 GroupGEMM 的 tile 计算任务。
中继 Worker
负责管理同步信号,并在 GPU 内部完成数据多播操作。
确定性 token 映射
数值一致性是生产级训练的基本前提,而 token 的发送与接收顺序直接影响这一结果的稳定性。为了确保无论并行执行顺序如何变化,token 在目标专家缓存区内的排列顺序都是确定的,UniEP 提出了一种确定性全局 token 映射算法,具体如算法 1 所示。
算法 1:确定性全局 token 映射。 该算法通过本地稳定排序、全局计数 AllGather 以及前缀和偏移计算,为每个 token 生成唯一的全局地址(包含目标卡、专家编号、偏移量)。整个过程无需原子锁,所有并行计算均无冲突,确保 token 在跨卡传输后顺序固定。这是 UniEP 实现数值稳定的核心算法,解决了因重叠调度导致的梯度累加无序问题,保证了反向传播中的位级一致性,使得高性能重叠与工业级精度复现得以兼得,是 UniEP 区别于现有方案的关键设计。
算法 1 的核心思路是:利用 AllGather 操作收集所有 rank 向每个专家发送的 token 数量,然后计算出每个 rank 向每个专家发送的 token 的全局基偏移 b。具体而言,对于专家 e,来自 rank r 的 token 的全局基偏移等于所有 rank 编号小于 r 的 rank 发送给专家 e 的 token 数量的前缀和。随后,将该基偏移与本地稳定排序索引相结合,即可得到每个 token 唯一且无冲突的目标地址。
这种映射机制使得通信 Worker 能够并行发送 token,无需任何运行时同步,同时严格保证了 token 在目标缓存区中的顺序。这确保了后续 GroupGEMM 及归约操作的累加顺序与顺序执行完全一致,从而实现了比特级的数值一致性。
记分板同步机制
为协调生产者(通信 Worker 与中继 Worker)与消费者(计算 Worker)之间的依赖关系,UniEP 实现了一个轻量级的全局内存记分板。该记分板分为两个部分:
- 第一部分用于追踪单个 token 的到达状态
- 第二部分用于标记完整的 GroupGEMM tile 是否已准备就绪
中继 Worker 负责监控 token 的到达状态。 当通信 Worker 成功将一个 token 写入目标缓存区后,会更新第一部分中的对应条目。中继 Worker 轮询这些条目,当某个完整的 GroupGEMM tile(例如包含 128 个 token)的所有 token 均已到达时,中继 Worker 会以原子操作设置第二部分中的对应标志。
计算 Worker 则轮询第二部分,一旦检测到 tile 就绪信号,立即执行该 tile 的 GroupGEMM 计算。 UniEP 采用了受 MegaBlocks 和 vLLM 启发的无填充 GroupGEMM 内核,通过动态指针算术处理不规则的 tile 形状,从而确保了高 Tensor Core 利用率。
动态 SM 调度
静态的 SM 角色分配往往会导致负载不均衡,尤其是在 MoE 路由负载动态变化的场景下。为解决这一问题,UniEP 采用了基于全局原子计数器的动态角色重分配策略。
系统维护一个全局原子计数器,作为任务队列的游标。任务空间被线性化:索引从 0 到 (N_{comm}-1) 对应通信任务,从 (N_{comm}) 到 (N_{total}-1) 对应计算任务。运行时,每个 SM 通过原子递增全局计数器来获取任务,返回的任务 ID 决定了 SM 的当前角色:
- 若 ID 对应通信任务,SM 成为通信 Worker
- 若 ID 对应计算任务,SM 成为计算 Worker(可能需要等待记分板信号)
- 任务完成后,SM 请求新的任务 ID
这种机制自然地平衡了工作负载:初始时,所有 SM 都处理通信任务;随着数据的到达和记分板的填充,SM 逐渐过渡到计算角色。
图 2:分发 + GroupGEMM MegaKernel 的时序与工作流示例。 该图直观展示了 UniEP 单流内的动态调度逻辑:GPU 的 SM 会动态切换通信、中继、计算角色,并行执行任务以消除传统双流中的同步气泡。初期以通信为主,数据就绪后逐步向计算切换,块级流水线使得通信与计算深度重叠。这种调度方式最大化了硬件利用率,同时避免了微批次拆分,是 UniEP 兼顾性能与数值稳定的核心调度逻辑的可视化体现。
图 2 展示了这一过程的时间线,通信与计算阶段之间形成了一个自然的重叠区域,从而最大化了系统的整体吞吐量。
中继 Worker 的带宽优化
在标准的 MoE 路由中,一个 token 可能被路由到同一目标 GPU 上的多个专家(例如 Top-8 路由中,两个专家位于同一个 rank 上)。朴素的实现会通过 NVLink 多次发送同一个 token,造成带宽浪费。
UniEP 通过中继 Worker 优化了这一问题:token 只需发送一次到目标 rank,随后由目标 rank 上的中继 Worker 检测到这种情况,并执行本地内存复制,为不同的专家复制 token。这将昂贵的跨 rank NVLink 传输替换为高速的 HBM 内存复制,显著减少了通信流量。
表 1:带宽缩减的概率分析(Top-8,8 GPU)。 该表格量化了在 Top-8 路由下,单个 token 的多专家分配至同一 GPU 的概率,理论上可减少约 34% 的 NVLink 流量。UniEP 的中继工作通过节点内组播,将昂贵的跨卡 NVLink 传输转为高速 HBM 本地复制,规避了重复传输。该分析为 UniEP 的带宽优化提供了理论支撑,是区别于 COMET 等基线的关键创新,直接降低了 EP 通信带宽依赖,缓解了核心瓶颈。
表 1 展示了这种优化的理论收益分析。在 Top-8 路由和 8 个 GPU 的情况下,一个 token 平均只需发送到 5.25 个唯一的 rank,理论上可减少约 34% 的通信流量。
2.3 GroupGEMM+Combine MegaKernel 的关键差异
UniEP 将相同的 MegaKernel 原则应用于 GroupGEMM+Combine 阶段,包括动态 SM 调度和记分板同步。其工作流程与 Dispatch+GroupGEMM 阶段对称:计算 Worker 执行 GroupGEMM 计算并向通信 Worker 发送信号,通信 Worker 将部分结果发送回源 rank,最后由归约 Worker 聚合传入的数据。
该阶段的一个关键区别在于 Top-k 累加约束。为确保数值正确性,归约 Worker 必须在执行求和之前,等待某个特定 token 的所有 Top-k 贡献全部到达。过早的归约(在发送之前在本地 rank 进行累加)会违反浮点数加法的非结合性,导致非比特一致的结果。UniEP 通过在归约 Worker 逻辑中强制执行严格的屏障,保证了这一点,同时仍然隐藏了底层传输的延迟。
UniEP 的 MegaKernel 设计实现了三个关键突破:
- 第一,完全消除了主机端的干预,所有调度逻辑均在 GPU 上执行;
- 第二,通过动态 SM 调度实现了计算与通信资源的自动负载均衡;
- 第三,通过确定性 token 映射和严格的归约屏障,在最大化重叠的同时严格保证了数值一致性。
三、自动调优:从手动调参到硬件感知的最优配置
UniEP 的 MegaKernel 暴露了一个复杂的配置空间,包括每个 Worker 的 Warp 数、通信 Worker 数量、中继/归约 Worker 数量等参数。这些参数之间存在复杂的权衡关系,手动调参不仅耗时费力,而且很难找到最优配置。
为解决这一问题,UniEP 构建了一个严谨的解析性能模型,能够自动预测不同配置下的端到端延迟,并在毫秒级内找到最优配置。同时,UniEP 还引入了优先级 token 调度机制,进一步提升了重叠效率。
3.1 优化空间与参数权衡
优化配置的三大原语与复杂权衡
UniEP 将 Dispatch+GroupGEMM 阶段的优化配置拆解为三个核心原语:每个 Worker 的 Warp 数量、通信 Worker 的数量以及中继 Worker 的数量。在 GroupGEMM+Combine 阶段,则存在对称的参数体系:、 和 。这些参数之间蕴藏着复杂的权衡关系。
每个 Worker 的 Warp 数(、)
每个 SM 分配的 Warp 数是一个全局参数,它在计算稳定性与通信吞吐量之间构建了一个基本的权衡。有效的搜索空间通常为 {8, 16, 32}。
从计算角度看,对于计算 Worker,Hopper GPU 上的经验数据表明,8 个 Warp 就足以让 Tensor Core 流水线达到饱和。如果分配过多的 Warp(例如 32 个),会迫使 Warp 调度器激进地发射指令,导致高功率密度,进而触发硬件热节流,降低时钟频率,最终拉低整体 FLOPS。
从通信视角看,通信 Worker 是延迟绑定的,它们从更高的 Warp 数量中获益显著。32 个 Warp 能够提供足够的指令级并行性(ILP)来隐藏内存访问延迟,并使 NVLink 带宽达到饱和。由于 MegaKernel 需要统一的网格配置,因此必须对 进行调整,以平衡热节流风险与带宽饱和需求。
通信 Worker 数量(、)
这个参数控制通信阶段的并行度,决定了生产者与消费者之间的资源分配。有效的范围是 。调优这个参数会带来两种结果:
- 过度分配:如果 过大(接近 ),内核启动时会立即出现通信突发,几乎所有 SM 都充当生产者。这会阻塞消费者端,阻止计算 Worker 尽早启动,实际上使执行过程串行化。
- 分配不足:如果 过小,系统会成为通信绑定。计算 Worker 消耗记分板的速度快于生产者填充的速度,导致计算 SM 空闲。
最优的 会随工作负载的算术强度动态变化,必须针对每个问题大小进行单独调优。
中继 Worker 数量(、)
中继 Worker 通过 intra-rank 多播减少了 inter-rank 流量,但这种优化是以消耗资源为代价的。标准的 EP 实现使用 AllGather 或 AlltoAll,其中 AllGather 的通信量被世界大小 放大:,而 AlltoAll 的通信量被 Top-k 因子放大:。UniEP 将其优化到大约 (对于 Top-8)。
为了实现这一收益,中继 Worker 必须占用 SM 资源来处理记分板信号并执行 HBM 复制。这里存在一个严格的约束:
违反这一约束可能导致死锁,因为可能没有足够的 SM 来调度解锁计算所需的中继 Worker。另一方面,必须分配足够的中继 Worker,以确保它们不会成为瓶颈(阻塞通信 Worker),同时将其数量最小化,以便为 GroupGEMM 保留 SM。搜索范围通常为 。
3.2 解析性能模型的构建
UniEP 的优化空间由元组定义:
为了自动找到最优配置,UniEP 构建了一个解析性能模型,能够预测任何给定配置 、硬件规格 和问题大小 下的端到端延迟 。表 2 总结了模型中使用的符号。
表 2:性能模型的符号与含义。表格统一定义 UniEP 自动调优模型的硬件、问题、优化变量符号,涵盖 SM 数量、NVLink/HBM 带宽、GEMM 分块尺寸、工作分配参数等。标准化符号体系支撑解析模型构建,让模型可精准量化不同配置下的延迟,实现超 10^5 级配置空间的快速搜索。这是 UniEP 自动化调优的基础,平衡搜索效率与硬件行为拟合精度,保障调优结果可靠。
有效带宽
有效带宽函数 定义了在给定 个活动 SM 和峰值带宽 时的实际可用带宽。设 为每个 SM 的 Warp 数,(例如 1024)为饱和阈值。可用带宽受硬件峰值或活动 Warp 数的限制:
该公式的含义是:
- 当活动 Warp 数不足以使带宽饱和时,带宽与 Warp 数成正比;
- 当 Warp 数足够多时,带宽达到硬件峰值。
GEMM 块延迟
CalcGEMM 函数用于估计单个 GroupGEMM tile 的执行时间。对于 tile 大小 和归约维度 ,延迟由峰值 FLOPS 乘以 MFU(观察到的 FLOPS 与理论峰值的比率)得出。由于每个 tile 需要等待信号或设置信号,还需添加一个同步开销 :
因此,,,其中 是隐藏大小, 是 MoE 中间大小。 与 Warp 数 相关,根据经验设置为:
SwiGLU 延迟
SwiGLU 是严格的内存绑定操作。对于 个大小为 的 token:
Dispatch 延迟
Dispatch 延迟是 NVLink 传输(远程)和 HBM 写入(本地/中继)的成本之和。在有 个活动通信 SM 和 个活动中继 SM 的情况下:
计算延迟
一个阶段的总计算时间由在分配的计算 SM 上处理所有 tile 所需的波数决定。设 为 GEMM 块的总数:
Combine 延迟
与 Dispatch 类似,Combine 延迟计算通过 NVLink 的散射延迟。它还返回 ,即单个 SM 在 HBM 中执行传入 token 归约的时间:
重叠模拟逻辑
算法 2 整合了上述所有公式,模拟了计算和通信的重叠效果,预测了端到端延迟。
算法 2:性能模型与配置搜索。算法遍历 UniEP 的优化配置空间,拆解通信、计算、同步延迟,模拟单流重叠时序依赖,筛选最小延迟的最优配置。将超 10^5 级搜索压缩至 144ms 内,解析模型拟合硬件行为,预测误差仅 3.8%。该算法让 UniEP 摆脱人工调优,实现全自动化适配不同模型与硬件,平衡搜索效率与预测精度,是 UniEP 具备工业易用性的核心支撑。
算法的核心是重叠模拟逻辑:
- 对于 Dispatch+UpGEMM 阶段,如果计算延迟 大于通信延迟 ,则有效延迟是通信时间加上计算的尾部;否则,有效延迟是通信时间加上单个 GEMM 块的延迟。
- 对于 DownGEMM+Combine 阶段,基本延迟是计算延迟和通信延迟的最大值。如果归约工作超过了 GroupGEMM 和 Combine 之间的气泡,则多余的工作会延长关键路径。
3.3 优先级 token 调度与运行时优化
在上述性能模型中,有一个强假设:计算和通信可以完美重叠。为了实现这一点,UniEP 引入了优先级 token 调度机制。
在朴素的实现中,通信 Worker 可能按照自然顺序(例如专家 0,然后专家 1,……)传输 token。然而,远程计算 Worker 是确定性的:它按照专家 ID 升序处理 tile。如果本地第一个专家的数据到达较晚,即使后面专家的数据已经在 HBM 中可用,计算 Worker 也会停滞。这种队头阻塞会严重降低重叠效率。
为了解决这个问题,UniEP 强制生产和消费之间的严格对齐。计算 Worker 按照升序处理专家(本地 ),相应地,通信 Worker 对它们的传输队列进行排序,优先发送目标为远程专家 0 的 token,然后是专家 1,依此类推。由于全局偏移是通过前缀和预先计算的,这种排序可以通过遍历专家偏移数组隐式实现,确保零开销的优先级。
在运行时实现方面,UniEP 的初始 Python 版本的性能模型需要约 100 秒来遍历整个搜索空间,这对于在线调优来说是不可接受的。为了解决这个问题,研究人员用 C++重新实现了搜索算法,并使用 OpenMP 进行并行化,将搜索时间缩短到约 144 毫秒。此外,UniEP 还采用了分桶记忆化策略,将输入序列长度 离散化为 4096 token 的桶。只有当工作负载跨越桶边界时,才会查询性能模型,最优配置会被缓存并在后续迭代中重用。这将自动调优器的摊销开销降低到在长期运行的训练作业中可以忽略不计的水平。
UniEP 的自动调优框架将复杂的手动调参过程转化为一个自动化的硬件感知优化过程。通过严谨的解析性能模型,UniEP 能够在毫秒级内找到最优配置,实现了对不同工作负载和硬件环境的自适应。
unsetunset四、实验评估:生产级验证的性能飞跃unsetunset
4.1 实验设置与基准选择
硬件环境
为了全面测试 UniEP 的性能表现,研究团队在配备 NVIDIA Hopper GPU 的两个集群上展开了大规模实验。实验覆盖了 12 种来自生产环境的 MoE 模型配置,序列长度跨度从 8k 到 128k。
实验数据表明,UniEP 在所有测试配置下均实现了显著的性能提升,并且严格保持了比特级的数值一致性。在 128 块 GPU 的生产训练集群上,UniEP 将训练吞吐量提升了 9%,充分验证了其在工业级场景中的实用价值。
实验依托两个互连特性不同的 NVIDIA Hopper GPU 集群进行,具体规格参见表 3。
表 3:实验集群硬件规格
此表格展示了带宽受限(集群 1,200GB/s NVLink)与高带宽(集群 2,400GB/s NVLink)两类 Hopper 集群的差异,覆盖了不同的算力 – 带宽配比场景。双集群设计确保了评估的全面性:低带宽场景凸显了 UniEP 在通信优化方面的价值,而高带宽场景则验证了其调度优化带来的增益。这种对比紧密贴合工业硬件环境的多样性,证明 UniEP 不依赖特定硬件,能够适配不同数据中心集群,具备广泛的工业落地潜力。
集群 1 代表带宽受限环境(200 GB/s/方向 NVLink),这是上一代互连技术的典型特征;集群 2 则代表高带宽环境(400 GB/s/方向 NVLink)。两个集群的每个节点均配备 8 个 GPU。
工作负载
研究团队从 DeepSeek、Qwen 和 Kimi 系列的生产模型中精心挑选了 12 种具有代表性的 MoE 配置,详情见表 4。
表 4:评估所用 MoE 模型配置
该表格涵盖了 DeepSeek、Qwen、Kimi 三大系列共 12 种主流 MoE 模型,专家数量在 64 到 512 之间,隐藏维度从 1024 到 7168,覆盖了从小型到超大型的模型规模,并采用了 6 到 10 的 Top-k 路由策略。多样化的配置模拟了工业级 LLM 训练的真实场景,避免了因单一模型导致结论片面的风险。评估结果可直接指导不同规模 MoE 模型的部署,证明 UniEP 在主流工业模型上均能同时具备性能与精度优势。
这些配置覆盖了广泛的专家数量(64 至 512)和隐藏维度,并针对 8k、32k 及 128k 的序列长度进行了评估,以测试不同训练设置下的性能表现。
基准
UniEP 与以下两个基准方案进行了对比:
- Serial(DeepEP + TransformerEngine):一个非重叠的基准方案,采用了最先进的内核。通信部分由 DeepEP(通过 NVSHMEM 优化)处理,计算部分则由 TransformerEngine 负责。
- COMET:当前最先进的重叠解决方案,用于企业级训练。它利用双流技术将 NVLink 通信与 GroupGEMM 计算进行流水线化处理。通信通过复制引擎(DMA 引擎)实现 AllGather,计算部分则由 CUTLASS 实现。
表 5:性能模型在集群 2(序列长度 32k)上确定的最优优化配置
该表格展示了不同模型在 SM 分配和线程束数量上的最优解。所有模型统一采用 32 线程束、全 SM 参与合并的策略,调优耗时在 29.6 至 149.9 毫秒之间。最优配置与模型的计算强度紧密相关:计算密集型模型分配了更多计算 SM,而通信密集型模型则侧重于通信 SM。调优结果可缓存复用,单次开销几乎可以忽略不计,这证明了解析模型能够精准平衡通信与计算负载,为不同模型定制出最优的调度方案。
4.2 数值精度验证:零偏差的突破性意义
数值一致性是生产级训练的基本要求,因为任何比特级的差异都可能导致训练轨迹发生偏离,进而影响模型的最终精度与可重复性。
为了验证 UniEP 的数值一致性,研究人员将 UniEP 和 COMET 与基于 PyTorch+NCCL 的无重叠参考实现进行了对比,记录了元素级的最大绝对差异(max_diff)以及非比特相等输出元素的比例(%non-bw),结果见表 6。
表 6:与无重叠基准的数值精度对比
表格显示,COMET 存在 21.69% 至 29.31% 的位级误差,而 UniEP 的误差始终为 0。UniEP 采用确定性的全局 token 映射,固定了传输顺序,从而保证了反向梯度累加顺序不变,这恰好契合了 BFloat16 浮点运算的非结合性特性。这一特性解决了基线方案因重叠调度导致的数值不稳定问题,是 UniEP 区别于现有重叠方案的核心优势,满足了工业级 LLM 训练对严格精度复现的要求。
结果令人震惊:COMET 在所有测试配置下均表现出显著的数值偏差,最大绝对差异达到 0.25,且 22% 到 29% 的输出元素无法通过比特相等检查。 这意味着 COMET 的训练轨迹与参考实现存在显著差异,可能会影响模型的最终精度和可重复性。
相比之下,UniEP 在所有 12 个配置下都实现了与参考实现的比特级完全一致,其 max_diff 为 0,%non-bw 也为 0%。 这直接验证了 UniEP 的确定性 token 映射方案的正确性,证明了 UniEP 可以在不牺牲数值一致性的前提下,实现高性能的计算通信重叠。
当然,保持比特一致性也会带来一定的性能成本。表 7 比较了 UniEP 的比特一致(BW)和非比特一致(NB)变体在集群 1、32k 序列长度下的性能表现。
表 7:集群 1(序列长度 32k)上 UniEP 位级一致(BW)与非位级(NB)变体性能对比
表格显示,NB 变体普遍实现了 2% 到 8% 的提速,但有 2 个模型因负载失衡导致性能回落。BW 变体牺牲少量性能以换取绝对的数值稳定,适用于科研与严格复现的场景;NB 变体则更适合对精度无绝对要求、追求极致速度的场景。这种双变体设计让 UniEP 能够灵活地在精度与性能之间取得平衡,适配不同的训练场景,体现了方案设计的灵活性与实用性,覆盖了多样化的工业需求。
结果表明,对于大多数配置,非比特一致变体在端到端延迟上实现了 2% 到 8% 的加速。但存在两个例外:
- MoE-10 的 GroupGEMM 算术强度非常低,将其拆分为两个子批次后,暴露了之前被重叠吸收的剩余计算尾部,导致性能略有下降。
- MoE-11 的 GroupGEMM 是计算密集型的,将其拆分为两个子批次后,每个子批次可用的 SM 数量减半,导致 GroupGEMM 本身变慢。
这说明,即使愿意牺牲数值一致性,非比特一致变体的性能提升也是有限的,甚至在某些场景下会适得其反。而 UniEP 的比特一致变体已经实现了接近理论上限的性能,同时保持了严格的数值一致性。
代码清单 1:UniEP MegaKernel 循环伪代码
该伪代码基于 Triton-Distributed 实现了持久化线程块,通过全局原子计数器动态分配通信、中继、计算任务,在单流内实现角色的无缝切换。代码精简至 21k 行,避免了原生 CUDA 的高开发成本,同时保留了对底层硬件的控制能力。这验证了超级内核架构在训练场景中的可行性,为 MoE 高性能内核开发提供了简洁的范式,降低了工业级 AI 内核的开发门槛,便于后续迭代与社区复用。
4.3 内核级与层级性能对比
研究人员首先评估了 Dispatch+GroupGEMM 和 GroupGEMM+Combine 两个阶段的内核级性能,结果如图 3 所示。
图 3:UniEP 在集群 1 和集群 2 上的内核级性能
该图表对比了在带宽受限(集群 1)与高带宽(集群 2)环境下,UniEP、COMET 以及串行基线在分发和合并内核上的性能差异。带宽越受限,UniEP 的优势越显著,最高可实现 1.87 倍的加速;在高带宽场景下,其优势依然通过单流融合得以保持。其核心优势源于中继工作带宽的压缩以及单流无气泡的设计,这验证了 UniEP 对通信瓶颈场景的强大适配性,也证明了内核融合与带宽优化的协同增益。
Dispatch+GroupGEMM 阶段
在带宽受限的集群 1 上,UniEP 实现了显著的性能提升。
- 在 8k 序列长度下,几何平均加速比是 Serial 的 18.40 倍,是 COMET 的 1.32 倍。
- 在 32k 序列长度下(排除 OOM 的 MoE-8 和 MoE-11),加速比是 Serial 的 11.20 倍,是 COMET 的 1.30 倍。
在高带宽的集群 2 上,由于带宽可用性更高,收益虽然略低,但仍然十分显著。
在序列长度为 8k 的场景下,UniEP 的运算速度达到了 Serial 方案的 7.44 倍,以及 COMET 方案的 1.57 倍。当序列长度扩展至 32k 时,其加速效果依旧显著,分别是 Serial 的 3.57 倍和 COMET 的 1.45 倍。
需要特别指出的是,COMET 无法支持 MoE-2 和 MoE-12 这两种配置。原因在于,COMET 仅实现了针对特定 值和 Top-k 值的内核,并未兼容 和 Top-k=6 的情况。这充分暴露了现有系统在可移植性方面的短板,而 UniEP 凭借其统一的抽象层,能够灵活适配任意的 和 Top-k 配置。
GroupGEMM+Combine 阶段
该阶段的性能趋势与 Dispatch+GroupGEMM 阶段保持一致。
- 在 Cluster1 上,UniEP 的性能是 Serial 的 11.56 倍(8k 序列)和 8.23 倍(32k 序列),同时也是 COMET 的 1.31 倍(8k 序列)和 1.87 倍(32k 序列)。
- 在 Cluster2 上,UniEP 相较于 COMET 的加速比分别为 1.21 倍(8k 序列)和 1.07 倍(32k 序列)。
基准分析
虽然 Serial 基准借助了 DeepEP,但其性能依然不佳,这主要归咎于标准 GroupGEMM 实现中所采用的专家循环模式。该模式为了获取形状元数据,需要频繁地进行 CPU 与 GPU 之间的同步操作,由此产生的巨大开销远远超过了优化后通信所能节省的时间。
UniEP 相对于 COMET 的优势,主要源于以下两点:
- 中继 Worker 通过 intra-node 多播机制,有效降低了物理流量,这是 COMET 未能实现的优化手段。
- 分析追踪记录显示,COMET 存在对齐气泡问题,这是由双流上内核异步启动所导致的空闲间隙。UniEP 通过将操作融合到单流上的 MegaKernel 中,彻底消除了这些气泡。
集群敏感性
在带宽受限的 Cluster1 上,加速效果更为显著,这符合预期:当系统受限于通信时,重叠操作的效果会最大化。而在 Cluster2 上,主要收益则从隐藏带宽开销,转向了减少同步操作带来的开销。
接下来,研究人员汇总了前向传播与反向传播的延迟(不包括门控部分),并评估了层级性能,结果展示在图 4 中。
图 4:UniEP 在集群 1 与集群 2 上的层级性能表现。该图表整合了完整 MoE 层的前向与反向延迟,显示在长序列场景下,UniEP 的优势持续扩大;在集群 1 中,相较于 COMET 的提速幅度超过了 20%。单流融合消除了跨流同步的开销,确定性的 token 排序保障了数值的稳定性,而中继工作则减少了 NVLink 上的冗余传输。层级性能贴合工业级训练的实际需求,证明了 UniEP 不仅内核高效,更能在一个完整的训练链路中兼顾性能、精度与稳定性,完全适配真实的大语言模型训练场景。
在 Cluster1(8k 序列长度)上,UniEP 使得前向传播速度提升了 11.98 倍(相较于 Serial)和 1.08 倍(相较于 COMET),反向传播速度则提升了 4.00 倍(相较于 Serial)和 1.03 倍(相较于 COMET)。随着序列长度增加,UniEP 相对于 COMET 的优势进一步扩大。在 32k 序列长度下,其前向加速比达到了 1.22 倍。这验证了 UniEP 在减少通信方面的优化效果:随着 token 数量的增多,路由到同一 rank 的冗余概率也随之增加,这使得中继 Worker 能够节省更多的 NVLink 带宽。
在 Cluster2 上,由于带宽充足,这种流量减少的效果并不占主导地位,UniEP 相对于 COMET 的加速比稳定在约 1.19 倍(前向,32k)和 1.09 倍(反向,32k)。
4.4 长上下文与端到端训练性能
为了评估在长上下文训练中的可扩展性,研究人员测试了 128k 序列长度下的性能表现,其绝对延迟数据详见表 8。
表 8:序列长度 128k 下的绝对性能(毫秒)。该表格展示了在超长序列训练场景下,UniEP、COMET 以及串行基线的延迟数据。UniEP 相较于基线实现了 2.38 至 6.9 倍的提速。在超长序列下,通信压力急剧增大,UniEP 的单流融合与带宽压缩优势得以最大化,其单步延迟显著低于基线。在工业级的长上下文训练中,超过 10% 的吞吐量提升可以转化为巨大的算力成本节约,这验证了 UniEP 在大规模、长序列大语言模型训练中的核心价值,能够满足下一代大语言模型的训练需求。
在 Cluster1 上,UniEP 保持了强劲的领先优势:其前向传播速度比 Serial 快 6.90 倍,比 COMET 快 1.28 倍。在 Cluster2 上,差距则表现为 Serial 的 2.38 倍和 COMET 的 1.33 倍。在此规模下,Serial 基准变得更具竞争力,因为庞大的计算量掩盖了同步所带来的恒定开销。然而,UniEP 仍然为前向+反向传播提供了超过 10% 的性能改进。在拥有数千个 GPU 的大规模训练集群中,MFU 提升 10% 意味着可以节省数百万美元的计算时间。
最后,研究人员在 128 个 GPU(16 个 Cluster1 节点)上,以 512k 的序列长度进行了生产环境下的训练运行。UniEP 将训练吞吐量从每天 1270 亿个 token 提升到了每天 1380 亿个 token,实现了 1.09 倍的加速。至关重要的是,这种性能提升是在保持比特级可重复性的前提下实现的,确保了训练轨迹在数学上与经过验证的串行基准完全一致。
4.5 消融实验:量化各优化组件的贡献
为了量化 UniEP 中各项优化的独立贡献,研究人员在 Cluster1(8k 序列长度)上,评估了三种累积配置下的 MoE 层端到端前向和反向传播延迟(毫秒):
- O:UniEP MegaKernel,具备计算通信重叠、确定性 token 排序和动态调度功能,但未包含带宽优化或自动调优。
- B:在 O 的基础上,增加了中继 Worker 带宽优化,通过 intra-rank 多播来减少 NVLink 流量。
- A:在 B 的基础上,加入了用于最优 SM 和 Warp 分配的解析自动调优器,并包含了优先级 token 调度。这是完整的 UniEP 系统。
结果如表 9 所示。
表 9:集群 1 上前向 + 反向延迟(毫秒)的消融实验。该表格通过消融实验验证了各个模块的价值:带宽优化带来了 6% 到 36% 的提速,自动调优则进一步贡献了 15% 到 68% 的提速,全模块协同工作后,相较于 COMET 的提速幅度达到了 24% 到 73%。单流融合消除了同步气泡,中继工作压缩了带宽,解析模型实现了精准调优,三者缺一不可。消融结果清晰地揭示了 UniEP 性能优势在模块层面的归因,证明了该方案是一个系统性的优化,而非单点改进,为后续的 MoE 内核优化指明了清晰的方向。
结果表明:
- 带宽优化(O→B)通过使用中继 Worker 的 intra-rank HBM 复制,取代了冗余的 inter-rank 传输,将延迟降低了 1.06 倍至 1.36 倍。其收益随着 Top-k 值和每个 rank 的专家数量的增加而增加,这决定了将多个 token 路由到同一个目标 GPU 的概率。
- 自动调优器(B→A)通过为每个工作负载识别最优的 SM 分区和 Warp 分配,贡献了额外的 1.15 倍至 1.68 倍的加速,证实了性能模型能够在各种模型架构上有效地探索约 10^5 的庞大配置空间。
- 完整的 UniEP 系统(A)在所有支持的配置上,性能均优于 COMET,提升幅度在 1.24 倍至 1.73 倍之间。
实验结果全面验证了 UniEP 的性能优势与数值一致性。在测试过的所有硬件和模型配置下,UniEP 都实现了显著的性能提升,同时严格保持了比特级的数值一致性。在拥有 128 个 GPU 的生产训练集群上,UniEP 将训练吞吐量提升了 9%,这充分证明了其在工业级场景下的实用性与价值。
五、相关工作对比
MoE 训练效率是近年来深度学习系统领域的研究热点,研究人员从高性能内核、计算通信重叠和系统框架等多个方面开展了大量工作。
然而,这些工作大多存在优化零散、缺乏统一抽象、牺牲数值一致性等问题。UniEP 通过统一的 MegaKernel 架构,在严格确保数值一致性的前提下,实现了最大化的计算通信重叠,这代表了 MoE 训练系统领域的一个重要突破。
5.1 高性能内核库与张量编译器
针对专家模型进行调优的高性能库,是深度学习系统的基石。
计算与通信的现状
在计算层面,CuBLAS、CuDNN 以及 CUTLASS/CuTe 代表了计算密集型内核的最高水准。它们通过精细的手动内存层级管理(例如利用 TMA 和异步复制等特性),实现了接近硬件峰值的 Tensor Core 利用率。而像 FlashAttention 和 FlashInfer 这类专用注意力内核,则进一步优化了 IO 复杂度。
在通信层面,NCCL 已成为 AllReduce、AllGather 等集体操作的行业标准。但 NCCL 主要针对稠密张量并行进行了优化,并未提供对专家并行(EP)中稀疏、动态模式的专门支持。为了解决这个痛点,DeepEP 应运而生。它利用底层的 NVSHMEM 原语(如 IBRC、IBGDA),直接从 GPU 发起对等通信,绕过了主机 CPU 的干预,从而能够饱和物理带宽。
张量编译器与 DSL 的崛起
张量编译器和领域特定语言(DSL)的出现,显著降低了内核开发的门槛。
- Halide 和 TVM 率先引入了计算定义与调度原语的分离。
- 近期的进展则聚焦于以 tile 为中心的编程模型:Triton 和 TileLang 通过暴露块级语义,在易用性和性能之间取得了平衡。
- NVIDIA 的 CuTile 和 CuTeDSL 也在 Python 层面提供了类似的抽象。
- 在通信领域,MSCCL 和 MSCCL++ 允许开发者使用 put/get/signal 等原始操作,以可编程的方式合成集体算法,从而实现拓扑感知的优化。
UniEP 正是构建于 Triton-distributed 之上,并扩展了其能力,以支持融合的计算与通信流水线。与传统的内核库不同,UniEP 不再将计算和通信视为孤立的操作,而是将它们融合成一个统一的 MegaKernel,从而实现细粒度的重叠。
5.2 计算与通信重叠技术
计算与通信的重叠是隐藏分布式训练中通信延迟的关键技术。现有的方法主要分为多流方法和设备端信令方法两类。
多流方法是目前最主流的方案,被 Megatron-LM、Centauri 和 TorchTitan 等框架广泛采用。其原理是将计算和通信内核放置在不同的 CUDA 流上,依赖 CPU 来管理同步。这种方法存在两个固有局限:
- 首先,为了适应重叠槽,大的 GEMM 操作必须被拆分成更小的块。这会减少每个内核的线程块数量,加剧波量化效应。当线程块的尾波无法充分利用 GPU 时,会导致算术强度下降。
- 其次,依赖 CPU 来启动内核和同步流,会引入不可忽略的抖动和开销。在大规模部署中,这种开销常常会破坏重叠调度。
设备端信令方法通过使用设备端信号量(全局内存标志)来同步不同的计算和通信内核,从而减轻了 CPU 的开销。CoCoNet、COMET、FLUX 和 TileLink 都采用了此方法。然而,它们依然依赖于双流执行。DeepSeek-V3 采取了更激进的策略,将下一个微批次的通信与当前微批次的计算重叠。尽管这种双批次方法对特定架构有效,但它并不适用于 FSDP 训练,因为拆分两个批次会改变梯度累加的顺序。由于浮点数加法的非结合性,这会破坏比特级的可重复性,这在严格的训练场景中是不可接受的。
相比之下,UniEP 通过融合的 MegaKernel 在单流内部实现了重叠。通过在 SM 级别调度资源,UniEP 不仅消除了 CPU 开销,也无需在数值精度上做出妥协。最近的工作,如 Mirage 和 Spector 等人,使用 MegaKernel 进行推理,将整个 LLM 融合到一个 CUDA 内核中。这种全 LLM 融合的方法对于批量大小为 1 的推理是有效的,但对于大批量训练而言,其开发复杂性难以承受,且性能提升微乎其微。UniEP 是首个将 MegaKernel 技术成功应用于 MoE 训练领域的工作。
5.3 MoE 训练与推理框架
MoE 训练框架的效率是近年来的研究焦点。TransformerEngine 和 vLLM 提供了高度优化的 GroupGEMM 内核。以动态性为核心的工作,如 MegaBlocks,提出了块稀疏格式来处理可变的 token 负载而无需填充。系统级工作,如 HeterMoE,针对异构集群进行了优化,而 DeepSpeed-MoE 则专注于模型压缩和通信调度。MegaScale-MoE 集成了 FLUX,以在大规模运行中隐藏通信成本。
尽管有这些进步,但在 Megatron-LM 等生产级框架中的采用仍然趋于保守。临时优化的内核在集成时常常引入复杂性和脆弱性。UniEP 通过提供一个统一的、数学上严谨的抽象来弥合这一差距,它既提供了激进重叠带来的性能优势,又保持了工业级 LLM 训练所需的稳定性和精度。
在推理方面,包括 DeepSeek-EPLB、FasterMoE 和 MegaScale-Infer 在内的推理框架,通过将专家权重复制到不同的 rank 来平衡不同专家的工作负载。UniEP 与专家放置策略是正交的,这两种方法在不同的层级上运行,可以结合起来以进一步提升推理性能。
与现有工作相比,UniEP 的核心优势在于其统一的 MegaKernel 架构和严格的数值一致性保证。它解决了现有方法中普遍存在的性能与精度的悖论,为 MoE 训练系统提供了一种新的设计范式。
六、结论与展望
UniEP 是 MoE 训练系统领域的一个重要里程碑。它首次将 MegaKernel 技术从推理扩展到训练领域,通过统一的架构实现了细粒度的计算通信重叠,同时严格保证了数值一致性。
实验结果表明,UniEP 在生产级硬件和模型上实现了显著的性能提升,并且已经在 128 GPU 的生产集群上得到了验证。尽管如此,UniEP 仍存在一些局限性,未来还有许多值得探索的方向。
6.1 结论总结
本文提出了 UniEP,一个统一的专家并行训练系统,通过可组合的 MegaKernel 架构来缓解专家并行中的通信瓶颈。与之前的工作不同,UniEP 实现了细粒度的计算通信重叠,同时通过确定性的 token 排序严格保证了数值一致性。
UniEP 的核心贡献可以总结为三点:
- 首次将 MegaKernel 架构应用于 MoE 训练,在单流内部实现了高性能的计算通信重叠,同时严格保留了数值精度。
- 引入了一个利用 token 重映射和参数空间搜索的统一 EP 抽象,能够自动适应不同的 MoE 工作负载,消除了手动选择原语的复杂性。
- 在配备 NVIDIA Hopper GPU 的集群上,对 DeepSeek、Qwen 和 Kimi 变体等生产级工作负载进行了评估。实验证明,UniEP 在核级基准测试和端到端训练上,相比最先进的工作实现了显著的加速,最高可达 1.38 倍。
UniEP 的 MegaKernel 实现已在 https://github.com/ByteDance-Seed/Triton-distributed 开源,为社区提供了一个高性能、可扩展的 MoE 训练基础。
6.2 进阶分析:方法的边界与局限性
尽管 UniEP 取得了显著的成果,但我们必须客观地认识到它的边界和局限性,避免过度夸大其价值。
首先,UniEP的性能优势主要体现在通信受限的场景中。当MoE模型的计算强度较高,或集群带宽非常充裕时,通信瓶颈不再成为主要制约因素,UniEP的优势会相应减弱。以Cluster2环境下32k序列长度为例,UniEP相比COMET的反向传播加速比仅为1.09倍。展望未来,如果GPU架构中互连带宽的增长速度超过计算能力的提升速度,UniEP的性能优势可能会进一步降低。
其次,UniEP目前依赖Triton-distributed框架。虽然该框架支持AMD GPU,理论上可以将UniEP迁移至AMD平台而无需大规模修改,但实际性能仍需验证。此外,在最新GPU架构上,Triton内核的性能可能不如高度优化的CUDA内核。尽管论文指出UniEP的设计是语言无关的,可以用CUDA重写以弥补这一差距,但这需要投入大量的工程资源。
第三,非比特一致版本的UniEP性能提升有限,仅为2%到8%,在某些场景下甚至会出现性能下降。这表明,即使放弃数值一致性,现有的重叠技术也已经接近理论极限。未来的性能突破可能需要从根本上改变MoE的架构,而非仅仅优化通信与计算的重叠。
第四,自动调优虽然已优化至144毫秒,但对于动态变化的工作负载,实时调优仍面临挑战。例如,在训练过程中,如果门控网络的路由分布发生显著变化,之前缓存的最优配置可能不再适用。尽管分桶记忆化策略可以缓解这一问题,但对于极端动态的工作负载,可能需要更智能的在线调优方法。
最后,UniEP目前仅支持NVIDIA Hopper架构,对更早的架构(如Ampere)以及其他厂商的GPU(如AMD、Intel)支持尚不完善,这限制了它在更广泛硬件环境中的应用。
6.3 未来工作
论文作者明确指出了几个未来的研究方向:
-
移植到其他硬件平台:UniEP的概念可以推广至其他GPU平台,包括AMD GPU和最新NVIDIA GPU。Triton-distributed对AMD GPU的支持为将当前实现迁移至AMD GPU提供了可能性,无需重大修改。
-
用CUDA重写内核:虽然基于Triton的内核在Hopper GPU上可实现与CUDA内核相当的性能,但在最新GPU架构上可能存在差距。未来可用CUDA重写UniEP的内核,以进一步提升性能。
-
扩展到更多MoE变体和分布式训练场景:目前UniEP主要针对标准专家并行训练,未来可扩展至支持更多MoE变体,如Switch Transformer、GLaM等,并结合其他分布式训练策略,如张量并行和流水线并行。
NeuralTalk 视角
从更宏观的领域趋势来看,UniEP的成果可能催生以下几个新的技术方向:
第一,将MegaKernel架构扩展到3D并行的其他维度。目前UniEP仅优化了专家并行的通信与计算重叠,未来可将MegaKernel的思想扩展至张量并行和流水线并行,实现整个Transformer层的融合。这将进一步消除不同并行维度之间的同步开销,提升整个训练系统的效率。
第二,结合动态专家路由与负载均衡技术。UniEP目前假设专家路由是静态的,未来可将动态专家路由和负载均衡技术集成至MegaKernel中,实现路由与计算的协同优化。例如,可在MegaKernel中动态调整专家负载,避免某些专家过载而其他专家空闲的情况。
第三,探索MegaKernel在多模态MoE训练中的应用。随着多模态大模型的兴起,多模态MoE成为重要研究方向。多模态MoE的token路由更为复杂,涉及不同模态的token和不同类型的专家。UniEP的MegaKernel架构可自然扩展至多模态场景,处理不同模态的token路由与计算。
第四,将自动调优框架与机器学习方法结合。目前UniEP的自动调优基于解析性能模型,未来可将机器学习方法引入自动调优框架,通过学习历史调优数据来预测最优配置,进一步提高调优速度与准确性。特别是对于动态变化的工作负载,机器学习方法能更好地适应路由分布的变化。
第五,推动MegaKernel成为分布式训练的标准范式。长期以来,分布式训练系统基于计算与通信分离的设计范式。UniEP的成功证明了MegaKernel架构在分布式训练中的可行性与优势。未来,MegaKernel可能成为分布式训练的标准范式,改变整个深度学习系统的设计思路。
UniEP不仅是一个优秀的MoE训练优化系统,更代表了一种新的分布式训练设计范式。它打破了计算与通信分离的传统思维,通过GPU级的细粒度调度与融合,实现了性能与精度的双赢。随着硬件与软件技术的不断发展,MegaKernel架构有望在未来的深度学习系统中发挥越来越重要的作用。
关注“鲸栖”小程序,掌握最新AI资讯
本文来自网络搜集,不代表鲸林向海立场,如有侵权,联系删除。转载请注明出处:https://www.itsolotime.com/archives/35241

