简介
概述
CANN(Compute Architecture for Neural Networks)提供了一系列丰富且经过深度优化、硬件亲和的高性能算子,可直接应用于AI业务,为网络在AI处理器上的加速计算奠定了基础。
算子库在CANN架构中的位置如图1所示,主要包含如下算子库:
- Math库:数值计算类算子库,提供不同维度的数值处理与计算算子,例如Add、Abs等,覆盖张量形态变换、基础数学运算、随机数生成等场景。
- NN库:神经网络类算子(Neural Network),提供深度学习模型中常见的计算算子,例如卷积、矩阵乘、激活函数、归一化等。
- CV库:计算机视觉类算子(Computer Vision),提供图像处理和目标检测算子,例如GridSample等。
- Transformer库:大模型计算类算子,提供Transformer核心算子,例如Attention类、LayerNorm类、通算融合类(简称MC2)等。
- Opbase库:所有算子库依赖的基础框架库,提供基础调度能力(如aclTensor创建/释放、workspace复用等)和公共依赖能力。
算子包括Device侧Kernel实现和Host侧调用两部分,为方便调用,每个算子都提供了相应的C语言API,方便用户在Host侧调用,简称单算子API(或者算子Host API),API调用流程如图2所示,更详细的流程请参见《应用开发 (C&C++)》中“CANN内置算子调用”。
本手册主要介绍算子IR(Intermediate Representation)规格信息、算子API文档,同时介绍不同AI深度学习框架(如TensorFlow、Caffe等)下IR定义的算子规格信息,支持开发者自行构建所需的网络模型。
使用说明
- 对于各类算子接口或算子规格中未声明支持的场景(如产品型号、数据类型、数据格式、数据维度等),不推荐开发者使用,当前版本不保证算子调用效果。
- 算子包说明:调用算子前,请确保已完成CANN Toolkit软件包、ops算子包安装,具体操作请参见《CANN 软件安装》。
- 算子故障处理:调用算子过程中可能会遇到各类异常,请参考“故障案例集 > 算子执行问题”,文档列举了典型/高频的算子执行问题,辅助开发者进行问题定位和解决。
- 昇腾虚拟化实例:当前融合算子不支持该功能。融合算子是指由多个独立基础“小算子”(如向量Vector、矩阵Cube等)融合而成,其功能与多个小算子等效,而性能通常更优,例如Flash Attention、通算融合算子(简称MC2算子)等。
使用向导
首次阅读本手册时,请先熟悉下表,它将帮助您快速了解算子库的使用场景、算子分类及头文件等信息。
头文件/库文件说明:如需调用算子API,请include依赖的文件,一般头文件默认在“${INSTALL_DIR}/include/”目录,库文件默认在“${INSTALL_DIR}/lib64/”目录,${INSTALL_DIR}请替换为CANN软件安装后文件存储路径。以root用户安装为例,安装后文件默认存储路径为:/usr/local/Ascend/cann。
|
使用场景 |
操作指引 |
说明 |
依赖的头文件或库文件 |
|---|---|---|---|
|
1. 算子库使用前要了解哪些基础知识 |
算子库相关的基本概念、术语、关键技术等介绍,辅助用户更好理解算子介绍文档。 |
- |
|
|
2. 算子库API调用时依赖哪些公共接口 |
调用算子接口时依赖的公共Meta接口,如创建aclTensor、aclScalar、aclIntArray等。 |
|
|
|
3. 算子接口有哪些分类(aclnn) |
数学计算类算子库,提供Add、Abs等算子。 |
说明:
|
|
|
Neural Network,即神经网络类算子库,提供Matmul等算子。 目前该类算子API在整个算子库中占最大比重。 |
|||
|
Computer Vision,即计算机视觉类算子库,提供GridSample等算子。 |
|||
|
大模型计算类算子库,提供FlashAttention、MC2(通算融合)、MoE(Mixture of Experts)等算子。 |
|||
|
4. 算子库中基于Ascend IR定义的算子信息 |
罗列了基于Ascend IR定义的算子信息。 |
- |
|
|
5. AI框架原生IR定义的算子信息 |
罗列了主流AI框架原生IR定义的算子信息(如TensorFlow、Caffe等)。 |
- |
|
|
6. 算子库相关资源 |
提供开发内置算子aclnn API依赖的框架接口、L0层接口,还提供算子性能提升方法等。 |
- |

