Appearance
硬件使能 CANN
CANN(Compute Architecture for Neural Networks,神经网络计算架构)是昇腾的异构计算架构,向下封装昇腾硬件、向上对接 AI 框架,是连接两者的关键中间层。本页先总览 CANN 的定位,再聚焦本平台的使用方式。
1. CANN 总览
如果说 NVIDIA 生态的核心软件是 CUDA,那么昇腾生态的核心就是 CANN。它对上层屏蔽了 NPU 硬件的复杂细节,让 PyTorch 等框架无需关心达芬奇架构,就能把计算下发到昇腾 910 上执行。
CANN 自下而上大致分为几层:

| 层次 | 组件 | 作用 |
|---|---|---|
| 驱动层 | Driver / Firmware | 驱动与固件,直接管理 NPU 硬件 |
| 运行时 | Runtime | 设备管理、内存管理、任务调度 |
| 算子层 | 算子库(AOL) | 提供高性能算子实现 |
| 图层 | 图引擎(GE) | 计算图的编译与优化 |
| 通信层 | 集合通信库(HCCL) | 多卡 / 多机分布式通信 |
| 接口层 | AscendCL(ACL) | 统一的应用编程接口 |
2. 本平台中的 CANN
在本平台上,你通常不会直接对 CANN 编程,而是通过 PyTorch(torch_npu)间接使用它。但有两件事必须了解:
- 版本配套:CANN 必须与驱动/固件、以及上层 torch_npu 版本相互匹配,否则无法正常运行。
- 环境激活:使用前需加载 CANN 环境变量(
set_env.sh),框架才能找到底层库。
简单说:CANN 是「昇腾的 CUDA」。你的 PyTorch 代码 → torch_npu → CANN → 昇腾 910 NPU。
3. 本章导航
| 页面 | 内容 |
|---|---|
| CANN 架构与软件栈 | CANN 定位与分层详解 |
| 核心概念 | 算子、AscendCL 等关键概念 |
| 版本配套与环境激活 | 版本匹配规则与环境检查 |
