🧠 AI知识库

人工智能产业链与技术栈全景图 v0.3.0 · 2026-06-03

L3 · 算力平台层 · CANN

华为CANN — 昇腾AI处理器计算架构与编程平台

🇨🇳 中国 ⚙️ 算力平台 CANN编程框架算子库

简介

CANN(Compute Architecture for Neural Networks)是华为昇腾AI处理器的计算架构和编程平台,是连接上层AI框架(MindSpore、PyTorch、TensorFlow等)和底层昇腾AI芯片的关键中间层。CANN提供了完整的AI计算编程能力,包括Ascend C编程语言、CATLASS高性能算子模板库、1500+预置神经网络算子库、AscendNPU IR中间表示以及高性能集合通信库。CANN对标NVIDIA CUDA生态,是华为构建昇腾AI软件生态的核心基础设施,其设计目标是为AI开发者提供类似CUDA的底层编程体验,同时充分发挥昇腾达芬奇架构的硬件性能。

最新版本CANN 8.0
核心组成Ascend C · CATLASS · 算子库 · AscendNPU IR · 集合通信库
支持框架MindSpore · PyTorch · TensorFlow · ONNX
官网https://www.hiascend.com/software/cann

🏗️ CANN核心模块

CANN全览

CANN整体架构分为三层:底层是Ascend NPU驱动和运行时(Runtime),提供设备管理、内存管理、流(Stream)管理等基础功能;中间层是计算引擎层,包括Ascend C编译器、算子编译器(TBE/Ascend C DSL)、图编译器(GE,Graph Engine)和集合通信库(HCCL);顶层是应用接口层,提供C/C++、Python等编程语言的API接口以及AI框架适配层(Frameworks Adapter)。CANN支持动态图和静态图两种执行模式,可根据模型特征自动选择最优执行策略。

Ascend C编程语言

Ascend C是华为针对昇腾AI处理器自研的类CUDA C/C++编程语言,允许开发者直接编写昇腾NPU上的核函数(Kernel)。Ascend C提供了丰富的内置函数(Intrinsics)来访问达芬奇架构的3D Cube、向量和标量计算单元。开发者可以使用Ascend C编写高性能的自定义算子,充分发挥昇腾芯片的硬件潜力。Ascend C的编程模型与CUDA Kernel类似,采用SPMD(单程序多数据)执行模型,降低了CUDA开发者迁移到昇腾平台的学习成本。

CATLASS模板库

CATLASS(CANN Template Library for AI Software Stack)是华为推出的高性能算子模板库,类似于NVIDIA CUTLASS。CATLASS提供了一系列基于模板的高性能算子实现,包括矩阵乘法(GEMM)、卷积(Convolution)、归一化(Normalization)、激活函数(Activation)等。开发者可以通过模板参数化定制算子行为,无需从零编写底层代码。CATLASS充分利用了达芬奇架构的3D Cube矩阵计算单元,在FP16/BF16/INT8等不同精度下均能实现接近硬件理论峰值的高性能计算。

1500+算子库

华为CANN预置了超过1500个经过深度优化的AI算子,覆盖了当前主流AI模型的全部计算需求。算子库包括:基础数学算子(加减乘除、指数对数、三角函数等)、矩阵计算算子(GEMM、Batched GEMM、Attention计算等)、神经网络算子(卷积、池化、归一化、Dropout、Softmax等)、图像处理算子(JPEG编解码、缩放裁剪、颜色空间转换等)、语音处理算子(FFT、MFCC等)。所有算子均经过华为专业团队的深度优化,在昇腾芯片上实现了接近理论峰值的性能。

AscendNPU IR

AscendNPU IR(Intermediate Representation)是CANN的中间表示层,类似于LLVM IR或MLIR。它提供了一个统一的、与硬件无关的中间表示格式,用于表示AI计算图。AI框架生成的模型通过框架适配层转换为AscendNPU IR,然后由CANN的图编译器(GE)进行图优化、算子融合、内存优化等编译优化,最后生成昇腾NPU上可执行的二进制代码。AscendNPU IR支持自动微分、自动混合精度、量化感知训练等高级编译优化特性。

集合通信库(HCCL)

华为集合通信库(Huawei Collective Communication Library,HCCL)是昇腾平台的高性能分布式通信库,对标NVIDIA NCCL。HCCL提供了AllReduce、AllGather、ReduceScatter、Broadcast等标准集合通信操作,针对昇腾芯片间的HCCS高速互联协议进行了深度优化,同时支持100Gb RDMA RoCE v2网络。HCCL在千卡到万卡规模的分布式训练场景下可实现接近线性的加速比,是支撑Atlas 900 SuperCluster大规模集群训练的关键技术组件。

🆚 业界主流方案对标

华为模块对标方案方案简介对标方案官网
CANN整体平台CUDA(NVIDIA)NVIDIA CUDA是GPU计算的事实标准,提供完整的GPU编程体系,涵盖CUDA C/C++、cuBLAS、cuFFT、cuDNN等库developer.nvidia.com/cuda
1500+算子库 / CATLASScuDNN(NVIDIA)NVIDIA深度神经网络加速库,提供卷积、RNN、BatchNorm等核心算子的高性能GPU实现developer.nvidia.com/cudnn
Ascend C编程语言ROCm(AMD)AMD的GPU计算平台,兼容CUDA编程模型,支持HIP编程框架和ROCm软件栈amd.com/rocm
CANN图编译器 + IRoneAPI(Intel)Intel统一编程平台,支持CPU/GPU/FPGA,提供DPC++编程语言和oneDNN等库intel.com/oneapi
AscendNPU IR / 自动调优Triton编译器(OpenAI)OpenAI推出的GPU编程语言和编译器,支持自动优化CUDA Kernel,降低GPU编程门槛triton-lang.org

📊 关键数据概览

1500+
预置算子
C/C++
Ascend C内核编程
8.0
最新版本
HCCS+RDMA
集群互联

📚 研究与资料

📄 CANN官方主页

📄 CANN开发者社区

📄 CANN开发文档