文件最后提交记录最后更新时间
25 天前
11 天前
7 天前
1 个月前
16 天前
11 天前
15 天前
16 天前
1 个月前
11 天前
README

Ascend C 算子开发系列教程

本教程将带你学习面向昇腾 NPU 的 Ascend C 高性能算子开发全流程,涵盖从算子基础概念、核函数开发、工程化 Tiling 模板化编程,到矩阵乘高阶 API、融合算子、算子调试与性能优化等核心内容,帮助开发者系统掌握 Ascend C 算子开发技能。

教程按章节划分,每个章节均包含以下内容:

  • Notebooks:包含课程知识点与练习题,适用于自主学习或讲师引导式教学,可在 gitcode 提供的轻量级 notebook 上运行。也可自行搭建 jupyter lab,在本地环境执行使用。
  • SRC:包含课程中所有的源码,供开发者自行下载及修改。
  • PPT(建设中):包含各课时的授课内容。

适用人群

  • 希望了解并掌握 Ascend C 算子编程方法的开发者
  • AI 算法工程师、C/C++ 开发者、算子开发工程师

前置知识要求

在学习本教程之前,建议先完成以下前置学习:

  • 阅读 cann-learning-hub 快速入门 中的 cann_basics 章节,了解 AI 基础概念、NPU 硬件架构与 CANN 软件栈
  • 掌握 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 安装指南

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算子开发实践 在线体验 ✅ 已发布