昇腾910C推理优化实录,源码级改造实现30%提速,MoE并行与算子重构成关键

得物技术团队通过深度修改vllm-ascend源码,在昇腾910C上实现大模型推理性能提升30%。核心优化包括MoE共享专家多流并行、事件开销削减及MTP投机解码等,累计延迟从14.2ms降至8.0m...

人工智能

在国产AI芯片加速落地的背景下,昇腾910C作为华为面向大模型推理场景推出的高性能NPU,其实际部署效能正成为行业关注焦点。近期,得物技术团队公开了针对该芯片的深度优化实践,通过源码级改造与算子层重构,在不更换硬件的前提下将大模型推理延迟降低30%,累计TPOT(每Token处理时间)从基线14.2ms压缩至8.0ms,验证了软硬协同优化的巨大潜力。

这一成果并非依赖简单参数调优或镜像升级——此前上篇已覆盖环境配置与基础调优;本次下篇聚焦更底层的工程突破:对vllm-ascend框架进行定制化修改,重点解决MoE(混合专家)结构中的执行瓶颈,并系统性削减调度开销。

MoE共享专家并行:从串行到双流重叠

MoE是当前主流大模型(如Mixtral、DeepSeek-MoE)的核心组件,其标准执行流程为:路由专家计算(GroupedMatmul)→ 共享专家计算 → AllReduce通信,三者严格串行。得物团队分析发现,共享专家的计算与路由专家无数据依赖,且在MC2通信模式下,AllReduce是唯一通信操作,完全具备并行条件。

优化方案是引入独立的side stream(shared_experts_calculation_stream),将共享专家的计算与AllReduce均迁移至此流,与default stream上的路由专家并行执行。具体实现中,通过npu_stream_switch切换流上下文,并在_forward_shared_experts函数中保留流状态直至AllReduce完成,避免频繁切回主流程。

值得注意的是,该并行策略在bf16非量化路径下安全可行:共享专家的gate_up与down两阶段matmul均作用于原始hidden_states,不依赖路由专家输出结果。实测表明,此项改动显著摊薄了MoE层的总耗时。

事件开销削减:移除冗余同步点

并行化后,原用于同步共享专家与路由专家的dispatch/combine/gmm2事件不再必要。若继续保留record_event/wait_event机制,每个MoE层将额外产生固定开销。团队为此新增skip_dispatch_combine_events标志位,在overlap路径启用前置位、退出后复位,动态禁用相关事件记录。

该调整涉及三处代码修改:moe_comm_method.py中清空before_dispatch_evt与before_combine_evt;moe_mlp.py中三处before_gmm2_evt置空;并在ascend_forward_context.py中将新标志加入白名单。此举虽细微,却有效消除了隐性延迟。

多层级叠加优化:从单点突破到系统整合

除上述核心改造外,团队还整合多项辅助优化形成协同效应:

  • 启用HCCL_OP_EXPANSION_MODE=AIV,利用昇腾通信库的AIV模式提升集合通信效率;
  • 应用静态kernel预编译,避免运行时JIT编译开销;
  • 采用虚拟内存+pin_memory+page_size组合,优化显存访问局部性;
  • 升级CANN 9.1.0镜像,获取底层驱动与算子库更新;
  • 引入batch memcpy、多流重叠、算子缓存及MoE预取等调度策略;
  • 结合SuperKernel与多流重叠增强(含事件/预取填窗),进一步压榨硬件并发能力。

如图所示,各项措施逐层叠加,单步降幅从-1.2%到-18.7%不等,最终累计降幅达43.7%。其中静态kernel预编译贡献最大(-35.7%),而MoE并行与事件精简共同构成第二梯队(-21.0%与-40.0%)。

为何30%提速具有标志性意义?

需明确的是,“提速30%”并非单一优化结果,而是整套方法论落地后的综合体现。在昇腾910C已具备较强硬件算力的基础上,进一步挖掘性能空间的关键在于“消除软件栈的低效环节”——这恰恰是国产芯片生态成熟度的试金石。

对比行业趋势,近期DeepSeek开源其推理框架DeepInfer,强调系统效率而非单纯算力堆砌;单集群日吞吐达155万亿Token,单位Token成本成为新定价锚点。这意味着,从芯片到框架再到应用层的全栈优化,已成为AI基础设施竞争的核心战场。

昇腾910C的此次优化实践,提供了可复用的技术路径:

昇腾910C推理优化措施与性能对比表
  • 问题定位精准:基于性能剖析工具锁定MoE层为瓶颈,而非泛泛而谈“整体慢”;
  • 改造边界清晰:仅修改必要模块,保持与上游vLLM兼容性;
  • 验证数据透明:公开各步骤TPOT变化,便于同行复现与评估;
  • 工程思维务实:不追求理论极限,而是平衡开发成本与收益,例如未强行启用FUSED_MC2以避免互斥冲突。
  • 这也反映出当前国产AI生态的演进方向:早期聚焦“能跑”,中期追求“跑得快”,如今进入“跑得稳、省、可维护”的工程化深水区。昇腾平台原生适配能力的提升,正加速私有化部署在金融、政务、制造等B端场景的落地。

    值得补充的是,类似思路已在其他领域验证有效性。例如RPCS3模拟器通过切换Windows SegmentHeap内存分配机制,使《GT赛车6》重编译时间缩短32%,本质也是通过减少多线程竞争开销释放性能。这说明,无论GPU、NPU还是CPU平台,底层系统调优仍是提升推理效率的重要杠杆。

    不过,此类优化高度依赖具体模型结构与硬件特性。得物案例基于vLLM适配昇腾的特定版本(vllm-ascend 0.23.0rc1),对Llama、Qwen等架构友好,但未必直接适用于所有MoE变体或非Transformer模型。后续需持续积累不同模型的优化模板。

    随着更多企业披露类似实践,国产算力的“真实可用性能”正逐步接近纸面规格。当推理延迟从秒级迈入百毫秒级,AI应用的交互体验将发生质变——这不仅是技术指标的进步,更是产业落地的临界点。