CANN 有 55+ 个仓库、五层架构、十几个仓库分类。新人面对这些信息时最常问的问题是:从哪开始学?

cann-learning-hub 是 CANN 社区维护的学习中心——它不是文档,也不是教程合集。它是一张学习路径图,告诉你"按什么顺序学哪些仓库、每个仓库学到什么程度、学完后能做什么"。


cann-learning-hub 是什么

cann-learning-hub 的目录结构:

cann-learning-hub/
├── beginner/           # 新手入门
│   ├── install.md      # 环境安装
│   └── first_infer.md  # 第一个推理程序
├── intermediate/       # 进阶学习
│   ├── ascendcl.md     # AscendCL 深入
│   ├── runtime.md      # Runtime 调度
│   └── ge.md           # 图执行引擎
├── advanced/           # 高级主题
│   ├── ascend_c.md     # 自定义算子
│   ├── optimization.md # 性能调优
│   └── distributed.md  # 分布式训练
├── tutorials/          # 实战教程
│   ├── yolov8_deploy.md
│   └── llm_infer.md
└── skills/             # Skill 文件索引
    └── README.md

每份文档不是教你翻译 API——它解释"为什么用这个 API"和"调完 API 后在硬件上发生了什么"。


初学者如何学习昇腾

cann-learning-hub 推荐的学习路线:

第一阶段:跑通推理(1-2 天)

  1. 用 asc-devkit 搭好开发环境
  2. 用 ATC 把 ONNX 模型转成 OM
  3. 用 pyasc 或 AscendCL 跑通第一个推理程序
  4. 目标:看到一个模型在 NPU 上输出正确结果

第二阶段:理解执行链路(3-5 天)

  1. 学 AscendCL 的初始化流程——Device、Context、Stream 的关系
  2. 学 GE 的图优化——什么算子在什么条件下被融合
  3. 学 Runtime 的异步执行——Stream 和 Event 怎么协作
  4. 目标:理解"从 aclmdlExecute 到 NPU 执行完"的全链路

第三阶段:性能调优(1-2 周)

  1. 学 Tensor Layout——ND 和 NZ 格式对性能的影响
  2. 学算子融合——graph-autofusion 怎么用
  3. 学 Memory 分析——哪部分显存被浪费了
  4. 目标:能在 Benchmark 中定位性能瓶颈

教程与 Skill 的关系

cann-learning-hub 的教程和 skills 仓库的 Skill 文件是互补关系:

  • 教程是给人读的——结构化的文字、代码示例、图表
  • Skill是给 Agent 读的——结构化的知识库、术语规则、写作模板

教程由社区贡献者花时间写,数量有限但质量高。Skill 文件由 Agent 基于知识库自动生成,覆盖面广但需要人工校准。

cann-learning-hub 会定期把社区反馈中高频出现的问题同步到 Skill 文件的更新中——比如"GELU 融合"这个知识点被 10 个用户问过,就在成对应的 Skill 知识库条目。


社区学习活动

CANN 社区在 cann-learning-hub 上组织学习活动:

  • 每周实战任务。 每周发布一个实操任务——“用 ATC 转一个 YOLOv8 模型并跑通推理”
  • 代码 Review。 社区维护者对新人的推理代码做 Review
  • 学习打卡。 完成指定技能树节点后在社区讨论区打卡

这些活动不是强制性的,但对刚入门的新人来说——跟着社区节奏走比一个人摸索快得多。


学习路线推荐

entry:有 Python 基础、了解基本 AI 概念
  ↓ 1-2 天
新手:能用 pyasc 跑通推理
  ↓ 3-5 天
进阶:理解 CANN 执行链路
  ↓ 1-2 周
熟练:能定位性能瓶颈、做算子融合优化
  ↓ 持续
高级:能写 Ascend C 算子、做分布式调优

cann-learning-hub 中每篇文档末尾标注了"前置条件"——读完这篇需要先读完哪些其他篇。按标注顺序学习,不会出现"这篇讲的阅读前置知识还没学"的情况。

学习资源的选择

cann-learning-hub 之外还有几个学习资源:

  • cann-samples:官方示例代码——每个示例对应一个具体功能(“如何使用 ATC 转模型”、“如何用 pyasc 做推理”)
  • cann-recipes-infer:大模型推理参考——LLaMA 的完整部署方案
  • Skills 仓库:Agent 可读的技术知识库——生成技术文章

初学阶段建议先看 cann-learning-hub 的 beginner 目录,配合 cann-samples 的示例代码跑一遍。理解了基本流程后再深入 skills 仓库和 cann-recipes-infer。

社区支持

CANN 社区在 atomgit 上提供讨论区和 Issues 渠道。学习过程中遇到问题可以搜索 Issues 看有没有类似问题。如果搜索不到新开 Issue 提问——社区维护者通常在 1-2 天内回复。提问时附上环境信息(CANN 版本、NPU 型号、驱动版本)和完整的错误日志,能更快得到有针对性的解答。

参考仓库

cann-learning-hub 学习中心

Skills 仓库

Logo

鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。

更多推荐