cann-recipes-infer:基于 CANN 平台的 LLM 与多模态模型推理优化样例项目

本项目针对LLM与多模态模型推理业务中的典型模型、加速算法,提供基于CANN平台的优化样例

分支1Tags3
文件最后提交记录最后更新时间
16 小时前
9 个月前
8 个月前
8 个月前
16 小时前
1 天前
16 小时前
16 小时前
1 天前
16 小时前
14 天前
1 个月前
14 天前
9 个月前
16 小时前
16 小时前
9 个月前
16 小时前
16 小时前
3 个月前

CANN-RECIPES-INFER

基于 CANN 平台的大模型推理优化实践
覆盖 DeepSeek、Qwen、GLM、Hunyuan 等主流模型,克隆即用,快速上手昇腾 NPU 推理,复现生产级高性能

License Models

📖 概述 · 🚀 快速开始 · 📦 样例列表 · 💬 社区讨论


📰 最新动态

  • [2026/06] GLM-5.2模型在昇腾Atlas A3系列上已支持推理部署
  • [2026/06] HunyuanVideo 模型在昇腾 950PR/DT 系列上支持 mxfp8 a8w8 量化 和 Flash Attention mxfp8 激活值量化
  • [2026/06] DeepSeek-V4 模型在昇腾 950PR/DT 系列上已支持 HiF8 推理部署
  • [2026/06] Qwen3.5 模型文生文通路在昇腾 Atlas A3 系列上已完成推理部署
  • [2026/05] Hy3-preview 模型基于模型优化 Agent(底座 DeepSeek-V4-Pro),在昇腾 Atlas A3 系列上已完成端到端优化适配,支持推理部署
📜 更多历史动态
  • [2026/05] Gemma4-26B-A4B / LongCat-Flash-Lite 模型基于模型优化 Agent,在昇腾 Atlas A2/A3 系列上已完成端到端优化适配,支持推理部署
  • [2026/04] DeepSeek-V4 模型在昇腾 Atlas A3 系列和 950PR/DT 系列上已 0day 支持推理部署
  • [2026/03] SANA-Video 模型在昇腾 Atlas A2 系列上已支持推理部署
  • [2026/03] 模型优化 Agent Skills 已开源,支持 Agent 在昇腾 Atlas A2/A3 系列上完成端到端推理优化部署
  • [2026/03] HunyuanImage-3.0 模型在昇腾 Atlas A2/A3 系列上已支持 EP 推理部署方案
  • [2026/03] Qwen3-8B / Qwen2.5-7B-Instruct 模型在昇腾 Atlas A2/A3 系列上已支持推理部署
  • [2026/02] GLM-5 模型在昇腾 Atlas A3 系列上已支持推理部署
  • [2026/01] Qwen3-next 模型支持 SGLang 框架下序列并行、MTP、GDN 融合算子、W8A8C8 量化
  • [2026/01] HSTU 模型在昇腾 Atlas A2 系列上已支持推理部署
  • [2026/01] DeepSeek-OCR-2 模型在昇腾 Atlas A2 系列上已支持推理部署
  • [2026/01] LongCat-Flash 模型在昇腾 Atlas A3 系列上已支持 Attention-FFN Disaggregation (AFD) 部署模式
  • [2025/12] HunyuanImage-3.0 模型在昇腾 Atlas A2/A3 系列上已支持推理部署
  • [2025/12] LongCat-Flash 模型在昇腾 Atlas A3 系列上已支持低时延的推理部署
  • [2025/12] GPT-OSS-20B / GPT-OSS-120B 在昇腾 Atlas A2 系列上已支持推理部署
  • [2025/11] Kimi-K2-Thinking 模型在昇腾 Atlas A3 系列上已 0day 支持 256K 序列推理部署,适配原生 W4A16 量化
  • [2025/10] DeepSeek-R1 / Kimi-K2 模型在昇腾 Atlas A3 系列上已支持低时延、高吞吐的推理部署
  • [2025/10] Wan2.2-I2V 模型支持 Ulysses 序列并行、CFG 并行、VAE 并行,推理代码已开源
  • [2025/10] HunyuanVideo 模型支持 Ulysses 序列并行、RingAttention 序列并行、TeaCache 加速,推理代码已开源
  • [2025/10] DeepSeek-V3.2-Exp 模型支持 W8A8C8 量化,量化算法和推理代码已开源
  • [2025/10] Qwen3-MoE 模型在昇腾 Atlas A3 系列上已支持推理部署
  • [2025/09] DeepSeek-V3.2-Exp 模型在昇腾 Atlas A3 系列上已 0day 支持推理部署

📖 概述

cann-recipes-infer 仓库旨在针对 LLM 与多模态模型推理业务中的典型模型、加速算法,提供基于 CANN 平台的优化样例,方便开发者简单、快速、高效地使用 CANN 平台进行模型推理。

仓库包含两种类型的实践:

类型 说明 目录
🔬 原生深度优化 基于 PyTorch + 仓库轻量化推理框架(executor / module),从算子到算法全栈优化,方便复现和学习 models/
🌐 外部框架集成 展示如何基于 vLLM、SGLang 等外部框架使能优化特性,适合已熟悉对应框架的开发者快速进行昇腾优化 integration/

🗺️ 用户导航

你是... 推荐入口 预计耗时
👋 初次接触昇腾 一站式平台 → 浏览器即可体验 10 min
🏗️ 自有环境部署 样例列表 → 按模型名查找 30 min
🚀 掌握优化方案 各模型目录下的性能调优文档 按需
✨ 贡献代码 贡献指南 15 min

为什么使用 cann-recipes-infer

维度 说明
⚡ Day-0 新模型支持 DeepSeek-V4、Kimi-K2 等热门模型发布当天即完成昇腾适配
🚀 极致推理性能 融合算子、量化、混合切分并行、多流控核等全栈优化,满足生产级吞吐和时延要求
🔗 生态无缝兼容 原生优化只依赖 PyTorch,可快速迁移到基于 Pytorch 的 vLLM / SGLang 等各类生产级框架
🖥️ 多代际硬件覆盖 支持 Atlas A3 / A2 / 950PR·DT,支持不同规模的集群部署
🤖 Agent 时代就绪 持续沉淀模型优化的 Agent Skills,支持 AI Agent 自动化完成新模型的适配与优化

🚀 快速开始

一站式平台快速跑通第一个模型

「CANNLab 一站式开发平台」是为开发者提供的 NPU 环境,内部已集成完整的 CANN 环境,可以直接使用。cann-recipes-infer 针对该平台在相应样例 README 中提供了简化的「快速启动」路径,帮助用户最小步骤完成 NPU 推理体验。

当前支持的模型:

模型实践 简介
SANA-Video 基于PyTorch框架,在Atlas A2/A3环境中完成SANA-Video单卡文生视频推理,针对CANNLab一站式开发平台场景提供简化的启动流程,帮助用户快速上手完成一次端到端 NPU 推理体验。
HunyuanVideo 基于PyTorch框架,在Atlas A2/A3环境中完成HunyuanVideo单卡文生视频推理,针对CANNLab一站式开发平台场景提供简化的启动流程,帮助用户快速上手完成一次端到端 NPU 推理体验。
Wan2.2-I2V 基于PyTorch框架,在Atlas A2/A3环境中完成Wan2.2-I2V单卡图生视频推理,针对CANNLab一站式开发平台场景提供简化的启动流程,帮助用户快速上手完成一次端到端 NPU 推理体验。
DeepSeek-V4 在 Atlas A3 环境中完成 DeepSeek-V4 Flash 模型的8卡推理,针对CANNLab一站式开发平台场景提供标准启动流程和相关配置,帮助用户快速上手完成一次端到端 NPU 推理体验。
Qwen3-8B 在 Atlas A3 单卡环境中完成 Qwen3-8B 模型推理,针对CANNLab一站式开发平台场景集成 AMCT W8A8 量化与端到端启动流程,帮助用户快速上手完成一次端到端 NPU 推理体验。

🧩 更多模型实践持续扩展中,欢迎在 Issues 反馈优先支持的模型实践。

在自有环境上部署

环境要求

项目 要求
硬件 Atlas A3 / A2 / 950PR·DT
CANN 推荐 9.0.0
Python 推荐 3.11

💡 说明:以下样例仅作参考,部分模型需特定硬件或 CANN 版本支持,具体兼容性要求请查看 各模型目录下的 README 文档

大语言模型(以 Qwen3-MoE 为例)

# Step 1: 克隆仓库
git clone https://gitcode.com/cann/cann-recipes-infer.git
cd cann-recipes-infer

# Step 2: 进入模型目录,安装依赖
cd models/qwen3_moe
pip install -r requirements.txt

# Step 3: 执行根目录下的脚本一键启动推理
bash ../../executor/scripts/infer.sh --model qwen3_moe --yaml qwen3_235b_16tp.yaml

多模态生成模型(以 SANA-Video 为例)

cd models/sana-video
# 按模型 README 完成权重与环境配置后启动
bash infer.sh

📋 样例列表

模型实践 简介
GLM-5.2 基于Transformers库,沿用 DSA + MoE + MTP 结构,新增 IndexShare(跨层 top-k 复用),支持 W8A8 量化与 KV Offload 长序列部署。
DeepSeek-V4 支持Atlas A3和950PR/DT多代际昇腾芯片,兼具1M长序列推理能力与超低交互时延表现,为DeepSeek模型支持Agentic应用提供计算底座,满足千行百业灵活要求。
Qwen3.5 基于Transformers库,在Atlas A3环境中完成Qwen3.5模型文生文通路适配优化,支持TP/EP并行部署,使能融合算子、图模式编译等优化特性。
HunyuanVideo 基于xDiT框架,在Atlas A2环境中采用了Ulysses序列并行和RingAttention序列并行策略,同时适配了FBCache和TeaCache加速。
Qwen Dense (Qwen3-8B / Qwen2.5-7B-Instruct) 基于Transformers库,在Atlas A2/A3环境中完成Qwen2/Qwen3 Dense模型推理适配,通过config自动识别模型变体,使能融合算子、图模式编译、Packed Sequence(TND格式)、Page Attention等优化特性。
SANA-Video 基于PyTorch框架,在Atlas A2/A3环境中完成SANA-Video模型适配和优化,使能NPU融合算子,实现较高的推理性能,支持单机单卡以及单机多卡DP部署。
Qwen3-MoE 基于Transformers库,在Atlas A3环境中完成Qwen3-235B-A22B模型的适配优化,支持TP或EP部署。
HunyuanImage-3.0 基于Transformers库,在Atlas A2/A3环境中完成HunyuanImage-3.0模型部署,支持TP和EP并行部署,使能多流并行、CFG并行、VAE并行,同时结合了融合算子、消除冗余算子等优化特性。
GLM-5 基于Transformers库,在Atlas A3环境中Prefill阶段采用了长序列亲和的CP并行策略,Decode阶段沿用大EP并行,实现了较高的吞吐推理性能。
LongCat-Flash 基于Transformers库,在Atlas A3环境中完成LongCat-Flash模型低时延场景适配优化,支持TP或EP部署,使能多流并行、控核、权重预取等优化特性。
GPT-OSS 基于Transformers库,在Atlas A2环境中完成gpt-oss模型部署,其中GPT-OSS-120B模型可以采用8卡部署,GPT-OSS-20B模型可以在单device上进行部署。
HSTU 基于RecSDK库,在Atlas A2环境中完成HSTU模型部署,支持单机单卡和单机多卡部署,使能KV Cache多级缓存管理、支持aclgraph,同时结合了hstu_paged融合算子等优化特性。
DeepSeek-OCR-2 基于vllm + vllm-ascend库,在Atlas A2环境中完成DeepSeek-OCR-2模型部署,支持单图、PDF文档和批量评估。
Kimi-K2-Thinking 基于Transformers库,在Atlas A3环境中完成Kimi-K2-Thinking 256K模型部署,支持原生量化模式,MOE采用W4A16计算,Attention保留BF16精度模式。最小部署单元为单机,同时支持多机大EP部署模式。
DeepSeek-R1/Kimi-K2 基于Transformers库,在Atlas A3环境中完成DeepSeek-R1/Kimi-K2模型低时延、高吞吐两种场景的适配优化,在Prefill阶段支持DP或TP+SP并行部署,在Decode阶段沿用大EP并行,同时还结合了融合算子和多流并行等优化特性。
Wan2.2-I2V 基于Transformers库,在Atlas A2环境中完成Wan2.2-I2V模型的适配优化。
DeepSeek-V3.2-Exp 基于Transformers库,在Atlas A3环境中Prefill阶段采用了长序列亲和的CP并行策略,Decode阶段沿用大EP并行,同时从整网上设计了新的NPU融合Kernel和多流并行优化,实现了较高的吞吐推理性能。

📂 目录结构

点击展开完整目录树
├── .agents                                     # Agent skills 与 subagent 源码
├── docs                                        # 文档目录
│   ├── agent                                   # Agent 相关设计文档
│   ├── cann                                    # CANN 平台相关文档
│   ├── common                                  # 公共文档(推理配置指南、新模型清单等)
│   ├── design                                  # 设计文档(executor、KV Cache、多流并行等)
│   ├── integration                             # 外部框架集成模型文档目录
│   │   └── sglang                              # SGLang 框架集成模型文档
│   │       ├── dsv4-flash-single-npu-moe-offload
│   │       └── qwen3-next
│   └── models                                  # 原生深度优化模型文档
│       ├── deepseek-r1                         
│       ├── deepseek-v3.2-exp                   
│       ├── deepseek-v4                         
│       └── ...                                 
├── accelerator                                 # 加速算法样例
├── dataset                                     # 数据集和默认 prompt
├── executor                                    # 推理执行框架
│   ├── core                                    # 核心模块
│   │   ├── config                              # 推理配置管理
│   │   ├── engine                              # 执行引擎
│   │   ├── forward_data_info                   # 前向数据信息管理
│   │   ├── kv_cache                            # KV Cache 管理器
│   │   ├── model_worker                        # 模型 worker 与 MTP worker
│   │   └── scheduler                           # 任务调度器
│   ├── model_loader                            # 权重加载与格式适配
│   ├── offline                                 # 离线推理入口与执行逻辑
│   ├── online                                  # 在线推理服务
│   │   ├── kv_transfer                         # KV Transfer 引擎
│   │   └── scheduler                           # Prefill/Decode 调度
│   ├── scripts                                 # 环境与测试脚本
│   ├── utils                                   # 通用工具模块
│   └── model_runner.py                         # ModelRunner 类定义
├── integration                                 # 外部框架集成
│   ├── custom                                  # 自定义集成方案
│   │   └── deepseek-v3-ascend310p  
│   ├── sglang                                  # SGLang 框架集成
│   │   ├── dsv4-flash-single-npu-moe-offload   
│   │   ├── llada2.x                            
│   │   ├── qwen3-moe                           
│   │   └── qwen3-next                          
│   └── vllm                                    # vLLM 框架集成
│       ├── deepseek-ocr-2                      
│       ├── minimax_m2.5_mxfp4                  
│       └── pd-hybrid-dp-ep                     
├── models                                      # 模型脚本目录
│   ├── deepseek-v4                             # DeepSeek-V4 的模型脚本及执行配置
│   ├── deepseek-v4-flash-tilelang-and-inductorAF  # DeepSeek-V4 Flash TileLang/Inductor 算子样例
│   ├── deepseek_r1                             # DeepSeek-R1 的模型脚本及执行配置
│   ├── deepseek_v3_2_exp                       # DeepSeek-V3.2-Exp 的模型脚本及执行配置
│   ├── gemma_4                                 # Gemma4 模型脚本及执行配置
│   ├── glm_5                                   # GLM-5 的模型脚本及执行配置
│   ├── glm_5_2                                 # GLM-5.2 的模型脚本及执行配置
│   ├── gpt_oss                                 # GPT-OSS 的模型脚本及执行配置
│   ├── hstu                                    # HSTU 的模型脚本及执行配置
│   ├── hunyuan-image-3.0                       # HunyuanImage-3.0 的模型脚本及执行配置
│   ├── hunyuan-video                           # HunyuanVideo 的模型脚本及执行配置
│   ├── hy3_preview                             # Hy3-preview 的模型脚本及执行配置
│   ├── kimi_k2_thinking                        # Kimi-K2-Thinking 的模型脚本及执行配置
│   ├── longcat_flash                           # LongCat-Flash 的模型脚本及执行配置
│   ├── longcat_flash_lite                      # LongCat-Flash-Lite 的模型脚本及执行配置
│   ├── pangu-7b                                # PanGu-7B 的模型脚本及执行配置
│   ├── qwen                                    # Qwen2/Qwen3 Dense 模型统一脚本及执行配置
│   ├── qwen3_5                                 # Qwen3.5 的模型脚本及执行配置
│   ├── qwen3_moe                               # Qwen3-MoE 的模型脚本及执行配置
│   ├── sana-video                              # SANA-Video 的模型脚本及执行配置
│   ├── step3p7_flash                           # Step3p7-Flash 的模型脚本及执行配置
│   ├── wan2.2-i2v                              # Wan2.2-I2V 的模型脚本及执行配置
│   └── ...                                     
├── module                                      # Linear 等基础 layer 的类定义
│   ├── blockwise_sparse                        # 稀疏处理模块
│   ├── dit_cache                               # DiT Cache 模块
│   ├── fa_quant                                # FA 量化模块
│   ├── quantization                            # 量化模块(FP8/MXFP8/压缩张量等)
│   ├── unified_sp                              # 统一序列并行模块
│   ├── fuse_moe_gmm.py                         # MoE GMM 融合算子
│   ├── linear.py                               # Linear 类定义
│   ├── utils.py                                # 工具函数
│   └── vae_patch_parallel.py                   # VAE 并行补丁
├── ops                                         # 算子目录
│   ├── ascendc                                 # AscendC 算子(HC、Indexer、MoE 等)
│   ├── pypto                                   # PyPTO 算子(Lightning Indexer 等)
│   └── ...
├── AGENTS.md                                   # Agent 使用说明
├── CONTRIBUTION.md                             # 贡献指南
├── DISCLAIMER.md                               # 免责声明
├── LICENSE                                     # 许可证
└── README.md                                   # 项目说明文档

✨ 参与贡献

欢迎各种形式的贡献:新模型适配、性能优化、文档改进、Bug 反馈。

请参阅 贡献指南 了解提交流程和代码规范。


📝 许可证与声明

许可协议适用规则

  • 本仓库整体遵循 Apache 2.0 协议,详见 LICENSE
  • 目录包含独立 License 文件时,以该 License 为准;如不存在 License 文件,则遵循 Apache 2.0 协议。

其他声明


Made with ❤️ by the CANN Team · More CANN Projects

项目介绍

本项目针对LLM与多模态模型推理业务中的典型模型、加速算法,提供基于CANN平台的优化样例

定制我的领域