华为全面揭秘超大规模MoE模型昇腾推理部署技术,国产芯片推理性能再创新高
️推理部署,成为大模型落地重中之重
从2017年Google提出Transformer——这一人工智能中最常用的神经网络架构,到DeepSeek V3/R1在2025年春节一夜爆火,超大规模MoE架构大模型的重点逐渐从训练开发转向推理支撑的应用落地。
推理场景是大模型认知能力的"试金石",是大模型商业化落地的核心能力,从抢先上线DeepSeek模型到API服务价格战,在推理为王的时代,谁能最极致的提升推理部署计算效率,谁才能真正获得大模型商业成功。
️数学补物理,极致提升计算效率
“数学补物理” ,通常指通过数学理论、算法和建模方法,弥补传统物理设备开发在复杂系统分析、大规模计算或多场耦合问题中的局限性。华为轮值董事长孟晚舟曾在2025年新年致辞中提到:
“华为十多个实验室与伙伴们的工程师组成“大杂烩”团队,面对天成AI集群系统和单芯片性能的严峻工程挑战,他们创造性应用数学补物理、非摩尔补摩尔、系统补单点等思想,在散热、供电、高速、高密及大芯片在板可靠性等工程领域突破极限。”
华为技术团队面向超大规模MoE模型的推理技术优化也是围绕着数学补物理这一思路,充分发挥等价数学变换,也就是在保持数学对象本质属性不变的前提下,通过代数变形、逻辑转换或结构重构等方式提升计算效率的方法,极致的提升了硬件集群的计算效率,包括️从点到面的推理框架侧优化技术,把数学最优实现变为物理最优的FlashComm通算优化技术,把串行计算变成四流并发的通算极致掩盖技术,以加法代乘法昇腾MLA最优实现,硬件感知亲和的大量创新算子等一系列核心技术孕育而生,并将通过一连串的技术报告首次全面披露这些宝贵的技术细节。
️开源共享,打造持久的开放协作生态
昇腾生态的建设不是一次性的工作,而这次昇腾超大规模MoE模型推理部署技术的揭秘,除了通过技术报告分享昇腾在超大规模MoE模型的推理部署技术之外,在不到一个月的时间之后,实现️这些核心技术的相关代码也都会陆续开源出来, 欢迎关注https://gitcode.com/ascend-tribe/ascend-inference-cluster️中的持续更新。
在与业界分享技术思路的同时,也通过开源的方式共同打造长期持续的开放协作生态环境,让昇腾亲和的技术能力通过这些开源项目真正的活跃起来,这体现出华为坚定建设开放生态的决心,让所有愿意尝试使用昇腾能力的专家有信心长期投入,也让所有积极参与贡献的开发者有信心持续耕耘,一起努力让昇腾生态在中国茁壮成长。
️超大MoE类模型推理的挑战
拥有6710亿参数,采用混合专家架构,在各种榜单表现出色的DeepSeek V3某种程度上代表了大模型发展的一个新趋势,即基于软硬件协同优化的模型架构,能够最大性能的发挥硬件平台的能力,在多种任务中表现出色,包括自然语言理解、代码生成和数学推理。我们暂且把DeepSeek V3为代表的大模型统称为超大MoE类模型。
尽管在性能上表现出色,并且有着大量开源的模型权重以及很多的包括DeepEP等在内的工具类项目,但对于想使用这类大模型的企业来说,能够部署完整版本的超大MoE类模型目前依旧面临多重挑战:
️首先,硬件部署规模要求更高。现在我们在和大模型进行交互聊天的时候,无时无刻不在使用大模型的推理。而由于其自身的尺寸规模,这不再是此前小尺寸模型在单机多卡甚至单机单卡就可以运行能够相比的。硬件集群逐渐成为“满血版”超大MoE类模型的标配。
️其次,模型规模庞大对推理效率提出了高要求。庞大的专家数量给硬件内存使用效率提出了很大挑战,需要合理的分布式并行和通信策略设计,才能将如此大量的专家有效的跑在硬件集群上。
️再次,超大MoE类模型的诸多架构创新,也带来了很多实际部署上的困难。比如其多头隐式注意力机制(MLA - Multi Head Latent Attention),虽然可以通过将原有的注意力机制的键值对通过一个投影矩阵压缩到一个较小的隐式向量空间中,但这种创新也为算子优化带来了新的挑战,比如其带来了中间变量膨胀且向量计算占比显著增加,这样给硬件对计算的加速提出了新的要求。
️昇腾使能技术对大模型集群推理的极致创新
为了解决如上提到的实际部署中遇到的问题,从模型和算子两个方面入手,我们基于昇腾硬件和组网方式,提出了多个亲和的优化策略,开发出了一整套面向集群的大规模专家并行的解决方案。
昇腾服务器有多种配置和型号,我们针对近期发布的CloudMatrix 384 超节点和Atlas 800I A2 推理服务器两种典型机型进行部署。为了解耦prefill 阶段的首token 时延约束和decode 阶段的解码时延约束,我们采用PD 分离部署的方式。
在框架侧,我们基于vLLM 框架,为了适配昇腾服务器,针对DP和EP 并行策略做了相应适配,在调度和KV 传输方面分别采用了Prefill调度分桶和灵衢互联与分层传输的技术来降低调度开销,在请求下发、调度策略、系统建链和框架前后处理方面做了性能优化,以实现整个系统的最优性能。
模型方面,我们采用A8W8C16 的量化策略,其中A8W8 采用INT8 的数据类型,C16 采用BF16 的数据类型进行量化。详细的部署方面,由于两种机型的定位和配置,特别是网络配置相差巨大,所以具体部署方案也不尽相同。
针对CloudMatrix 384 超节点,其特殊的组网方式为其提供了非常强大的优势。按照DeepSeek 的论文所述,Decode 部分是严重的通信主导,在MicroBatch 技术的加持下,几乎可以做到通信掩盖其他所有计算类操作。而CloudMatrix 384 的组网非常强大,使得通信耗时大幅降低,可以更进一步释放昇腾芯片的算力。
因此,针对超节点我们采用大规模EP 并行的方式来部署,针对Prefill 使用16 卡,针对Decode 使用144 卡,其中128 卡部署路由专家,16 卡通过DP 的方式部署共享专家,MLA 部分使用DP 的方式进行部署。超节点可以获得非常高的吞吐,当然由于各种情况的影响,包括时延约束的影响使得各部分耗时未能达到理想的线性度,带宽抢占和启动开销等带来一部分性能劣化,框架的耗时和调度开销带来了额外的时延增加,MLA 部分的序列负载均衡和MoE 部分的专家负载带来进一步的性能恶化;最后多种原因综合在一起,使得当前吞吐实现在保证50ms 时延下单卡decode 吞吐达到1920 token/s。
针对Atlas 800I A2 服务器,由于其是8 卡的服务器,我们需要采用多机互联的方式来进行。综合考虑模型吞吐和部署灵活性,我们选定使用2 机16 卡作为一个prefill 示例,使用4 机32 卡作为一个decode 示例。为了部署时尽可能的灵活,这里选用的卡数都比较少,这使得我们采用较小规模的EP 并行策略:每张卡上部署8 个路由专家和1 个共享专家。MLA 部分采用DP 并行策略,通信方式采用AllGather 方案。这种部署方式可以在卡数较少情况下依然达到相当可观的吞吐。这里值得一提的是,我们的通信方案采用的是AllGather 而不是Dispatch/Combine 的通信方案,该方案在真实负载下具有更好的性能表现。采用各种优化策略的情况下,实现了在100ms 时延下达到单卡吞吐速度808 tokens/S。
1.推理框架侧优化技术
1) API Server 扩展技术
团队提出了API Server 扩展技术,通过支持API Server 水平扩容策略,可以有效提升框架请求处理能力,降低用户请求延迟,提高系统吞吐量(QPS)。结合包括组网方案优化和全并行、全异步前后处理,可进一步实现最佳TTFT,提升推理服务的可用性与处理效率。
2)MoE模型负载均衡
团队提出了一种高效的负载均衡策略,通过动态负载均衡,热专家冗余部署,实时调度和动态监控等核心技术,显著提升MoE 模型推理性能。
2. FusionSpec推理投机加速技术
在实际应用中,投机推理技术更多聚焦于小批量(batch)低时延场景,如何将其高效应用于高吞吐量场景并实现性能收益最大化,成为当前亟待攻克的技术难题。
投机推理提升了模型解码阶段的计算密度,天然匹配昇腾高计算带宽比的特点。为了能够充分发挥昇腾算力大的优势,在低时延大并发场景下实现高吞吐,我们提出了投机推理引擎FusionSpec 深度优化MTP 在昇腾上的推理性能:
- 在推理流程上,将投机模型置于主体模型之后,直接使用主体模型的输出,并复用主体的控制参数,大幅减少了框架耗时,并亲和PD 分离的部署场景。
- 为了在投机推理开启时进一步发挥Ascend 的计算能力,减少NPU 的空闲时间,我们对投机推理的框架、采样(sampler)操作、多头潜在注意力(MLA)计算进行了优化。
️FlashComm :主流张量并行(TP)中使用AllReduce 进行通信的方案存在通信次数多,通信数据量大,通信数据格式比特数高等问题,且AllReduce 之后的如残差连接和归一化计算存在计算冗余,没有充分利用多卡并行能力。为此,我们提出FlashComm 网络通信方案:我们针对Deepseek 网络前三层稠密MLP 层,基于相同的集合通信逻辑将张量并行中的AllReduce 通信算子进行替换,并对通信算子在网络中位置进行编排,实现了低比特和低维度数据通信,从而有效降低了通信数据量和通信时延,并消除了网络中存在的冗余计算。
️层内并行转换技术:在FlashComm 的基础上,为进一步优化通信算子的时延,我们提出层内并行转换的优化方案:我们针对Prefill 阶段网络MLA 层重新设计了单层内使用的并行策略,灵活做到张量并行(TP)与数据并行(DP)的转化,消除节点内卡间求和的需求,且充分利用网络低数据维度和量化特性实现节点间通信量的大幅降低,从而显著优化了通信时延。
️计算通信并发:昇腾芯片提供了计算和通信的并发机制。MoE 层的计算过程中需要使用AllGather 汇聚各张卡上的Token 的特征进行激活专家的筛选和计算。我们的方案中,对于Gate 函数使用先计算后通信汇聚的方法,对共享专家使用DP 的方式,从而保证了Gate 函数的计算和通讯、共享专家的计算,以及特征汇聚的AllGather 函数之前没有依赖关系。我们利用昇腾的多流机制,将这三部分进行并发处理,从而最大化推理模型的性能。特别的,模型部署方面可以根据不同的需要进行更细致的设计,比如为了能更好的节省内存,共享专家可以采用机内TP 机间DP 的方式,共享专家的计算仍然可以和机间AllGather 通信或者其他机器传输来特征的机内通信进行并发掩盖。
️通信通信并发:昇腾芯片也提供了通信和通信并发的机制。当通信带宽利用率比较低的时候,可以把两个通信算子并发起来以掩盖通信算子的启动开销,同时提高通信带宽的利用率。DeepSeek 模型在进行AllGather 等通信时,可以将Norm 算子和量化算子移到AllGather 通讯的前面,从而降低通信的数据量,进而提高通信的效率。但是由于量化算子的前移,需分别通信量化后的激活值和scale,进而增大了通信算子启动开销。由于scale 的数据量较小,对带宽的占用极低,因此我们采用通信通信并发的机制,将通信激活值和通信scale 并发起来,在不增加激活值通信开销的前提下,掩盖掉scale 的通信代价。
️通信和权重预取的并发:昇腾芯片提供了缓存机制,算子在进行计算时,会优先从缓存中寻找数据,如果存在,则直接从缓存中读取数据,否则从HBM 中读取数据,而缓存的带宽是HBM 带宽的几倍。由于通信算子进行过程中HBM 带宽占用率较低,我们在通信算子进行过程中可以将后续算子需要的权重提前预取到缓存中,从而降低后续算子计算过程中的权重搬运开销。同时昇腾芯片支持灵活限定预取带宽,因此在通信过程中预取对通信性能影响很小。对于DeepSeek 模型我们在MoE 结束的ReduceScatter 预取MLA 中权重矩阵和KV cache,可以提升MLA 部分的计算性能。
️4.昇腾亲和的创新算子
1) MLA 算子优化:
️Attention 算子:MLA 相较于传统的Attention 算子(如MHA, GQA 类显著带宽瓶颈的算子),由于其中间变量膨胀且计算量显著增加,为算子优化带来了新的挑战。针对昇腾处理器的架构特性,我们对MLA 场景的FA 算子进行了算法重构以及硬件亲和的性能优化。
- 提出AMLA(Ascend MLA)算法,通过浮点二进制编码解析及原子累加操作实现乘性计算的加性等价转换,从而实现直接在Global Memory 上更新O 的步骤,无须进入Vector core,大幅降低中间变量的重复搬运。
- 对L1 缓存进行了细致规划,尽可能地减少数据重复搬入搬出的过程。
- 在工程实现方面,通过优化计算流程提高L2 cache 命中率,并且利用K-buffer 流水排布等策略,实现Cube 计算和Vector 计算互相掩盖,提高了算子整体性能。
同时,虽然当前版本的模型实现中并未采用KVCache的量化算法,但我们也对MLA 的Attention 计算,针对仅KV cache 的INT8 量化和Q/K/V 全INT8 量化场景均进行了深度的算子重构与极致流水优化。
️MLA 前序算子:针对复杂的MLA 前序算子,我们分别在Prefill 阶段和Decode 阶段采取了不同的优化策略:
- 在Prefill 阶段,我们通过双流并发等技术实现了流水掩盖,同时增加了FA 算子对多种输入输出模式的支持以消除纯访存类冗余算子。
- 在Decode 阶段,我们采用权重吸收,同时将前序算子深度融合为MLAProlog 算子,并且针对昇腾硬件架构进行了全方位的深度优化。
具体优化措施包括:采用权重预取减少流水线空泡;基于最小化搬运以及最大化带宽的tiling 策略;通过计算解耦降低指令依赖与等待;利用局部计算融合消除全核同步开销;运用昇腾定制指令集实现ICache 压缩,规避issue queue 阻塞风险等。
2) MOE 算子优化
️Dispatch/Combine 通算融合算子:在EP 部署模式中,MoE 中的专家分布在较大的通信域的各个卡上,每个Token 需要分发到对应的卡上进行计算,原始的实现方式使用InitialRouting 根据专家排序对所有Token 进行重排,再用AllToAll 以及AllToAllv 通信算子进行交换token。该实现方式在通信域比较大的场景下,存在通信次数多,卡间同步开销严重等问题,阻碍了整网端到端时延的提升。
因此,我们提出MoeDistributeDispatch 和MoeDistributeCombine 两个通算融合算子技术:将计算和传输拆解为Token 粒度的计算单位,通过流水排布实现通信和计算的并行执行;同时利用内存语义的通信技术直接向不同卡上的共享内存传输数据,从而减少了本地拷贝和等待数据的开销;我们通过本地内存筛选和拷贝的机制,减少了数据传输次数和卡间同步开销。
️SMTurbo-CPP 算子:针对MOE 层大通信域场景下,小数据量传输效率低的问题,我们提出SMTurbo-Concurrent Push and Pull (SMTurbo-CPP)技术:在内存语义级别对通信算子AllToAll(v) 进行优化,充分利用硬件并发能力,使用读写混合、聚合流水、批量检测等技术,提升了线程的访存效率与吞吐,显著降低Dispatch 和Combine 场景通信算子的时延。
细粒度分级流水算法:基于Atlas A2 系列产品,HCCL 支持细粒度的分级流水算法,可大幅提升集群中Allgather、ReduceScatter、AlltoAll 等集合通信算子的执行效率。该算法利用A2 组网的特性,实现了Server 内/Server 间的并发执行,以提高带宽利用率。
️性能表现
在2025 年4 月,硅基流动联合华为云基于CloudMatrix 384 超节点昇腾云服务和高性能推理框架SiliconLLM,用大规模专家并行最佳实践正式上线DeepSeek-R1。该服务在保证单用户20 TPS 水平前提下,单卡Decode 吞吐突破1920 Tokens/s,可比肩H100 部署性能。同时,经过主流测试集验证及大规模线上盲测,在昇腾算力部署DeepSeek-R1 的模型精度与DeepSeek 官方保持一致。
️结语
在人工智能大模型技术蓬勃发展的浪潮中,华为凭借其卓越的算力支撑和创新架构设计,正在为行业创新注入澎湃动力。华为发布昇腾推理系列关键技术,并将于近期开放技术代码,构建开放共赢的开发者生态,推动大模型技术的创新发展,为中国自主的人工智能生态体系贡献核心力量。