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

Vector 算子开发课程

本课程专注于华为昇腾 NPU 的 Vector 计算单元,从芯片架构、SIMD/SIMT 编程模型,到实际的算子开发和优化,提供全面的学习路径。

课程以 FastGelu(标准 GELU 的 sigmoid 近似:y = x / (1 + exp(-1.702 * x)),其中 1.702 为经验系数)作为贯穿全课程的示例算子。

课程结构

第一章:基础掌握

介绍昇腾 AI 处理器的 Vector 计算架构,包括 A2/A3/A5 芯片架构、SIMD Membase/Regbase 编程、SIMT 编程模型等基础知识。

第二章:加速库基础认知

了解算子执行流程、算子库的目录结构、Tiling 原理以及开发环境的搭建。

第三章:Ascend 算子开发

深入学习 SIMD 和 SIMT 算子开发,包括 membase/regbase 编程、aclnn 和 PTA 接口调用、性能优化和调试技巧。

前置知识要求

  • 具备 C/C++ 编程基础
  • 了解深度学习框架(PyTorch/TensorFlow)基本概念
  • 具备一定的并行编程基础
  • 已完成 Ascend C 算子开发系列教程基础部分

软硬件配套说明

项目 要求
支持硬件 Ascend 950PR/Ascend 950DT
CANN 版本 8.0.0 及以上
Python 3.8+

在线体验环境

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

体验环境 镜像模板 / 版本 Python 内核 说明
CANNLab 950尝鲜 cann_9.0.0-beta.2-py3.12-a5 Python 3.12 参考 CANNLab 环境体验指南创建CANNLab环境运行notebook

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

章节目录

第一章:基础掌握

编号 标题 内容
1.1 章节介绍 章节概述、前置要求、学习目标
1.2 芯片架构简介 A2/A3/A5 芯片 AI Core 架构
1.3 SIMD Membase 编程基础 Membase 编程范式与常见指令
1.4 SIMD Regbase 编程基础 Regbase 编程模型、VF 寄存器与指令
1.5 SIMT 编程基础 SIMT 线程架构与内存层级
1.6 章节实践 FastGelu regbase 完整实现

第二章:加速库基础认知

编号 标题 内容
2.1 章节介绍 章节概述、前置要求、学习目标
2.2 算子执行流程 aclnn 单算子 API、GE 图模式、Kernel 直调
2.3 算子目录结构 FastGelu 工程目录布局与 Tiling 原理
2.4 开发环境部署 CANN Toolkit/Ops 安装与环境配置
2.5 章节实践 FastGelu 算子工程搭建

第三章:Ascend 算子开发

编号 标题 内容
3.1 章节介绍 章节概述、前置要求、学习目标
3.2 SIMD 算子开发 membase 与 regbase 模式 FastGelu 完整开发
3.3 SIMT 算子开发 SIMT 算子开发实战
3.4 调用接口开发 aclnn 两段式接口与 PTA 调用模式
3.5 算子调试 调试工具与调试方法
3.6 算子性能优化 Double Buffer、UB 优化、Scalar 优化等
3.7 章节实践 FastGelu 完整开发 + 性能优化

本课程从基础概念到实际开发,循序渐进地帮助您掌握 Vector 算子开发的完整流程。