Ascend C 算子开发系列教程
本教程将带你学习面向昇腾 NPU 的 Ascend C 高性能算子开发全流程,涵盖从算子基础概念、核函数开发、工程化 Tiling 模板化编程,到矩阵乘高阶 API、融合算子、算子调试与性能优化等核心内容,帮助开发者系统掌握 Ascend C 算子开发技能。
教程按章节划分,每个章节均包含以下内容:
- Notebooks:包含课程知识点与练习题,适用于自主学习或讲师引导式教学,可在 gitcode 提供的轻量级 notebook 上运行。也可自行搭建 jupyter lab,在本地环境执行使用。
- SRC:包含课程中所有的源码,供开发者自行下载及修改。
- PPT(建设中):包含各课时的授课内容。
适用人群
- 希望了解并掌握 Ascend C 算子编程方法的开发者
- AI 算法工程师、C/C++ 开发者、算子开发工程师
前置知识要求
在学习本教程之前,建议先完成以下前置学习:
整体学习目标
- 掌握 Ascend C 核函数开发与调用方式,理解编程范式与 API 体系
- 掌握工程化算子开发方法,包括 Tiling 模板化编程、Tbuf、Workspace 等机制
- 掌握基于高阶 API 的矩阵乘算子开发(MIX / Cube 模式)
- 掌握 VV 融合与 CV 融合等典型融合算子开发
- 掌握 Ascend C 算子功能调试方法与性能优化工具链(msProf)
软硬件配套说明
| 项目 |
要求 |
| 支持硬件 |
Atlas A2 训练/推理系列产品、Atlas A3 训练/推理系列产品 |
| CANN 版本 |
9.0.0 及以上 |
| Python |
3.11 |
在线体验环境
本教程支持以下在线体验环境:
| 体验环境 |
镜像模板 / 版本 |
Python 内核 |
说明 |
| cann-learning-hub 在线体验 notebook |
cann_9.0.0_py3.11-A2-arm |
Python 3.11.15 |
各 Notebook 表格中的"在线体验"链接可直接打开运行 |
| CANNLab 云开发环境 |
cann_9.0.0_py3.11-A2-arm |
Python 3.11.4 |
参考 CANNLab 环境体验指南创建CANNLab环境运行notebook |
注意: 如在本地环境离线体验,需自行安装配套的 CANN 软件,具体请参考 CANN 安装指南,并选择对应CANN版本的文档。
Ascend C算子开发系列(初级)
第一章:面向昇腾NPU的高性能算子开发语言
| Notebook |
Link |
状态 |
| 1.1 章节介绍 |
在线体验 |
✅ 已发布 |
| 1.2 人工智能与算子基础 |
在线体验 |
✅ 已发布 |
| 1.3 CANN架构与昇腾NPU原理 |
在线体验 |
✅ 已发布 |
| 1.4 Ascend C算子开发的基本概念 |
在线体验 |
✅ 已发布 |
| 1.5 章节练习 |
在线体验 |
✅ 已发布 |
第二章:Ascend C算子开发基础知识
| Notebook |
Link |
状态 |
| 2.1 章节介绍 |
在线体验 |
✅ 已发布 |
| 2.2 Ascend C的"Hello world" |
在线体验 |
✅ 已发布 |
| 2.3 AscendC编程范式介绍与API介绍 |
在线体验 |
✅ 已发布 |
| 2.4 基于Add算子的核函数介绍 |
在线体验 |
✅ 已发布 |
| 2.5 章节实践 |
在线体验 |
✅ 已发布 |
Ascend C算子开发系列(中级)
第三章:Vector算子开发
| Notebook |
Link |
状态 |
| 3.1 章节介绍 |
在线体验 |
✅ 已发布 |
| 3.2 工程化算子开发介绍 |
在线体验 |
✅ 已发布 |
| 3.3 aclnn和pybind调用 |
在线体验 |
✅ 已发布 |
| 3.4 泛化Tiling设计 |
在线体验 |
✅ 已发布 |
| 3.5 tiling模板化编程、属性、Tbuf、workspace的使用 |
在线体验 |
✅ 已发布 |
| 3.6 章节实践 |
在线体验 |
✅ 已发布 |
第四章:矩阵算子开发
| Notebook |
Link |
状态 |
| 4.1 章节介绍 |
在线体验 |
✅ 已发布 |
| 4.2 矩阵乘法介绍 |
在线体验 |
✅ 已发布 |
| 4.3 基于高阶API的矩阵乘算子开发 |
在线体验 |
✅ 已发布 |
| 4.4 章节实践 |
在线体验 |
✅ 已发布 |
第五章:融合算子开发
| Notebook |
Link |
状态 |
| 5.1 章节介绍 |
在线体验 |
✅ 已发布 |
| 5.2 融合算子概念介绍 |
在线体验 |
✅ 已发布 |
| 5.3 VV融合算子开发 |
在线体验 |
✅ 已发布 |
| 5.4 CV融合算子开发 |
在线体验 |
✅ 已发布 |
| 5.5 章节实践 |
在线体验 |
✅ 已发布 |
第六章:CANN开源算子仓--昇腾NPU异构计算全场景算子开发、验证与贡献一站式平台
| Notebook |
Link |
状态 |
| 6.1 章节介绍 |
在线体验 |
✅ 已发布 |
| 6.2 开源仓介绍及验证 |
在线体验 |
✅ 已发布 |
| 6.3 基于开源仓的算子开发 |
在线体验 |
✅ 已发布 |
| 6.4 UT的编写及验证 |
在线体验 |
✅ 已发布 |
| 6.5 章节实践 |
在线体验 |
✅ 已发布 |
Ascend C算子开发系列(高级)
第七章:Ascend C算子功能调试
| Notebook |
Link |
状态 |
| 7.1 章节介绍 |
在线体验 |
✅ 已发布 |
| 7.2 CPU域孪生调试 |
在线体验 |
✅ 已发布 |
| 7.3 NPU域上板调试 |
在线体验 |
✅ 已发布 |
| 7.4 Ascend C算子开发典型问题 |
在线体验 |
✅ 已发布 |
| 7.5 章节实践 |
在线体验 |
✅ 已发布 |
第八章:Ascend C算子性能优化
| Notebook |
Link |
状态 |
| 8.1 章节介绍 |
在线体验 |
✅ 已发布 |
| 8.2 msProf工具使用技巧 |
在线体验 |
✅ 已发布 |
| 8.3 仿真分析 |
在线体验 |
✅ 已发布 |
| 8.4 Ascend C算子性能优化典型示例 |
在线体验 |
✅ 已发布 |
| 8.5 章节实践 |
在线体验 |
✅ 已发布 |
第九章:Ascend C算子开发实践
| Notebook |
Link |
状态 |
| 9.1 vector算子开发实践 |
在线体验 |
✅ 已发布 |