cann-learning-hub:基于 CANN 生态的 NPU 加速计算学习中心项目

CANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。

分支4Tags1
文件最后提交记录最后更新时间
2 个月前
9 天前
2 天前
15 天前
5 天前
4 天前
15 天前
1 天前
2 天前
29 天前
9 天前
1 个月前
7 个月前
6 个月前
8 天前
7 个月前
5 个月前

cann-learning-hub

cann-learning-hub 是 CANN(Compute Architecture for Neural Networks)生态的官方开源学习中心仓库,聚焦 NPU 加速计算开发能力培养,汇聚从入门到进阶的全栈学习资源。仓库涵盖 CANN 全栈加速计算的系列示例与最佳实践教程,支持以 Notebook 方式在线 / 离线交互式运行,帮助开发者零门槛上手。我们致力于打造动态、全面的 CANN 知识平台,系统化整理入门指南、高级优化教程、精选算子与模型示例及经过验证的最佳实践方案。通过持续迭代更新,助力开发者快速掌握 CANN 开发技能,高效释放昇腾 NPU 算力,加速 AI 应用的开发与创新。欢迎广大开发者贡献案例、教程、文档及各类学习资源,共建开放共享的 CANN 开发者生态。

Zread 点击上方徽章,开启在线智能代码学习与知识问答体验!


🚀 三种环境体验方式介绍

本仓大部分教程以 Notebook 形式提供,包含文本讲解与可执行代码,可交互式运行与修改。以下三种方式均可运行 Notebook 中的可执行代码,具体适用场景见各教程 README 说明。

方式一:在线体验(推荐,零配置)

打开 人工智能基础(第一课),点击「在线体验」即可在浏览器中运行你的第一个 Notebook,无需任何环境配置。

支持在线体验的课程 README 中已为每个 Notebook 配置对应的在线体验链接,可直接点击运行。

方式二:CANNLab 云环境

进入 CANNLab 创建 NPU 云环境(初始 100 小时,积分可兑换时长),clone 本仓后从目录树打开任意教程运行,注意选择课程支持的镜像版本和Python内核。

具体使用方式参考 CANNLab 云开发平台体验指南。

方式三:本地部署

git clone https://gitcode.com/cann/cann-learning-hub.git
cd cann-learning-hub
依赖 要求
硬件 昇腾 NPU(Atlas A2/A3 系列等;部分认知类课程无需 NPU)
CANN 9.0.0 及以上,下载安装
Python 3.11

各教程的具体依赖见其目录下的 requirements.txt;环境配置详见 CANNLab 环境体验指南。


🎯 角色导航

找到你的角色,直达对应内容 👇

角色 直达
🌱 新手开发者 从这里开始 — CANN 基础第一课,零门槛入门
🧠 大模型开发者 大模型训练 · 大模型推理 · SwanLab 微调案例
⚙️ 算子开发工程师 算子开发 — Ascend C 编程与自定义算子实战
📱 应用开发工程师 应用开发(离线推理) — ATC 编译、ACL 推理与性能调优
📊 推荐算法工程师 推荐系统 — CTR 排序 + 召回全链路
🏫 高校师生 高校教学方案专区
🏆 竞赛选手 赛事备考专区 — CANNJudge 题库、大赛报名、备赛路径
🤝 社区开发者 看技术博客· 科研案例 实践, 参与贡献 — 贡献教程与案例

📋 前置基础(按需补,不用先全学完)

入门阶段,你只需 Python + NumPy 就能开始第一课。其他基础可以边学边补,学到卡住时回来查即可。

基础 什么时候需要
Python 全部课程,第一课就用到
NumPy / PyTorch 第一课起,张量与矩阵运算
C / C++ 进入算子开发主线时
查看完整前置基础清单(8 项 + 推荐资源 + 支撑课程)
基础 需要掌握的内容 推荐资源 支撑课程
Python 变量、函数、类、模块,能读懂并运行脚本 廖雪峰 Python 教程 | B站搜索「黑马程序员 Python」 全部课程
NumPy / PyTorch 会创建张量、做矩阵运算,了解 Tensor 基本操作 NumPy 官方快速入门 | PyTorch 官方教程 | 李沐《动手学深度学习》 01 人工智能基础、04 NPU 实践、推理/训练/推荐主线
C / C++ 指针、函数、编译链接,能读懂 C++ 源码 菜鸟教程 C++ | B站搜索「黑马程序员 C++」 Ascend C 算子开发主线
Linux 基础 常用命令、环境变量,能在服务器上运行程序 韩顺平《一周学会 Linux》 | 尚硅谷 Linux 教程 全部实践课程
数学基础 矩阵运算、梯度概念 宋浩《线性代数》 | 备选:MIT 18.06 线性代数(英文) 深度学习、模型训练
深度学习概念 神经网络、反向传播,知道模型怎么训练和推理 吴恩达《深度学习专项》 | 李沐《动手学深度学习》 01 人工智能基础、推理/训练主线
Git clone / commit / push / pull,会提交 PR 廖雪峰 Git 教程 | Pro Git 中文版 全部课程、社区贡献
社区贡献 了解社区行为准则、CLA 签署、Issue / PR 提交流程 CANN 社区贡献指南 全部课程、社区共建

💡 入门阶段只需 Python + NumPy 即可开始第一课;进入算子开发主线时再补 C/C++,进入大模型主线时再补深度学习与 PyTorch。


🚀 从这里开始

CANN 基础(第一课)

📖 配套课件:CANN 基础

点击「在线体验」,在浏览器中运行你的第一个 Notebook,无需任何环境配置。

这是所有学习路径的公共基础(阶段一:CANN 基础,约 2 小时),也是后续五条学习主线的共同起点:

序号 课程 课程内容 运行方式
1 人工智能基础 AI 发展历程、算子概念(名称/类型/Tensor/shape) 在线体验
2 什么是 NPU 昇腾 NPU 硬件架构:DaVinci 核心、AI Core / Vector / Cube 计算单元 在线体验
3 什么是 CANN CANN 异构计算架构与软件栈:分层架构、Ascend C、torch_npu 适配 在线体验
4 NPU 实践 Hello NPU、张量运算、矩阵乘法性能对比、Batch 运算、图像高斯模糊卷积 在线体验
5 MNIST 手写数字识别(可选) 你的第一个模型训练:数据加载 → 模型构建 → 训练 → 评估,配套 SwanLab 可视化 open in CANNLab

💡 想用完整 NPU 环境做进阶练习?进入 CANNLab 创建云环境(初始 100 小时,积分可兑换时长)。


🧭 学完基础,选择一条主线

完成公共基础(阶段一)后,按你关心的场景选一个方向深入。五条主线互不冲突,可以都学,也可以只学一条。

主线 适合人群 总时长 核心产出 难度
🏋️ 大模型训练 想做模型训练与微调 ~16h SFT/RL 训练与微调能力 ★★★
🧠 大模型推理 想快速跑通大模型、做推理优化 ~10h 端到端推理调优能力 ★★☆
⚙️ 算子开发 想掌握底层编程、做算子级优化 ~20h 自定义算子开发与接入 ★★★
📱 应用开发(离线推理) 想做 ACL 离线推理与应用部署 ~6h ATC 编译 + ACL 推理 + 调优 ★★☆
📊 推荐系统 想做推荐/召回业务落地 ~8h CTR 排序 + 召回全链路 ★★☆

主线一:🏋️ 大模型训练

从微调实战到 SFT/RL 训练全流程,系统掌握大模型训练与性能优化能力。

阶段一:CANN 基础(公共基础,约 2h) ✅ 已在此完成 → 直接进入本主线后续阶段

阶段二:微调实战案例(SwanLab 共建)🚧

序号 课程 课程内容 状态
1 医学模型微调 Qwen3 医学领域 SFT + SwanLab 可视化 ✅ 已上线
2 ms-swift 框架微调 ms-swift 框架微调 + SwanLab 可视化 🚧 建设中
3 Qwen3-smolVLM 多模态微调 多模态拼接微调 + SwanLab 可视化 🚧 建设中
4 CosyVoice 语音微调 语音模型微调 + SwanLab 可视化 🚧 建设中

💡 案例正在从 SwanLab 平台迁移至 contrib/tutorials/swanlab_examples/,完成后将在 CANNLab 环境提供在线体验。

阶段三:SFT/RL 初阶课程

📖 配套课件:SFT 训练流程,RL 训练流程

序号 课程(实践) 课程内容 运行方式
5 SFT 训练系列(初阶) Wordle 任务与 SFT 原理 / TorchTitan-FSDP 框架与环境配置 / Qwen3-1.7B 基线训练与推理评测 / 融合算子接入与 Profiling 分析 open in CANNLab
6 RL 训练系列(初阶) verl+vLLM-Ascend 环境与框架概览 / RL+GRPO 核心概念与 KL 稳定性 / Wordle Agent Loop 与奖励函数 / 训练指标监控与崩塌调优 open in CANNLab
阶段四:SFT/RL 中阶课程

📖 配套课件:SFT 训练流程,RL 训练流程

序号 课程 课程内容 状态
7 SFT 训练系列(中阶) Attention 算子优化(SDPA→VarLen)/ Sequence Packing 与 TND 变长注意力 / FSDP·TP·CP 分布式通信与体积分析 / VarLen+CP 协同与 TP2/FSDP2 对比 open in CANNLab
8 RL 训练系列(中阶) FSDP→TorchTitan-NPU FSDP2 后端切换 / FSDP2·offload·TND 变长注意力核心特性 / Wordle 三步训练实践 / 后端切换总结与排查 open in CANNLab
阶段五:SFT/RL 高阶课程 🚧
序号 课程 课程内容 状态
9 SFT 训练系列(高阶) 计算图静态化与 AutoFuse 融合优化,selective AC 显存调优 🚧 建设中
10 RL 训练系列(高阶) 性能基线搭建与瓶颈定位,FSDP2/TP/CP/PP 并行调优 🚧 建设中

主线二:🧠 大模型推理

以 Qwen3 端到端推理案例为主线,理论课件 + 双模型实践双轨并行,自然贯通「跑通推理 → 发现瓶颈 → 融合优化 → 量化与算子 → 图模式调优」。

阶段一:CANN 基础(公共基础,约 2h) ✅ 已在此完成 → 直接进入本主线后续阶段

阶段二:初阶 — 跑通推理(约 3-4h)

目标:在 NPU 上跑通大模型推理,建立 Baseline 并完成首次 Profiling。

📖 配套课件:大语言模型基础 | CANN 开源推理仓库 | 大模型推理优化基础

序号 课程 课程内容 运行方式
1 章节介绍 全流程概览,知道接下来要做什么 open in CANNLab
2 Baseline 推理 跑通 Qwen3-8B BF16 推理,感知大模型推理 open in CANNLab
3 Profiling 分析 对 Baseline 做 Profiling,定位 RMSNorm 等小算子链路瓶颈 open in CANNLab
阶段三:中阶 — 融合优化与量化(约 4-6h)

目标:走完「融合优化 → 量化 → 自定义算子接入」工程闭环。

📖 配套课件:大模型量化基础 | Profiling 与性能瓶颈定位

序号 课程 课程内容 运行方式
4 Dense RMSNorm NPU 融合优化 切换融合开关,A/B 对比验证算子融合的性能收益 open in CANNLab
5 量化 Qwen3-8B 模型 AMCT 工具导出 W8A8 权重 → 量化推理 → Profiling 定位 QuantBatchMatmulV3 瓶颈 open in CANNLab
6 自定义量化算子开发并接入 Qwen3-8B 用 Ascend C 实现 QmmCustom → 编译 → 替换瓶颈算子 → 验证收益 open in CANNLab

💡 步骤 ⑥ 需要自定义算子开发能力,前置学习 主线三:Ascend C 算子开发系列。至此完成推理主线核心,已具备端到端 BF16 推理调优与量化算子接入能力。

阶段四:高阶 — 图模式调优与高级理论(可选)

目标:掌握图执行模式调优与权重预取,系统理解大模型推理高级优化技术。

📖 配套课件(高级): 01 推理优化基础 | 02 并行策略设计 | 03 MTP/多流/预取 | 04 量化优化与实践 | 05 主流框架 CANN 优化 | 06 多模态生成推理 | 07 模型 Agent 基础

序号 课程 课程内容 运行方式
7 图模式优化:GE Graph vs NPU Graph EX 对比 eager、ge_graph 与 npugraph_ex 三种执行模式,给出图后端选择建议 open in CANNLab
8 GE Graph o_proj 权重预取 固定 GE 图模式,对比 o_proj 权重预取关闭/16MiB/32MiB 三组性能收益 open in CANNLab

💡 更多模型与复杂部署优化实践,见 cann-recipes-infer 完整仓库。


主线三:⚙️ 算子开发

从「10 分钟体验算子」到系统掌握 Ascend C 编程范式,具备自定义算子开发与工程化能力。

阶段一:CANN 基础(公共基础,约 2h) ✅ 已在此完成 → 直接进入本主线后续阶段

阶段二:体验算子(约 2h)

序号 课程 课程内容 运行方式
1 10 分钟体验自定义算子 第一个自定义算子开发,感知 Ascend C 编写与编译全流程 在线体验
2 10 分钟体验算子 API 调用 第一个算子调用,感知算子调用与价值 在线体验
阶段三:系统学习(约 12h)
序号 课程 课程内容 运行方式
3 Ascend C 算子开发系列(Kernel 直调版) 算子基础概念、编程范式、Vector/Cube/融合算子开发与调试调优 在线体验
阶段四:算子开发实战
序号 课程 课程内容 运行方式
4 Ascend C 算子开发系列(算子工程版) 工程化开发流程、开源社区贡献规范与玩法 在线体验
5 Vector 算子开发 Vector 算子开发实战 🚧 建设中
6 Conv 算子开发实战 卷积算子开发核心概念与实践 🚧 建设中
7 MC2 融合算子实战 Matmul/Conv/通算融合等典型算子实战 在线体验

💡 进阶练习:CANNJudge 算子题库 在线刷题 → CANN 大赛专区 参赛验证

阶段五:算子性能优化(进阶)

目标:通过典型算子实践,掌握从性能基线、瓶颈分析到分步优化与精度校验的调优流程。

类别 序号 课程 课程内容 样例链接
Vector 类 8 Vector 算子优化 逐元素、归约、归一化与路由算子的 RegBase 改写、融合、多核并行及访存优化 GELU / Softmax / RmsNormQuant / KvRmsNormRoPE / MoeInitRouting
Cube 类 9 矩阵乘算子优化 矩阵乘与分组矩阵乘的 Tiling、数据搬运、尾轮负载均衡及低精度量化 MatMul / Grouped MatMul
CV 融合类 10 Cube/Vector 融合优化 极简 FA 的 CV 核融合优化实践、全量化 FA 实现、注意力残差的模板选择与两阶段流水,以及 KDA 的 Chunkwise 并行 FlashAttnLite / FIA / AttnRes / Kimi Delta Attention Lite
通算融合类 11 通信与计算融合优化 MoE Token 分发与合并中的通信、计算融合及性能优化 MoE Dispatch & Combine
专题类 12 SIMD VF、SIMT 与 Scalar 优化专题 SIMD VF 广播、归约与数据变换;SIMT 不规则访存与并行计数;ScalarBound 诊断及标量开销优化 SIMD VF / VF 数据变换 / SIMT Scatter / SIMT Histogram / Scalar

💡 实践入口:cann-samples 是 CANN 算子实战样例与性能调优知识库,提供算子实现、优化讲解及编译运行与精度校验示例,可从上表或性能优化样例总览选择学习内容。

学习方式:

  1. 克隆仓库,按仓库首页的环境部署指南配置 CANN 与依赖。
  2. 按所选样例 README 在本地编译执行,完成精度校验并记录性能基线。
  3. 结合优化文档阅读源码;有分步版本的样例可逐版对比,理解各项优化的作用。
  4. 尝试修改 Tiling、数据搬运或流水安排,重新编译、校验精度并对比性能。

适用芯片、CANN 版本和运行命令以对应样例说明为准。


主线四:📱 应用开发(离线推理)

以 YOLOv13 目标检测为例,走通 ONNX 导出 → ATC 离线编译 → ACL 推理 → 性能调优全流程,掌握昇腾应用开发核心能力。

阶段一:CANN 基础(公共基础,约 2h) ✅ 已在此完成 → 直接进入本主线后续阶段

阶段二:YOLOv13 离线推理实战(约 4h)

目标:在昇腾 NPU 上完成 YOLOv13 端到端离线推理,掌握 ATC 模型编译与 ACL 推理应用开发。

序号 课程 课程内容 运行方式
1 章节介绍 学习目标、流程和目录说明 open in CANNLab
2 环境准备与模型转换 准备 YOLOv13、导出 ONNX 并使用 ATC 生成 OM open in CANNLab
3 ACL 离线推理 编译并运行 ACL C++ 推理程序 open in CANNLab
4 结果处理与性能调优 后处理、可视化和多流参数调优 open in CANNLab
5 章节练习 巩固模型转换、推理和调优知识 open in CANNLab

💡 应用开发系列更多课程(GE/ATC/模型转换全流程)持续建设中。


主线五:📊 推荐系统

基于 Torch-RecHub 跑通推荐系统全链路:排序 → 召回 → 多任务 → 工程化 → NPU 推理优化。

阶段一:CANN 基础(公共基础,约 2h) ✅ 已在此完成 → 直接进入本主线后续阶段

阶段二:跑通 CTR(约 2h)

序号 课程 课程内容 运行方式
1 QuickStart:CTR 预测(DeepFM) DataFrame → Feature → DeepFM → CTRTrainer → AUC 在线体验
阶段三:进阶建模(约 4h)
序号 课程 课程内容 运行方式
2 序列兴趣建模:DIN 历史行为序列、SequenceFeature 与 DIN attention 在线体验
3 匹配/召回:DSSM + Annoy 双塔召回与向量 Top-K 检索 在线体验
4 多任务学习:MMOE 多目标建模、expert、gate 与 tower 在线体验
阶段四:工程化(约 2h)
序号 课程 课程内容 运行方式
5 实验跟踪:WandB / SwanLab / TensorBoardX WandB / SwanLab / TensorBoardX 轻量实验跟踪 在线体验
6 模型导出与推理验证:ONNX ONNX 导出、ONNXRuntime 推理验证和量化入口 在线体验
阶段五:NPU 推理优化(约 1h)
序号 课程 课程内容 运行方式
7 DIN 多进程控核推理 多进程(spawn Pool)运行 DIN 推理,通过 TorchAir ge.aicoreNum 整图控核,含 1000 请求基准与 latency 统计 在线体验

💡 推荐学习路径:选方向 → 看教程 → CANNJudge 刷题 / CANNLab 实验 → 参赛验证 → PR 到 contrib/


📖 完整课程体系(查阅用)

以下为课程体系的完整索引,适合有明确学习目标、需要定位具体课程的开发者。初次学习请从上方「从这里开始」入手。

全栈课程体系地图

按 技术领域 × 难度等级 双维度组织(11 个技术领域 × 3 级难度),高手可直接跳过入门内容,精准定位高阶课程。

技术领域初级课程中级课程高级课程
⚙️ 算子开发 · Ascend C Ascend C算子开发系列(Kernel 直调版) · Ascend C算子开发系列(工程版) · Ascend C算子开发Ascend 950系列 🚧
⚙️ 算子开发 · PyASC PyASC 初级(概述/核函数基础) PyASC 中级(Vector/Matmul) PyASC 高级(融合/调优)
⚙️ 算子开发 · PyPTO PyPTO 初级(概述/基础/实践) PyPTO 进阶(中高级算子实践)
⚙️ 算子开发实战(Ascend 950) Vector 🚧 Matmul 🚧 · Conv 实战 MC2 融合算子 · MoE 🚧 · FA 🚧
🧠 大模型推理 大模型推理初级 · Qwen3_1.7B 实践 大模型推理中级 · Qwen3-8B 实践 大模型推理高级 · Sana-Video · PyTorch 算子优化
🏋️ 大模型训练 SFT 初阶 · RL 初阶 · SwanLab 微调 SFT 进阶 · RL 进阶
📊 推荐系统 CTR 预测 · DIN · DSSM · MMOE · 实验跟踪 · 模型导出 DIN 多进程控核推理
🔗 图框架 GE 图引擎 · TorchAir · AutoFusion GE 图编译与优化 · TorchAir 进阶 · AutoFusion 融合原理 GE 实践与问题定位 · TorchAir 实践 · AutoFusion 实战
📡 通信 HiXL 单边通信 · 集合通信 HiXL 传输优化 · HCCL 算子开发 HCCL AIV 引擎算子开发 · AI 大集群问题定位
📱 应用开发 YOLOv13 离线推理
🤖 CANNBot CANNBot技能仓 · CANNBot零基础 CANNBot中级 CANNBot高级

🏫 高校教学方案专区(供高校开课参考,建设中)

以原子课程为基础积木(技术栈四层 × 难度三级,135 门),支撑启航营、传统学科课程、CANN 新增课程、CANN 教材四大课程形态,覆盖从短期集训到高校学分课、从入门到专家的完整学习路径。详见 CANN 课程体系总体规划。

CANN 课程总览
┌─────────────────────────────────────────────────────────────────────────┐
│                        原子课程(00)—— 体系基础                            │
│              135 门积木(技术栈四层 × 难度三级)                            │
│  ┌────────────┬────────────┬────────────┬────────────────────────────┐  │
│  │  L1 应用层  │  L2 框架层  │  L3 加速库  │  L4 编程·编译·NPU 架构     │  │
│  │   (44门)    │   (29门)    │   (13门)    │        (49门)              │  │
│  └────────────┴────────────┴────────────┴────────────────────────────┘  │
└───────────────────────────────┬─────────────────────────────────────────┘
                                 │ 支撑(节选/教学化/拼装/系统化)
          ┌──────────────────────┼──────────────────────┐
          │                      │                      │
┌─────────▼──────────┐ ┌───────▼──────────┐ ┌────────▼───────────┐
│   启航营(01)       │ │ 传统学科课程(02)  │ │  CANN 新增课程(03)  │
│   原子课程节选        │ │  原子课程教学化      │ │   原子课程拼装        │
│ ┌────────────────┐  │ │ ┌────────────────┐ │ │ ┌────────────────┐  │
│ │ 两天营 ≈14h     │  │ │ │ 计组外挂 6–8h   │ │ │ │ AI计算架构 64h  │  │
│ │ 两周营 ≈60h     │  │ │ │ 体系结构三幕剧   │ │ │ │ 数据智能 32h    │  │
│ │ 结业:add_rms_  │  │ │ │ 12 学科清单      │ │ │ │ 加速计算 32-48h │  │
│ │   norm→双算子   │  │ │ └────────────────┘ │ │ │ 数据科学 24-32h │  │
│ └────────────────┘  │ └────────────────────┘ │ │ 深度学习 32-48h │  │
└─────────────────────┘                          │ │ 生成式 AI 32h   │  │
                                                  │ └────────────────┘  │
                                                  └─────────────────────┘
                                 │
                                 │ 系统化
                  ┌──────────────▼──────────────┐
                  │       教材区(04)             │
                  │     原子课程系统化             │
                  │ ┌──────────────────────────┐ │
                  │ │ 教材一:Ascend C 并行程序设计│ │
                  │ │  (↔课程三/启航营算子部分) │ │
                  │ ├──────────────────────────┤ │
                  │ │ 教材二:人工智能芯片与系统   │ │
                  │ │  (↔体系结构三幕剧/课程一)  │ │
                  │ └──────────────────────────┘ │
                  └─────────────────────────────┘

CANN 课程架构总览

分区 定位 与原子课程关系 规模 详细大纲
00 原子课程 基础积木:技术栈四层 × 难度三级的原子粒度课程 体系基础 135 门 原子课程总纲
01 启航营 短期集训:两天/两周两营递进,快速入门与实战 原子课程节选 两天营 ≈14h / 两周营 ≈60h 启航营课程总览
02 传统学科课程 学科融入:CANN 知识融入大学传统学分课程,换芯不换课 原子课程教学化 计组 + 体系结构 + 12 学科 传统学科课程目录
03 新增课程 高校学分课:六门系统课程 原子课程拼装 已排课 2 + 规划 4 CANN 新增课程汇总
04 教材区 经典书籍:双教材支撑课程体系 原子课程系统化 教材一 + 教材二 CANN 教材区概览
00 原子课程——体系基础(135 门)

按技术栈四层(应用层/AI 框架层/加速库/编程编译 NPU 架构)× 难度三级(初级/中级/高级)组织,每门原子课可单独支撑一节课(45–90 分钟),是启航营、传统学科课程、新增课程、教材的共同内容来源。

技术栈层 初级 中级 高级 小计 涵盖方向
L1 应用层 8 17 19 44 深度学习 / 计算机视觉 / 生成式 AI / 大语言模型 / 科学计算 / 推荐系统
L2 框架层 7 11 11 29 框架基础 / 训练技术 / 推理技术 / 图框架 / 进阶主题
L3 加速库 3 8 2 13 Aclnn / GE / 通信库 / C++ 并行算法 / Python 加速库
L4 编程·编译·NPU 架构 5 30 14 49 Ascend C / PyPTO / TileLang / PyAsc / CANNBot / NPU 架构
合计 23 66 46 135 —

📖 详细大纲:原子课程总纲

01 启航营——短期集训(两天营 + 两周营)

面向 CANN 算子开发入门者的集中式训练营,理论与实践 1:1 配对,以真实算子开发为主线,结业即可具备 NPU 算子开发与集成能力。两营递进,结业算子同源。

维度 两天营 两周营
总学时 2 天 ≈ 14h(理论 7 + 实践 7) 10 个工作日 ≈ 60h(理论 20 + 实践 40)
结业算子 add_rms_norm(矢量单算子) add_rms_norm + quant_matmul(双算子)+ PyTorch 集成
讲数 7 讲 13 讲
课程大纲 两天营大纲 两周营大纲
讲义目录 two_days_course/ two_weeks_course/
02 传统学科课程——换芯不换课

CANN/昇腾知识融入大学传统学分课程,核心原则:换芯不换课——传统课程大纲主体不动,CANN 以「单元包 / 对照案例 / 实验替换」外挂式融入,教师零改造或低改造即可采用。

传统课程 融入模式 交付形态 文件
计算机组成原理(本科大二必修) M2/M5 轻量融入 外挂式 6–8 学时 computer_organization.md
计算机体系结构(本科高年级/研究生) M2/M5 主讲融入 "AI 时代的体系结构挑战"三幕剧(3 次主讲课 × 135 分钟) computer_architecture.md
其他 12 学科 15 门课(并行计算/DL 系统/图像处理/编译/OS/嵌入式/数值/计算科学/数据科学/HPC 等) M2–M4 方向性规划 融入计划

📖 详细大纲:传统学科课程目录

03 新增课程大纲(六门高校学分课)

由原子课程拼装而成,覆盖从 AI 计算架构到行业应用的完整学习路径。每门课程单独成文,关注前后章节连续性;除大作业外每章节配双平台练习。

# 课程 学时 状态 课程大纲
一 AI 计算与神经网络计算架构实践 64(16 周) ✅ 已排课 课程大纲
二 昇腾 AI 与复杂系统数据智能 ≈32(16 周) ✅ 已排课 课程大纲
三 加速计算 32–48 🆕 规划 课程大纲
四 数据科学 24–32 🆕 规划 课程大纲
五 深度学习 32–48 🆕 规划 课程大纲
六 生成式 AI 32 🆕 规划 课程大纲
04 教材区——双教材支撑

双教材与课程形成「教材↔课程」双载体形态,将原子课程内容按教材体例系统化组织。

教材 定位 状态 对应课程
《Ascend C 并行程序设计》 对标 PMPP——昇腾算子开发权威教材 ✅ 已完成初稿 课程三(加速计算)、启航营算子部分
《人工智能芯片与系统》 对标 AI Accelerators——NPU 架构与系统教材 🆕 规划 传统学科体系结构三幕剧、课程一架构部分

📖 详细大纲:教材区概览


🤝 课程共建专区

展开查看课程共建专区(13 门高校共建课程)

基于 CANN 的计算机系统核心课程系列,由高校教师与 CANN 社区共建。每门课程在本仓 contrib/tutorials/ 下提供实践 Notebook,配套理论课程可点击查看。

课程大类 贡献学校 课程 状态
计算机组成原理与体系结构 华中科技大学 计算机组成原理与体系结构 ✅ 已发布
面向昇腾智算平台的智能计算系统 东南大学 面向国产智算平台的智能计算系统(Qwen 算子开发) ✅ 已发布
基于昇腾处理器的深度学习实验 哈尔滨工业大学(威海) 基于昇腾处理器的深度学习实验 ✅ 已发布
《人工智能安全》项目化实践案例 南京信息工程大学 《人工智能安全》项目化实践案例 ✅ 已发布
昇腾 AI 端云协同与多模态综合实验 上海交通大学 昇腾 AI 端云协同与多模态综合实验 ✅ 已发布
智能计算系统 北京航空航天大学 智能计算系统(机器学习系统) ✅ 已发布
智能计算系统 华南理工大学 嵌入式智能计算课程 ✅ 已发布
人工智能开源通识 华东师范大学 算子开发与应用 ✅ 已发布
并行计算 北京师范大学 并行编程原理与实践 ✅ 已发布
并行计算 深圳职业技术大学 并行计算:基于鲲鹏与昇腾的实践 ✅ 已迁移
编译原理 哈尔滨工业大学 PyAsc 编译原理课程 ✅ 已发布
数据结构与并行算法 中国科学技术大学 数据结构与算法设计(计算实践) ✅ 已发布
数据结构与并行算法 北京林业大学 高性能计算数据结构课程 ✅ 已发布

🏆 赛事备考专区

按赛事分类聚合所有相关内容,直接匹配赛事考点,选手无需从通用课程中自行筛选。

赛事 赛事说明 备赛资源 赛事权益
CANNJudge 算子题库 开放题库,Ascend C 算子编程在线刷题,实时评测;含历届算子赛真题 算子开发练习 → 在线刷题
Ascend C 算子开发系列 → 前置课程
MC2 融合算子实战 → 高阶练习
实时评测与排名等
CANN 大赛专区 算子天梯赛 / 校园赛等各种大赛 大赛报名入口 → 报名与赛程
skills 目录 → 竞赛提交技能与算子工程生成
获奖权益、人才库推荐等

备赛建议路径:

  1. 前置学习:完成阶段一(公共基础)+ 阶段二
  2. 专项练习:在 CANNJudge 按考点分类刷题
  3. 高阶提升:学习 Ascend C 算子开发系列(算子工程版)
  4. 赛前集训:关注大赛专区公告,参加赛前培训直播
  5. 参赛提交:使用 skills/cannjudge-submit 快速提交

📜 等级认证学习路径(建设中)

对应 AI Infra 工程师初/中/高三级认证体系。通识课程 + 场景方向(推理 / 训练 / 推荐 / 应用开发 / 算子 5 选 1),明确"考什么、学什么"。


🤝 SwanLab 共建案例

与 SwanLab 合作共建的大模型训练实战案例,正在从 SwanLab 平台迁移至本仓 contrib/tutorials/swanlab_examples/ 目录下。

适合人群:想在 NPU 上做模型微调的开发者 · 关注训练过程可视化的用户 · 医学/语音/多模态领域开发者

特色:每个案例均配套 SwanLab 训练可视化(loss/metrics 曲线、实验对比),迁移完成后可在 CANNLab 环境直接运行。

类别 案例 简介 原始文档 状态
深度学习入门 MNIST 手写数字识别 NPU 上 CNN 手写数字识别入门 查看 ✅ 已上线
监督微调 数学解题模型微调 Qwen2.5-0.5B LoRA 数学解题微调实战 查看 ✅ 已上线
监督微调 医学模型微调 Qwen3 医学领域 SFT 实战 查看 · 原文 ✅ 已上线
监督微调 其他框架微调——ms-swift 使用 ms-swift 框架进行微调 文档 🚧 建设中
多模态 Qwen3-smolVLM 模型拼接微调 多模态模型拼接微调实战 文档 🚧 建设中
音频 CosyVoice 微调派蒙语音 语音模型微调实战 文档 🚧 建设中

💡 案例持续迁移中,完成后将在 CANNLab 环境提供在线体验。


🔗 配套生态

平台 说明
📖 学 cann-learning-hub(本仓) 系列教程 + 快速上手 + 参考实践 + 技术博客
🏋️ 练 CANNJudge 开放题库,Ascend C 算子编程在线刷题,实时评测
🔬 练 CANNLab 任意 CANN 代码仓一键启动 NPU 环境(初始 100 小时,积分可兑换时长)
🏆 赛 CANN 大赛专区 官方/社区大赛报名入口

📝 技术博客

CANN 在实际业务场景中的最新技术实践与成果。大部分为真实客户实践案例,持续更新中。

近期精选:

博客 简介 时间
Overlap Scheduling 吞吐优化 CPU 与 NPU 执行重叠,TPS 提升约 70% 2026.3
AReaL 全异步 RL 训练 全异步 RL + Single Controller,解耦式 Agentic RL 2026.3
AICPU 点对点通信算子开发 基于 AICPU+TS 实现 HCCL 自定义 Send/Recv 算子 2026.2
npugraph_ex 第三方框架集成 图编译与编译缓存能力接入,降低冷启动耗时 2026.2
查看全部技术博客(算子 27 / 推理 23 / 训练 4,共 54 篇)
博客简介时间
算子
PyPTO+CANNBot 7 日交付实践:KDA 算子快速实现PyPTO Tensor API + CANNBot Agent,7 天完成百灵 Ling-3.0-flash KDA 融合算子开发与调优2026.8
Reg 矢量计算编程优化实践ZERO/ONE 寄存器布局将 BF16 拆为两组 FP32 计算链路,向量粒度与寄存器利用率翻倍2026.8
昇腾950 AIV 直驱 URMA 的 SHMEM 跨 PE 通信实践AIV 在 Device 侧构造 WQE,借助 URMA 与 SHMEM 完成跨 PE 远端写和通知,减少 Host 往返2026.7
多 Vendor 自定义算子并行编译实践统一调度多个独立 Vendor 子工程,并行完成算子编译、打包和产物隔离2026.7
TileLang 与 xLLM 驱动 Qwen3.5 昇腾算子适配以 TileLang Python DSL 为开发入口,结合 xLLM 完成 Qwen3.5 算子适配2026.7
基于 PyPTO 与 Agent,2 周完成模型 QAT 算子开发与优化PyPTO 张量 API + Agent 辅助编程,2 周完成 QAT 算子功能开发、三大调优与整网接入2026.7
GroupedMatmul MX 量化矩阵乘深度性能优化实践三种负载均衡、scalar 优化、私有格式搬运、双页表与 3-Buffer 等 GMM MX 优化实践2026.6
DSA 算子开源共建之路围绕 DSA 长序列训练算子 FP32 支持,从需求到反向贡献 ops-transformer 社区2026.6
Ascend 950 RmsNormQuant 算子分阶段优化Gamma 预加载、多核并行、寄存器数据流、Double Buffer 与二分累加优化2026.5
MoE Dispatch 与 Combine 算子优化跨 Rank 通信去重、本地加权合并、AIV 直驱 RDMA 与多流并行2026.5
MX 量化矩阵乘性能优化结合 SWAT、尾轮负载均衡和 UnitFlag 提升流水并行效率2026.5
Scalar 对 NPU 算子性能的影响与优化从寄存器 Spill、I-Cache、指针解引用等角度分析 ScalarBound 并给出优化方法2026.5
TileLang-Ascend 算子性能优化流水级数、核间同步、数据切分和调试分析方面的优化方法2026.5
DumpTensor 定位算子计算异常利用 DumpTensor 观察 GM、UB、L1 中间数据,逐步定位结果异常2026.4
AICPU 点对点通信算子开发基于 AICPU+TS 实现 HCCL 自定义 Send/Recv 算子2026.2
AICPU Tiling 下沉编程Tiling 计算下沉到 AICPU,减少 Host 与 Device 交互2025.12
Ascend C RTC 即时编译运行时按 shape 即时编译,兼顾性能与迭代灵活性2025.12
DeepXTrace 快慢卡在线检测MOE 推理集群轻量级快慢卡诊断,分钟级定位2025.12
HCCL ReduceScatter 精度优化开源 ReduceScatter 精度增强改造2025.12
MIX 算子开发贡献矩阵化重构 RoPE,落地首个开源 MIX 算子2025.12
CrossEntropyLoss 与 Zloss 融合损失函数融合,MoE 场景端到端 5.2% 效率提升2025.11
算子 Kernel 直调编程异构混合编程,简化编译部署,降低开发门槛2025.11
TilingKey 模板化编程统一多场景算子管理,减少 icache miss2025.11
Ascend C 矩阵乘接口选型指南矩阵乘 API 接口对比与选型建议2025.10
msSanitizer 异常检测工具单算子异常检测,定位内存访问、数据竞争与同步问题2025.10
NDDMA 多维数据搬运多维 DMA 搬运与 Padding、Transpose、Broadcast、Slice 变换2025.10
Regbase 编程范式从向量加法理解寄存器级编程与底层性能优化2025.10
推理
AOT SuperKernel 图执行优化融合任务并减少启动、调度等待和算子间流水开销2026.7
LongCat-Flash-Lite 昇腾推理优化N-gram Embedding 与 EAGLE3 投机解码,结合 SuperKernel 提升推理效率2026.6
星火大模型昇腾集群吞吐优化CANN DSA 算子将长上下文 Attention 动态稀疏化,128K 场景约 4.5 倍 Decode 提升2026.6
TensorFlow 与 AutoFuse 推荐模型融合打通 TensorFlow 到 Ascend IR 与 AutoFuse 自动融合链路2026.5
AutoFuse 与 TorchInductor 的 DeepSeek 融合扩展 TorchInductor NPU Codegen,将 Loop IR 转 Ascend IR 接入 AutoFuse2026.4
NPU DeepSeek-V4 推理优化稀疏 Attention 与 mHC 结构,结合融合算子、上下文并行、量化与多流并行2026.4
DeepSeek V4 昇腾超节点支持昇腾950 与 A3 超节点适配,含融合 Kernel、多流并行、量化与自动融合2026.4
SALS 长序列推理优化稀疏 Token 选择、SFAA 计算、离散访存、Preload 流水和 AICPU Tiling 优化2026.4
xLLM 大模型推理性能优化图融合、多流并行、投机推理和动态负载均衡优化 Qwen/DeepSeek/ChatGLM2026.4
HIXL 快速适配 NIXL 昇腾后端基于 NIXL 插件架构将 HIXL 点对点通信映射为昇腾后端2026.3
Overlap Scheduling 吞吐优化CPU 与 NPU 执行重叠,TPS 提升约 70%2026.3
HIXL FabricMem 高性能 KV Cache 传输超节点 DRAM 统一编址与 HCCS/SDMA 单边传输,提供高带宽 FabricMem 通道2026.2
npugraph_ex 第三方框架集成图编译与编译缓存能力接入,降低冷启动耗时2026.2
DeepSeek-R1 SuperPoD 推理优化全栈协同,TTFT<2s、TPOT<50ms,608 QPM2025.12
HIXL、Mooncake 与 vLLM KV Cache 池化KV Cache 池化 + D2D/H2H 传输,降低 TTFT2025.12
HIXL RL 长尾时延优化PD 分离与高效传输,缓解千卡集群长尾2025.12
LongCat-Flash SuperPod 推理优化多流并发 + 控核 + SuperKernel,TPOT 10ms2025.12
npugraph_ex 图模式优化aclGraph 图捕获与重放,减少 Host 下发2025.12
torch_npu IPC 特性跨进程共享设备内存,节省显存2025.12
TorchAir 自定义 FX Pass多流并行自动图变换,减少适配代码2025.12
SGLang、Mooncake 与 HIXL PD 分离加速 PD 分离 D2D 特性落地2025.11
SuperKernel 技术综述整网编译为大算子,性能再提升 10%-20%2025.11
vLLM-Ascend 推理优化PagedAttention + 昇腾适配,提升吞吐2025.11
训练
基于昇腾集群的词元星火 RL 优化实践MoE 专家负载均衡、P/D 两阶段采样、统一 KVStore 与 Decode 动态调度,推理加速 30%2026.9
AReaL 全异步 RL 训练全异步 RL + Single Controller,解耦式 Agentic RL2026.3
FlashRecovery 训练故障恢复降低检查点 I/O 与回滚重算损失2025.12
SAM 投机解码 RL 训练无辅助模型 SAM 投机解码,超 35% 长尾加速2025.12

🔬 科研案例

高校教师贡献的科研实践案例,聚焦昇腾 CANN 在真实科研场景中的落地,促进高校科研经验与开源生态的交流共享。案例持续征集中,欢迎高校教师投稿。

案例名称 作者 / 单位 案例介绍 发布时间
(待贡献) — — —

💡 投稿方式、案例模板与署名要求见 contrib/blogs/research_cases。


🤝 参与贡献

欢迎贡献教程、文档与案例!请阅读 贡献指南,并前往 cann/community 了解社区行为准则与 CLA 签署流程。

渠道 入口
提问 / 反馈 Bug Issues
交流讨论 Discussions
技术专栏 Wiki

🔥 Latest News


📄 版本与信息

已验证版本配套

CANN 版本 验证日期
9.0.0 2026.06.30

查看目录结构
├── quick_start                  # 快速入门
│   ├── cann_basics              # CANN 基础知识(5 门课)
│   ├── first_custom_operator    # 第一个自定义算子
│   ├── first_operator_api_call  # 第一个算子 API 调用
│   ├── first_llm_inference      # 第一个大模型推理
│   └── git_basics               # Git 基础与 GitCode 协作
├── tutorials                    # 开发教程
│   ├── ascendc_operator_development          # Ascend C 算子开发(工程版)
│   ├── ascendc_operator_development_light    # Ascend C 算子开发(Kernel 直调版)
│   ├── conv_operator_development             # Conv 算子开发
│   ├── MC2_fused_operator_development        # MC2 融合算子
│   ├── llm_inference                         # 大模型推理
│   ├── sft_training_pipeline                 # SFT 训练
│   ├── rl_training_pipeline                  # RL 训练
│   ├── ge_development                        # GE 图引擎
│   ├── TorchAir_development                  # TorchAir 图模式
│   ├── autofusion_development                # AutoFusion 自动融合
│   ├── hccl_development                      # HCCL 集合通信
│   ├── hixl_development                      # HiXL 单边通信
│   ├── CANNBot                               # CANNBot 算子生成
│   ├── pyasc_operator_development            # PyASC 算子开发
│   └── pypto_development                     # PyPTO 算子开发
├── standard_course               # 标准课程体系
│   ├── 00_atomic_courses         # 原子课程总纲(135 门)
│   ├── 01_bootcamp               # 启航营
│   ├── 02_traditional_courses    # 传统学科课程
│   ├── 03_new_courses            # 新增课程
│   └── 04_new_books              # 教材区
├── reference_practice            # 参考实践
├── blogs                         # 技术博客(算子 23 / 推理 23 / 训练 3)
├── contrib                       # 社区贡献
│   ├── tutorials                 # 外部教程(15+)
│   └── blogs/research_cases      # 科研案例(高校教师投稿,含模板)
├── skills                        # CANNBot 技能
└── docs                          # 文档与指南

项目介绍

CANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。

定制我的领域