CANNBot 系列课程

CANNBot 系列课程围绕 CANNBot 算子开发展开,从入门到进阶,系统介绍如何使用 CANNBot 生成与优化 Ascend 算子。课程涵盖 Ascend C、PyPTO、TileLang-Ascend 等多种算子开发路径,并深入讲解 Vector 算子自动生成、单指令多线程算子、Harness 工程建设以及算子测试全流程,帮助开发者快速掌握 CANNBot 的核心能力。

学习建议:本课程以 CANNBot 为工具介绍算子开发,重点在于"如何借助 CANNBot 高效完成算子开发与优化",而非从零讲解算子开发原理。建议先对照下方《前置知识》补齐基础,再按 课程内容 中的前置依赖顺序学习。

前置知识

本课程面向已具备一定算子开发基础的开发者,建议具备以下前置知识:

  • Python 基础:熟练使用 Python 编写与调试脚本
  • C/C++ 基础:掌握指针、内存访问等基础概念,便于理解 Ascend C 算子代码
  • 昇腾 NPU 基础:了解昇腾 NPU 的 Cube / Vector / Scalar 三大计算单元及其分工
  • CANN 基础概念:了解算子、Tiling、Kernel 等基本概念

若暂无上述基础,建议先学习以下课程补齐后再返回本课程:

快速开始:获取 CANNBot 仓库

CANNBot 的 Skills 与 Agents 统一托管在以下仓库(课件中的链接均指向该仓库):

课程内容

序号 主题 主要内容 前置 课件
1 CANNBot 入门:从 0 到 1 生成你的第一个算子 CANNBot 简介,从零开始生成第一个算子 无(具备前置知识即可) 01_cannbot_start.pdf
2 CANNBot 开发进阶:Ascend C 算子开发实操 基于 Ascend C 的算子开发实操 第 1 课 02_ascend_c_operator.pdf
3 CANNBot 开发进阶:PyPTO 算子开发实操 基于 PyPTO 的算子开发实操 第 1 课(与第 2 课平行,任选其一) 03_pypto_operator.pdf
4 CANNBot 开发进阶:TileLang-Ascend 算子开发实操 基于 TileLang-Ascend 的算子开发实操 第 1 课(与第 2 课平行,任选其一) 04_tilelang_operator.pdf
5 CANNBot 进阶开发:自动生成 Vector 算子之 RegBase 自动生成 Vector 算子,RegBase 机制详解 第 2 课(需先理解 Ascend C 手动开发流程,才能理解自动生成原理) 05_vector_regbase.pdf
6 CANNBot 进阶开发:Vector 算子之排序性能优化 Vector 算子排序性能优化方法 第 5 课 06_vector_sort_opt.pdf
7 CANNBot 支持生成单指令多线程算子 单指令多线程算子的生成 第 2 课 07_multi_thread_operator.pdf
8 CANNBot 算子 Harness 工程建设 算子 Harness 工程的建设与实践 第 2~4 课(至少掌握一种开发路径) 08_harness_engineering.pdf
9 CANNBot 算子测试全流程 算子测试的完整流程 第 8 课 09_operator_testing.pdf

相关课程

本课程覆盖 Ascend C、PyPTO、TileLang-Ascend 三种算子开发路径,但侧重点是"用 CANNBot 生成与优化算子"。若想在具体技术路线上深入系统学习,可结合以下课程:

学习方向 建议课程 与本课程的关系
Ascend C 手动开发 Ascend C 算子开发系列教程(V2) 本课程第 2、5、6、7 课涉及 Ascend C / Vector 算子,可在此系统学习 SIMD/SIMT 编程模型与手动开发流程
Ascend C 快速入门 Ascend C 算子开发系列教程(Kernel 直调) 面向零基础的前置课程,覆盖 CANN / NPU 基础与 Ascend C 入门
PyPTO 开发 PyPTO 算子开发系列教程 本课程第 3 课介绍 PyPTO 开发,可在此深入学习 PyPTO 编程范式与算子实践
Vector 算子 Vector 算子开发课程 本课程第 5、6 课涉及 Vector 算子的 SIMD/SIMT 与 RegBase,可在此了解更详细的硬件架构与编程细节

学习路径建议:零基础 → Ascend C 算子开发系列教程(Kernel 直调) → 本课程第 1~2 课 → 按需深入对应相关课程。