Skip to content

CANN 生态全景概览

什么是 CANN

CANN(Compute Architecture for Neural Networks)是华为面向 AI 场景打造的异构计算架构,定位是昇腾 AI 处理器的软件使能平台,相当于昇腾生态中的"CUDA"。

CANN 于 2018 年随昇腾芯片一同发布,2025 年宣布全栈开源,标志着昇腾生态从封闭走向开放。


CANN 在整个 AI 栈中的位置

┌─────────────────────────────────────────────────────┐
│              AI 应用 / 大模型 / 推理服务              │
├─────────────────────────────────────────────────────┤
│     MindSpore / PyTorch / TensorFlow / PaddlePaddle  │
├─────────────────────────────────────────────────────┤
│                  CANN 软件栈                         │
│  ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌────────┐ │
│  │AscendCL  │ │  GE图引擎 │ │  HCCL   │ │  AOE   │ │
│  │应用开发层 │ │ 编译执行层 │ │ 集合通信 │ │ 调优引擎│ │
│  └──────────┘ └──────────┘ └──────────┘ └────────┘ │
│  ┌──────────┐ ┌──────────┐ ┌──────────┐            │
│  │  TBE/    │ │  ATC     │ │ Runtime  │            │
│  │ Ascend C │ │ 模型转换  │ │  运行时  │            │
│  └──────────┘ └──────────┘ └──────────┘            │
├─────────────────────────────────────────────────────┤
│              昇腾驱动层(NPU Driver)                 │
├─────────────────────────────────────────────────────┤
│         昇腾 AI 处理器(达芬奇架构 NPU)              │
│    Ascend 310 / 910 / 910B / 910C / Atlas 系列       │
└─────────────────────────────────────────────────────┘

CANN 核心组件一览

组件全称核心职责
AscendCLAscend Computing Language应用开发 C/C++ API,设备/内存/模型管理
GEGraph Engine图优化、图编译、图执行全流程
ATCAscend Tensor Compiler离线模型转换工具(.pb/.onnx → .om)
TBETensor Boost Engine算子开发框架(DSL/TIK 两种模式)
Ascend CAscend C新一代 C++ 算子编程语言
HCCLHuawei Collective Communication Library分布式训练集合通信库
AOEAscend Optimization Engine算子/子图/梯度自动调优引擎
RuntimeCANN Runtime硬件资源管理、任务调度、流管理
DriverNPU Driver内核态驱动,硬件抽象层
AOLAscend Operator Library预置算子库(1500+ 基础算子)
Framework Adaptor框架适配器对接 PyTorch/TF/MindSpore 等框架

CANN 分层架构详解

CANN 自顶向下分为五大层级:

1. 计算语言层

AscendCL 为核心,提供面向应用开发者的 C/C++ API。开发者通过 AscendCL 完成:

  • 设备初始化与上下文管理
  • 内存分配与数据传输
  • 模型加载与推理执行
  • 媒体数据预处理(DVPP)

2. 计算服务层

包含算子加速库(AOL)、调优引擎(AOE)和框架适配器(Framework Adaptor)。这一层屏蔽了底层硬件差异,为上层框架提供统一的算子服务。

3. 计算编译层

核心是图编译器TBE 张量加速引擎。将框架产生的计算图(IR)编译为昇腾硬件可执行的二进制模型(.om 文件)。

4. 计算执行层

包含 Runtime 运行时GE 图引擎HCCL 集合通信库。负责在运行时管理硬件资源、调度任务流、执行分布式通信。

5. 计算基础层

达芬奇架构硬件,包含 AI Core(矩阵/向量/标量计算单元)、AI CPU、DVPP、内存控制器等物理单元。


开发者视角:三条主要开发路径

路径一:应用推理开发
  框架训练 → ATC 模型转换 → AscendCL 加载推理 → 部署

路径二:自定义算子开发
  TBE DSL / Ascend C 编写算子 → 注册到框架 → 训练/推理使用

路径三:分布式训练开发
  框架 + HCCL → 多卡/多机并行训练 → AOE 调优

与 CUDA 生态的对比

维度NVIDIA CUDA华为 CANN
硬件GPU(CUDA Core + Tensor Core)NPU(达芬奇 AI Core)
应用 APICUDA Runtime APIAscendCL
算子开发CUDA C / TritonAscend C / TBE
模型转换TensorRTATC
集合通信NCCLHCCL
调优工具NsightMindStudio Profiler
框架支持PyTorch/TF/JAXPyTorch/TF/MindSpore

本知识体系的阅读路线

入门路线(推理应用开发):

第1章硬件基础 → 第3章AscendCL → 第5章ATC模型转换 → 第9章部署

进阶路线(算子开发):

第2章达芬奇架构 → 第4章算子开发 → 第5章图引擎 → 第8章调优

高阶路线(分布式训练):

第6章HCCL → 第7章框架适配 → 第8章调优工具 → 第9章生态

基于昇腾CANN文档整理