2.8倍性能提升!基于CANN实现Kimi K3高性能推理
2.8倍性能提升!基于CANN实现Kimi K3高性能推理
图片
转发紫 https://mp.weixin.qq.com/s/eL91UHgKm_TGxw1aOybkHQ
在上一篇《Kimi K3 CANN推理实践:从Day0快速适配到性能持续优化》中,我们介绍了 CANN 对 Kimi K3 的快速适配,以及 KDA、Attention Residual 算子融合、MegaMoE 和 DSpark 带来的性能提升。在此基础上,本次实践结合图模式、NPU 亲和优化、部署与多流编排、SuperKernel 等 CANN 加速特性,并基于 CANNBot-DSL 扩大算子融合范围,进一步降低主模型与 DSpark 的推理时延。
01
性能演进
经过多轮优化,模型TPOT时延从 28 ms 降至约 10 ms,整体加速约 2.8 倍。
图片
测试条件:昇腾 950DT 32 卡,KDA TP16,单卡 Batch 1,输入 100K、输出 256 Tokens;DSpark 草稿长度 7、平均接受长度 4,时延仅统计大小模型耗时。
02
部署策略与多流编排
部署方面,为兼顾内存占用与推理性能,本次采用 KDA TP16 并行策略,并使用昇腾专用的CCU通信引擎实现集合通信算子,使TPOT时延从 28 ms 降至 23 ms。通过并行执行 MLA 中的 Gate AllGather 与 FA、MoE 中的共享专家与路由专家,并调整跨流等待关系以缓解 AIV 通信与计算的资源竞争,合计降低约1.8 ms;同时优化 Embedding TP通信、并调整AIC + AIV算子为纯AIC计算,释放AIV资源做多流并行,减少 Decode 关键路径上的通信和等待。
图片
03
MegaKDA:扩大KDA融合边界
原有 FusedKDA 已融合 Q/K 归一化、Gate/Beta 处理和状态递推,但输入投影、ShortConv 及输出侧计算仍由多个算子分别完成。本次基于 CANNBot-DSL 开发 MegaKDA,将这些前后处理与 KDA 核心计算纳入同一个融合算子,并在算子内部重叠执行矩阵计算与向量计算。通过减少 Kernel 启动和中间结果的写回、重读,带来约0.86ms收益。
图片
04
ReplaySSM:减少投机验证的状态存储
在 MegaKDA 基础上支持 ReplaySSM 特性,用于管理 DSpark 投机验证中的 KDA 状态。验证时只保存回放所需的更新记录;接受长度确定后,算子从已提交状态出发,按顺序应用被接受 Token 对应的记录。这样无需为每个候选 Token 保存完整状态,可以减少投机验证期间的状态存储与写入开销。
图片
05
SuperKernel:减少连续算子的调度开销
经过算子融合后,MoE 每层关键路径仍包含约 11 个主要算子,多层执行累积的调度与核启动开销仍有优化空间。采用Ascend + CANN特有的SuperKernel技术,在不修改算子代码的情况下,将模型上的多个算子序列重新编译成一个SuperKernel算子,大幅度减少调度和核启动开销,获得0.25ms的 TPOT收益。
06
Pytorch图模式头开销优化
采用 PyTorch 图模式,使用CANN的Aclgraph功能。在此基础上,将 MLA、MoE 各层持有的 Event 改为在模型级上下文中统一管理、跨层复用,减少图执行入口的对象管理开销。并通过 Compile Cache 复用编译产物,缩短重复启动时的编译准备时间,整体获得0.3ms的 TPOT收益。
07
量化优化:MLA与latent MoE低精度加速
MLA 投影采用 MXFP8 W8A8 量化,注意力计算与 KV Cache 采用 FP8,降低计算和访存开销。latent MoE 的 Down/Up 投影采用 MXFP8 W8A8,在运行时对激活进行分组量化,并融合 Up 投影前的 RMSNorm 与量化操作。两部分合计降低约 1.7 ms 的TPOT时延。
08
总结
本次实践围绕算子融合与通信优化缩短 NPU 执行时间,同时降低调度及模型执行间的衔接开销,压缩执行气泡,协同实现 TPOT 的大幅下降。相关实现已开源在CANN社区,欢迎开发者参与验证与优化。
下一阶段将持续优化高吞吐场景,完善 Prefill CP 支持,并基于 CANNBot-DSL 探索更大范围的 MegaMoE 融合,进一步提升整网推理性能。
相关链接
Kimi K3 推理实践:
https://gitcode.com/cann/cann-recipes-infer/tree/master/models/kimi_k3
CANNBot-DSL:
https://gitcode.com/cann/cannbot-dsl
CANN transformer算子仓:
https://gitcode.com/cann/ops-transformer
鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。
更多推荐

所有评论(0)