当前位置: 首页 > news >正文

NPU 多流优化案例手册

NPU 多流优化案例手册

【免费下载链接】cannbot-skillsCANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体,本仓库为其提供可复用的 Skills 模块。项目地址: https://gitcode.com/cann/cannbot-skills

本文收录仓库内与 NPU 多流优化相关的案例,按“每次优化算一个案例”整理,而不是按模型统计。目录中的每个 Markdown 文件只讲一个案例,聚焦优化动机、执行编排、关键代码片段、适用场景和复用价值。

收录原则

  • 文档中明确描述了多流、双流、stream overlap 或多流并行。
  • 代码中存在显式多流编排,例如npu_stream_switchtorch.npu.Stream()wait_eventrecord_eventwait_stream
  • 相同优化方法在不同模型中复用时,合并到同一类案例中统一整理。

分类导航

MoE 多流

  • 案例:MoE 共享专家双流并行
  • 案例:HunyuanImage-3.0 MoE 多流变体
  • 案例:Qwen3-Next Patch 形态的 MoE 双流

Attention / Prolog 多流

  • 案例:Indexer Prolog 多流并行

KVCache Offload 异步流

  • 案例:KVCache Offload 异步搬运流

Prefill 双流流水

  • 案例:Prefill Micro-Batch 双流流水

多流 + 控核 / 分离式编排

  • 案例:LongCat-Flash 多流与控核联动
  • 案例:LongCat-Flash AFD 通信计算 overlap

快速选型表

优化模式先看案例再看源码什么时候优先选典型风险
MoE shared expert 双流moe-shared-expert-dual-stream.mdcann-recipes-infer/models/deepseek-v3.2-exp/models/modeling_deepseek.py,cann-recipes-infer/models/glm-5/models/modeling_glm.py路由专家和共享专家结果在后面汇合,且 decode shape 稳定同步点放错会导致 merge 读到未完成结果;共享专家过重时 overlap 不一定有收益
Indexer / Prolog 多流indexer-prolog-multi-stream.mdcann-recipes-infer/models/glm-5/models/indexer.pyAttention 前处理链路可拆成两段或多段,等待在后面汇合这类优化常常是前处理子链 overlap,不是完整大模块并行,边界容易拆错
KVCache offload 异步流kvcache-offload-async-stream.mdcann-recipes-infer/models/deepseek-v3.2-exp/models/offload_cache.py,cann-recipes-infer/models/glm-5/models/offload_cache.py设备内存紧张,需要把搬运从主计算流剥离主流和搬运流的状态一致性最重要;异步搬运可能掩盖不了 H2D/D2H 带宽瓶颈
Prefill micro-batch 双流 + eventprefill-microbatch-dual-stream.mdcann-recipes-infer/models/deepseek_r1/models/modeling_deepseek.pyprefill 同时有明显计算和通信,且切 micro-batch 后 shape 线性度还可以最容易引入 host bound、shape 劣化和事件编排错误
多流 + 控核longcat-flash-multi-stream-limit-core.mdcann-recipes-infer/models/longcat-flash/models/modeling_longcat_flash.py已有 overlap,但一条流明显拖尾或资源被另一条流吃满控核值不是通用常量;多流、控核、预取和图模式往往是耦合设计
AFD 通信/计算 overlaplongcat-flash-afd-overlap.md以案例文档为主分离式部署或通信链路成了主要瓶颈重点不在本地双算子并行,而在通信和本地计算 overlap;等待链容易拖尾
Patch 形态多流qwen3-next-moe-dual-stream-patch.mdcann-recipes-infer/models/qwen3-next/patches/stage1/0003-feat-moe-multi-stream.patch优化不能直接落到模型仓,需要嵌进 runtime 或 patchpatch 代码更依赖现有生命周期,wait_stream()顺序错了会直接破坏运行时逻辑
多模态变体hunyuanimage-moe-multi-stream.mdcann-recipes-infer/models/hunyuan-image-3.0/adaptor_patches/hunyuan.py共享流在模块初始化阶段就作为能力注入,而不是在前向里临时加 scope多流能力进入模块构造期后,不能只复制一段前向代码;初始化和分布式上下文要一起看

使用顺序

  1. 先确定当前优化属于哪一类模式。
  2. 先读对应案例文档,确认模块边界、依赖关系和同步方式。
  3. 再读代表代码或补丁,确认实际 API 风格和 enable 开关设计。
  4. 如果一个实现同时落在多类模式里,先选主模式,再把其他能力当补充手段。

案例清单

案例名称优化方法代表模型概述
MoE 共享专家双流并行共享专家与路由专家并行DeepSeek-V3.2-Exp / DeepSeek-R1把共享专家放到副流,与路由专家路径重叠,减少 decode 可见耗时。
Indexer Prolog 多流并行Attention 前处理多流DeepSeek-V3.2-Exp / GLM-5将 Q 路径与权重投影路径拆到不同流,缩短 Indexer 前处理串行段。
KVCache Offload 异步搬运流Cache 异步卸载/回迁DeepSeek-V3.2-Exp / GLM-5用独立流完成 KVCache 搬运,降低主计算流阻塞。
Prefill Micro-Batch 双流流水计算通信双流掩盖DeepSeek-R1两个 micro-batch 分别跑在两条流上,并通过 event 编排 dispatch/combine。
LongCat-Flash 多流与控核联动多流 + limit_core_numLongCat-Flash把 Attention 路径和 MoE 路径拆流后再分核,减少拖尾。
LongCat-Flash AFD 通信计算 overlap分离部署下的双流编排LongCat-Flash通过 Stream0/Stream1 overlap Send/Recv 与主计算,隐藏分离式通信耗时。
HunyuanImage-3.0 MoE 多流变体Shared MLP 独立流HunyuanImage-3.0用独立 NPU stream 承载共享 MLP,形成多模态模型里的 MoE 双流变体。
Qwen3-Next Patch 形态的 MoE 双流Patch 级 NPU 双流改造Qwen3-Next在 SGLang patch 中引入 shared expert stream,与 DeePEP 路由过程并行。

常见误用

  • 不要把MoE shared expert 双流Prefill micro-batch 双流当成同一种流水,它们的同步粒度完全不同。
  • 不要看到有两条流就默认需要limit_core_num,控核只在资源争抢和拖尾明显时再引入。
  • 不要把KVCache offload这类搬运流当成计算流优化,它优先关注的是状态一致性和带宽掩盖。
  • 不要直接拼接多个案例的代码片段,必须先按当前执行模式选一套主路径。

【免费下载链接】cannbot-skillsCANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体,本仓库为其提供可复用的 Skills 模块。项目地址: https://gitcode.com/cann/cannbot-skills

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.jsqmd.com/news/784051/

相关文章:

  • CANN/atvoss内核调度运行接口
  • 解放你的学习时间:用AI将B站视频瞬间变成可搜索的文字笔记
  • 2026年5月南京搬家物流厂家最新推荐:搬家、货运、大件运输优选指南 - 海棠依旧大
  • ChatGPT Copilot:全模型AI编程副驾在VS Code中的深度集成与应用
  • 魔兽争霸3冰封王座下载指南(2026实测)|安装+汉化+常见坑一次讲完 - PC修复电脑医生
  • 链板输送机选型指南:4家合规企业技术参数实测对比 - 奔跑123
  • CANN PTO ISA指令集概述
  • 浙传星光班2026招生详解——公办资质护航,解锁传媒职业新可能 - 奔跑123
  • CANN/hccl HCCL集合通信算法简介
  • 国内信号隔离器十大优选品牌,低漂移高可靠 - 仪表人叶工
  • 原神FPS解锁器:2025终极免费教程,轻松突破60帧限制!
  • 文章AIGC率过高怎么办,手动降AI攻略+3款热门工具实测对比 - 殷念写论文
  • 晋中手机号定向推广系统2026年完全指南:如何精准锁定本地高意向客户 - 优质企业观察收录
  • TCW2-282+巴伦国产替代
  • 2026年晋中手机号定向推广与企业精准获客深度破局指南 - 优质企业观察收录
  • 别被‘瞬态’骗了!深入拆解Fluent伪瞬态计算的底层逻辑与适用边界
  • CANN/ops-transformer融合推理注意力分数算子
  • 2026年重庆职称评审机构最新推荐:重庆锦博教育、重庆清晖教育,专注职称申报咨询,助力人才职业晋升 - 海棠依旧大
  • 从ResNet到FPN:拆解RetinaNet的骨干网络,为什么它比YOLOv3更准?
  • 东南亚名义雇主服务商研究与国内名义雇主排名分析 - 万领钧KnitPeople
  • 多模型集成AI智能体 OpenClaw 办公自动化部署方法
  • 西安印刷厂怎么选?松林森彩印vs传统工厂:交期、品质、价格全维度横评 - 企业名录优选推荐
  • 2026年商城小程序服务商排名:5月推荐榜单必看! - FaiscoJeff
  • Vim-ai插件:在Vim中集成AI编程助手,实现代码生成与重构
  • 2026年服装定制厂家口碑推荐榜:西服定制、夹克定制、西裤定制、衬衫定制、大衣定制、旗袍定制、进口面料服装定制、服装团队定制厂家选择指南 - 海棠依旧大
  • 晋中手机号定向推广系统测评:2026年本地实体门店引流的最优方案 - 优质企业观察收录
  • 浙江外国语学院韩国留学招生简章|3+2 国际本科,零语言可报,高性价比留学 - 奔跑123
  • CANN/tensorflow TF Adapter 1.x API参考
  • 等保二级防护标准建设方案
  • CANN/ops-nn硬Sigmoid算子