MoonshotAI/MoonEP
MoonEP: A Perfectly Balanced Expert Parallelism Library via Dynamic Redundant Experts
解决的问题
MoonEP 解决了混合专家(MoE)模型中专家并行(EP)的效率瓶颈,特别是负载不均衡问题。在标准 EP 中,某些 GPU 排名可能接收远多于其他排名的令牌("最热排名"问题),导致延迟增加、内存碎片化,以及训练过程中可能出现的内存溢出(OOM)错误。
工作原理
MoonEP 确保无论路由器如何分配,每个 GPU 排名处理的令牌数量完全相同。它通过以下方式实现:
- 动态冗余专家:该库在线规划少量冗余专家并预取它们,以在各排名间实现完美的负载均衡。
- 零拷贝通信:使用融合的 permute/unpermute 操作,将令牌直接发送到远程排名的最终专家分组位置,并返回缓冲区视图给计算,从而消除不必要的数据复制。
- 在线规划:高性能 GPU 内核以可忽略的开销确定专家和令牌的最佳分配。
- 静态内存形状:通过保持令牌的固定缓冲区大小,消除了每层主机同步的需要,并防止内存碎片化。
适用对象
该库专为需要优化通信开销并确保在多个 NVIDIA GPU(以及未来支持 Zhenwu PPUs)上实现稳定、均衡训练和推理的大规模 MoE 模型开发者和研究人员设计。
主要亮点
- 完美负载均衡:每个排名接收完全相同的令牌数量,使迭代时间不受路由不均衡的影响。
- 零拷贝分发:消除了通信缓冲区到用户缓冲区的复制,加快了原始通信速度。
- 防止 OOM:静态内存形状防止了在负载不均衡的 MoE 训练中通常因激活形状变化而产生的内存碎片化。
- 集成权重预取:包含专用机制,将冗余专家权重预取到本地槽位,以实现高效计算。
相关
- 项目
- 项目
- Dispatch
- Dispatch
- 项目