Appearance
核心概念
理解 CANN,几个高频概念绕不开。本页做一个最小化的梳理。
1. 算子(Operator)
算子是深度学习计算的基本单元,例如卷积(Conv)、矩阵乘(MatMul)、激活(ReLU)等。
- 框架里的每个运算,最终都要落到一个个算子上执行。
- CANN 的 算子库(AOL) 为昇腾硬件提供了这些算子的高性能实现,运行在达芬奇 AI Core 上。
- 当框架用到库中没有的算子时,可通过自定义算子开发补齐(进阶内容)。
2. AscendCL(ACL)
AscendCL(Ascend Computing Language) 是 CANN 面向开发者的统一编程接口(C/C++/Python)。
- 提供设备管理、内存管理、模型加载、算子执行等能力。
- PyTorch(torch_npu)、MindIE 等上层组件,底层都通过 AscendCL 与 NPU 交互。
- 对绝大多数平台用户而言,无需直接编写 AscendCL 代码——它由框架在底层调用。
3. 计算图与图引擎(GE)
- 计算图:把模型的运算组织成一张有向图,描述数据如何在算子间流动。
- 图引擎(GE,Graph Engine):负责对计算图进行编译与优化(如算子融合),再交给 Runtime 调度执行,从而提升性能。
4. 集合通信(HCCL)
HCCL(Huawei Collective Communication Library) 是昇腾的集合通信库,提供 AllReduce、Broadcast 等原语。
- 在 Atlas 800(9010) 这类多 NPU 服务器上,多卡并行训练的梯度同步正是由 HCCL 完成。
- 类比 NVIDIA 生态中的 NCCL。
小结
算子是计算的最小单元,AscendCL 是统一接口,GE 负责图编译优化,HCCL 负责多卡通信——它们共同构成了 CANN「硬件使能」的能力。
