文件最后提交记录最后更新时间
1 天前
1 天前
14 天前
1 天前
5 天前
7 天前
1 天前
1 天前
README

Ascend C 算子开发系列教程

本教程面向昇腾 NPU,系统讲解 Ascend C 高性能算子开发方法,内容涵盖 CANN 与 NPU 基础、SIMD/SIMT 编程模型、多层级 API、典型算子实践、PyTorch 框架集成以及 GE 入图编译与运行,帮助开发者逐步掌握从核函数编写到框架调用的完整开发流程。

根据章节内容,教程目录中包含以下学习材料:

  • Notebooks:包含课程知识点、示例代码与练习题,适用于自主学习或讲师引导式教学。
  • src:包含部分实践课程使用的完整样例工程,可用于编译、运行和修改。

适用人群

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

前置知识要求

在学习本教程之前,建议具备以下基础:

  • 掌握 C/C++ 编程基础
  • 了解并行编程基本概念
  • 熟悉 Linux 命令行、CMake 和基础编译流程

整体学习目标

完成本教程后,你将能够:

  • 理解 CANN 与昇腾 NPU 基础,掌握 Ascend C 核函数开发流程及多层级 API 的基本使用方法
  • 掌握 SIMD、SIMT 编程模型,并能够根据算子特点选择合适的编程方式
  • 掌握矩阵、融合及离散访存等典型算子的开发、验证与基础优化方法
  • 掌握自定义 Ascend C Kernel 在 PyTorch 框架下的调用方法
  • 掌握自定义算子接入 GE 图的基本方法,理解 GE 图的编译与运行流程

软硬件配套说明

项目 要求
主要支持硬件 Ascend 950PR / Ascend 950DT(dav-3510
兼容硬件 部分 SIMD、CV 融合和 GE 教程支持 Atlas A2 / A3(dav-2201),以具体 Notebook 的说明为准
CANN 版本 9.1.0 及以上
Python 3.11

注意: SIMT、RegBase 和部分 Tensor API 能力仅支持 Ascend 950PR / Ascend 950DT。运行样例前,请先查看对应 Notebook 中的硬件兼容性和编译参数说明。

在线体验环境

本教程中的概念讲解可直接通过 Notebook 阅读。如需编译和运行 Ascend 950 专属样例,建议使用 CANNLab Ascend 950 配套环境,具体请参考 CANNLab 环境体验指南

注意: 如在本地环境离线体验,需自行安装配套的 CANN 软件,具体请参考 CANN 快速安装

第一章:前置知识

Notebook 状态
1.1 章节介绍 🚧 开发中
1.2 人工智能与算子基础 🚧 开发中
1.3 CANN 架构与昇腾 NPU 原理 🚧 开发中
1.4 算子开发的基本概念 🚧 开发中
1.5 章节测试 🚧 开发中

第二章:算子入门

Notebook 状态
2.1 章节介绍 🚧 开发中
2.2 SIMT 与 SIMD 介绍 🚧 开发中
2.3 对应典型算子结构 🚧 开发中
2.4 Ascend C 的 Hello World 🚧 开发中
2.5 SIMD 连续类矢量算子示例(C API Add 算子) 🚧 开发中
2.6 SIMD 矩阵算子示例(Tensor 编程) 🚧 开发中
2.7 SIMT 离散类矢量算子示例(Gather 算子) 🚧 开发中
2.8 章节测试 🚧 开发中

第三章:Ascend C 编程模型

Notebook 状态
3.1 章节介绍 🚧 开发中
3.2 编程模型概述 🚧 开发中
3.3.1 SIMD 抽象硬件架构简介 🚧 开发中
3.3.2 SIMD 核函数 🚧 开发中
3.3.3 SIMD 编程模型与接口概述 🚧 开发中
3.3.4 基于指针的 C 语言 SIMD 编程 🚧 开发中
3.3.5 基于 Tensor 的 C++ SIMD 编程 🚧 开发中
3.3.6 基于 TPipe/TQue 框架的 SIMD 编程 🚧 开发中
3.3.7 基于静态 Tensor 框架的 SIMD 编程 🚧 开发中
3.3.8 SIMD 章节实践 🚧 开发中
3.4.1 SIMT 抽象硬件架构 🚧 开发中
3.4.2 SIMT 线程架构 🚧 开发中
3.4.3 SIMT 核函数 🚧 开发中
3.4.4 SIMT 内存层级 🚧 开发中
3.4.5 SIMT 同步机制 🚧 开发中
3.4.6 SIMT 编程 API 🚧 开发中
3.4.7 SIMT 课后实践 🚧 开发中

第四章:简单算子实践

Notebook 状态
4.1 章节介绍 🚧 开发中
4.2 Softmax 算子教程 🚧 开发中
4.3 Tensor API 矩阵算子优化实践 🚧 开发中
4.4 基于静态 Tensor 的 CV 融合算子开发 🚧 开发中
4.5 CV 融合算子教程 🚧 开发中
4.6 SIMT Gather 算子开发 🚧 开发中

第五章:框架集成

Notebook 状态
5.1 章节介绍 🚧 开发中
5.2 PyTorch 框架下 Kernel 直调 🚧 开发中

第六章:高级特性

Notebook 状态
6.1 章节介绍 🚧 开发中
6.3 GE 入图编译与运行 🚧 开发中

第七章:高级算子实践

Notebook 状态
7.1 章节介绍 🚧 开发中