pyasc算子开发系列教程

本教程是Ascend C算子开发系列教程的姊妹篇,带你学习使用pyasc——一种基于Python原生语法的昇腾NPU高性能算子开发方式。pyasc编程接口与Ascend C类库接口一一对应,让你可以用熟悉的Python语法完成算子开发。

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

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

注意:

  • 本教程前置依赖Ascend C算子开发系列教程,建议先完成Ascend C课程初级前两章的学习,掌握算子基础概念和核函数开发方法后再学习本课程。
  • 本教程当前针对Atlas A2(910B)和Atlas A3(910C)系列产品进行验证。

适用对象

  • 已学习Ascend C算子开发系列教程(至少完成初级前两章)。
  • 熟悉Python编程,希望用Python原生语法开发昇腾算子。
  • 了解算子开发基本概念(核函数、Tiling、数据搬运、流水同步等)。

整体学习目标

  • 掌握pyasc核函数开发与调用方式,理解@asc.jit编译机制。
  • 掌握基于TPipe/TQue框架的工程化开发方式。
  • 掌握Matmul高阶API开发MIX/Cube模式矩阵算子。
  • 掌握融合算子开发方式。
  • 掌握pyasc调试接口(printf/dump_tensor)和性能调优工具(msprof op)。

软硬件配套说明

项目 要求
支持硬件 Atlas A2(910B)、Atlas A3(910C)
CANN版本 8.5.0.alpha001及以上
pyasc版本 v1.1.0及以上
Python 3.9-3.12
CPU架构 aarch64 / x86_64

课程大纲

pyasc算子开发系列(初级)

第一章:pyasc概述与环境准备

Notebook 链接 状态
1.1 章节介绍 在线体验建设中 🚧 开发中
1.2 pyasc简介 在线体验建设中 🚧 开发中
1.3 环境准备 在线体验建设中 🚧 开发中
1.4 首个样例执行 在线体验建设中 🚧 开发中
1.5 章节实践 在线体验建设中 🚧 开发中

第二章:pyasc核函数开发基础

Notebook 链接 状态
2.1 章节介绍 在线体验建设中 🚧 开发中
2.2 pyasc编程范式 在线体验建设中 🚧 开发中
2.3 核函数定义与JIT编译 在线体验建设中 🚧 开发中
2.4 Tensor与数据搬运 在线体验建设中 🚧 开发中
2.5 手动流水同步 在线体验建设中 🚧 开发中
2.6 核函数调用与验证 在线体验建设中 🚧 开发中
2.7 章节实践 在线体验建设中 🚧 开发中

pyasc算子开发系列(中级)

第三章:Vector算子开发

Notebook 链接 状态
3.1 章节介绍 在线体验建设中 🚧 开发中
3.2 Vector算子计算模型与典型场景 在线体验建设中 🚧 开发中
3.3 向量数据访问与并行切分 在线体验建设中 🚧 开发中
3.4 Vector算子实现、编译与验证流程 在线体验建设中 🚧 开发中
3.5 章节实践 在线体验建设中 🚧 开发中

第四章:Matmul高阶API算子开发

Notebook 链接 状态
4.1 章节介绍 在线体验 🚧 开发中
4.2 底层mmad实现 在线体验 🚧 开发中
4.3 高阶Matmul API 在线体验 🚧 开发中
4.4 Cube Only模式Matmul开发 在线体验 🚧 开发中
4.5 MIX模式Matmul开发 在线体验 🚧 开发中
4.6 章节实践 在线体验 🚧 开发中

pyasc算子开发系列(高级)

第五章:融合算子开发

Notebook 链接 状态
5.1 章节介绍 在线体验建设中 🚧 开发中
5.2 融合算子概念 在线体验建设中 🚧 开发中
5.3 Matmul+矢量融合算子开发 在线体验建设中 🚧 开发中
5.4 章节实践 在线体验建设中 🚧 开发中

第六章:算子调试与性能调优

Notebook 链接 状态
6.1 章节介绍 在线体验建设中 🚧 开发中
6.2 功能调试 在线体验建设中 🚧 开发中
6.3 性能调优 在线体验建设中 🚧 开发中
6.4 章节实践 在线体验建设中 🚧 开发中

在线体验环境

本教程支持以下在线体验环境:

体验环境 适用硬件 说明
learning-hub notebook在线体验环境 A2 / A3 点击各notebook的"在线体验"链接可直接打开运行
CANNLab云开发环境 910B / 910C 提供完整的NPU开发环境,支持上板运行

注意: 如在本地环境离线体验,需自行安装配套的CANN软件和pyasc,具体请参考环境准备章节。