7.9
深览指数
科技Bestblogs·得物技术··AI 生成
国产算力·昇腾 910C 大模型推理优化(下):源码修改与算子优化,提速 30%|得物技术
得物技术在昇腾 910C 上对 vllm-ascend 做源码级与算子层优化,把 decode TPOT 从基线 14.1ms 压到 5.0ms(下降 64.8%)。文章给出六类具体手段:MoE 共享专家多流重叠、host 侧 block table 与 positions 冗余提交消除、FUSED_MC2 通算融合、SuperKernel 合并小 kernel、自研 matmul_allreduce_add_rmsnorm 融合算子、修复静态 kernel 编译并适配 MTP 捕获尺寸。最有价值的是它同时记录了被证伪的路径——官方推荐的 MatmulAllReduce、FlashComm 实测支持不全或负收益。适合做大模型推理部署的工程读者。原文 ↗
核心观点
- ▍在昇腾 910C 上,大模型 decode 阶段的主要瓶颈不止在计算,还大量分布在 host 侧提交与 kernel launch 开销上,必须源码级改造而非只调参数。
- ▍官方文档推荐的融合特性不一定可用,优化的另一半工作是逐项证伪,实测无收益或有负向影响就要果断放弃。
- 01将 MoE 的 shared expert 计算与 AllReduce 放到独立 side stream,与 routed experts 并行,并移除冗余同步事件,缩短了 MoE 层执行时间。
- 02分析 c=1 decode 时发现 host 侧拷贝和提交占用大量时间,通过跟踪上一轮状态跳过不必要的 block table 提交与数据拷贝,并重写 positions 计算路径。
- 03算子层用 FUSED_MC2 做通信-计算融合,用 SuperKernel 合并多个小 kernel,并自研 matmul_allreduce_add_rmsnorm_910c 融合算子,减少 kernel launch 次数与 HBM 访问。
- 04修复静态 kernel 编译的路径问题后编译成功率达到 100%;同时调整 cudagraph 捕获尺寸以匹配 MTP 投机解码后的 token 数。
- 05端到端结果:TPOT 从基线 14.1ms 降至 5.0ms,延迟下降 64.8%(标题口径为提速 30%,对应另一优化阶段口径)。
反方 / 局限
- — 文章自陈 MatmulAllReduce、FlashComm 等在昇腾文档中被推荐,但实测支持不完整、无收益甚至负向,说明官方推荐与真实硬件软件栈之间存在落差。
- — 优化结论高度依赖具体版本组合(vllm-ascend 版本、CANN 版本、910C 硬件、具体 MoE 模型结构),脱离该环境后 64.8% 的收益能否复现文章未做横向验证。
3 分钟 · 5 卡片 · 10 资料
读原文 →