写点什么

昇腾大规模专家并行技术解码 —— All to All 通信优化

作者:科技热闻
  • 2025-04-10
    浙江
  • 本文字数:2784 字

    阅读完需:约 9 分钟

随着 DeepSeek 火爆全网,混合专家(Mixture of Experts, MoE)技术也成功出圈。凭借优秀的性能,MoE 成为大语言模型(LLM)界的顶流。在各行各业加速接入国产开源大模型 DeepSeek 的同时,人工智能领域大范围落地应用也带来了庞大的算力需求,业界的大模型推理系统开始采用大规模专家并行方案,大规模专家并行集群推理能够提升吞吐和降低时延,也在推理过程中带来了通信时延长、负载不均衡、算力浪费等新挑战。优化负载均衡、缩减通信开销以及高效利用资源,是当前亟待解决的技术难题。针对这些难题,昇腾推出大规模专家并行集群推理解决方案,通过多专家负载均衡和极致通信优化,实现极致吞吐,单卡性能提升到 3 倍,Decode 时延降低 50%+,实现更高性能,提升客户体验。



本期,将为大家重点介绍昇腾大规模专家并行(EP)针对 All-to-All 通信、计算瓶颈的优化:通过动态 EP(Prefill 阶段)、算子融合(Decode 阶段)的策略优化分配专家计算节点,提升集群利用率。

传统专家并行架构的挑战:

All-to-All 的不足

许多企业用户接入 DeepSeek 后,业务量激增,推理集群需要从 16 卡扩展到千卡。然而,扩容并非简单堆叠硬件,就像普通公路单纯拓宽车道,若行驶车辆频繁变换车道、上下乘客,仍会导致交通拥塞。而大规模专家并行方案,如同将普通公路升级为智能公路:通过一种动态路由算法(智能分流系统),给不同特性的数据流(乘客)分配卡(车辆)并匹配专属的专家模型(路径)——让需要极速响应的数据驶入"超算快车道",让复杂计算任务进入"重载专用道“。

也就是说,专家并行架构中,需要解决的关键问题之一就是如何高效调度数据流动。常用的数据传输通信策略 All-to-All:

每个节点发送 N 份不同数据(每个目标节点对应 1 份),同时每个节点接收每个节点发送给自己的数据,数据可能与其他节点不同,最终每个节点拥有专属的接收数据集合。这就像所有车厢互相交换全部乘客数据(全量交互)。分发精准,但也存在通信复杂,带宽敏感的问题

● 通信复杂度高:数据块频繁交换,通信耗时占端到端推理 30%以上,算力利用率不足 5%。

● 带宽敏感:在大规模分布式系统中,尤其是当节点数量众多且通信数据量较大时,所有节点之间同时进行数据交换会对网络带宽造成巨大压力。

● 适用场景:4 机及以上有一定收益,但大规模集群下效率仍不理想。

昇腾 MoE 分阶段 All-to-All 优化

昇腾针对 All-to-All 算法的不足,结合 LLM 推理两阶段的不同特点,提出了相适应的优化方案。



我们知道,LLM 推理包含 Prefill 和 Decode 这两个阶段,Prefill 阶段处理用户输入的提示词,构建 KVcache,生成首个输出词,为计算密集型;Decode 阶段针对已有 KVcache,频繁读取继续生成输出 Token,形成完整回复,为访存密集型。接下来我们将具体介绍昇腾大规模专家并行方案是如何利用阶段特点和 All-to-All 特点,因势利导,实现通信范式的优化:



1.MindIE 动态 EP(Prefill 阶段)实测显存节省约 50%

动态 EP 通过动态路由调度机制,采用专家归属识别,All-to-All 精准分发的技术路径,以车厢和乘客的例子来说:就像按目的地等条件,仅在必要车厢间交换特定乘客(按需交互)。单一的 All-to-All 策略,在 Prefill 阶段,面临单一请求对应多个输入 token 的计算密集型场景时,通信效率低。动态 EP 的核心优势就此凸显,采用稀疏通信策略,传输必要数据降低通信量,同时通过预分配通信缓冲区消除动态内存管理的运行时开销。

2.CANN Dispatch/Combine 融合算子(Decode 阶段)实测吞吐性能提升约 20%

a.Dispatch 模块:不同专家接收的 Token 数据长度不一致,Dispatch 模块智能打包不同长度的数据块,实现动态 Shape 的 All-to-All 通信。

b.Combine 模块:实时重组分散数据,直接输出计算结果。

c.通过通信-计算深度融合,减少数据搬运次数,支持流式生成。

Dispatch 模块如同精准的快递分拣系统,在识别 Token 归属专家的同时,动态打包不同长度的数据块,通过优化后的 All-to-All 通信实时发往目标设备;Combine 模块则像高效的装配流水线,在接收端直接将分散的数据还原为完整计算结果。

针对 Decode 阶段一个请求对应一个 token 的访存密集型场景,Dispatch/Combine 算子通过融合集成,提升响应速度。

MoE 分阶段并行优化策略通过两大创新点重塑了解码流程:一是将原本分离的通信计算步骤深度融合,通过底层指针实现,减少数据搬运次数,并减少排序计算次数;二是支持动态 Shape 的 All-to-All 通信,实现不等长的数据分发,适配每个 Token 生成时不断变化的计算需求。在聊天对话等需要逐字生成的场景中,Dispatch/Combine 通算融合方案真正实现了流式生成场景的毫秒级响应,实验室基于 DeepSeek V3 验证,性能提升最高可达 25%。

使用方法

昇腾大模型专家并行方案支持 ALL to ALL 优化策略。集群规模大于或等于 64 张卡时,部署 DeepSeekV3 类 MoE 模型,即可启用动态 EP 和 Dispatch/Combine 融合算子。DeepSeek V3 模型部署过程可参考:https://modelers.cn/models/MindIE/deepseekv3

开发者若有二次开发需求,CANN Dispatch/Combine 融合算子接口调用方法如下:

每个算子分为两段式接口,必须先调用“aclnnMoeDistributeDispatchGetWorkspaceSize”接口获取计算所需 workspace 大小以及包含了算子计算流程的执行器,再调用“aclnnMOEDistributeCombine”和“aclnnMOEDistributeDispatch”接口执行计算。

1 aclnnStatus aclnnMOEDistributeCombineGetWorkspaceSize( const aclTensor *expandX, const aclTensor *expertIds,

2  const aclTensor* expandIdx, const aclTensor* epSendCounts, const aclTensor* expertScales, 

3  const aclTensor* tpSendCountsOptional, const aclTensor* xActiveMaskOptional, 

4  const aclTensor* activationScaleOptional, const aclTensor* weightScale, 

5  const aclTensor* groupListOptional, const aclTensor* expandScales, const char* groupEp, 

6  int64_t epWorldSize, int64_t epRankId, int64_t moeExpertNum, const char* groupTp, 

7  int64_t tpWorldSize, int64_t tpRankId, int64_t expertShardType, int64_t sharedExpertRankNum, 

8  int64_t globalBS, int64_t outDtype, int64_t commQuantMode, int64_t groupListType, aclTensor* out, 

9  uint64_t *workspaceSize, aclOpExecutor **executor);

10 aclnnStatus aclnnMOEDistributeCombine(void *workspace, uint64_t workspaceSize, aclOpExecutor *executor, 

11 aclrtStream stream)

12 aclnnStatus aclnnMoeDistributeDispatch(void *workspace, uint64_t workspaceSize, aclOpExecutor *executor, 

13 aclrtStream stream)

总结

在大规模专家并行方案中,昇腾通过 MoE 分阶段并行优化技术,针对 All-to-All 算法重点创新,在 Prefill 阶段启用 All-to-All 动态 EP 压缩通信,Decode 阶段切换为 Dispatch/Combine 实现超低延迟,兼顾吞吐量与实时性。

结语

本期为大家介绍了昇腾针对大规模专家并行场景的 MoE 分阶段并行优化技术,下期内容,我们将解析大规模专家并行场景下,昇腾如何实现技术突围,降低时延通信,敬请关注!

用户头像

科技热闻

关注

还未添加个人签名 2021-05-31 加入

还未添加个人简介

评论

发布
暂无评论
昇腾大规模专家并行技术解码 —— All to All 通信优化_科技热闻_InfoQ写作社区