---
title: 简介
description: "- 本算子库提供的算子均为CANN内置算子，您可以直接调用；如需自定义算子，请参考《Ascend C算子开发(https://www.hiascend.com/document/detail/zh/canncommercial/900/programug/Ascendcopdevg/atlas_ascendc_map_10_0002.html)》完成算子开发。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/API/aolapi
sourcePath: /source/zh/canncommercial/900/API/aolapi/operatorlist_00001.html
indexId: 71e70e90f36d4dbfc0d94ea34fb739032521bc66cc3c7f8e546d14c561cda87e64
---
# 简介

#### 概述

- 本算子库提供的算子均为CANN内置算子，您可以直接调用；如需自定义算子，请参考《Ascend C算子开发(https://www.hiascend.com/document/detail/zh/canncommercial/900/programug/Ascendcopdevg/atlas_ascendc_map_10_0002.html)》完成算子开发。
- 本算子库中算子源码已在  Gitcode CANN开源项目(https://gitcode.com/cann)
开放，您可以进一步了解社区生态或贡献算子。


CANN(https://www.hiascend.com/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复用等）和公共依赖能力。

图1 算子库架构图

算子包括Device侧Kernel实现和Host侧调用两部分，为方便调用，每个算子都提供了相应的C语言API，方便用户在Host侧调用，简称单算子API（或者算子Host API），API调用流程如图2所示，更详细的流程请参见《应用开发 (C&C++)(https://www.hiascend.com/document/detail/zh/canncommercial/900/programug/acldevg/aclcppdevg_000006.html)》中“CANN内置算子调用(https://www.hiascend.comdocument/detail/zh/canncommercial/900/programug/acldevg/aclcppdevg_000531.html)”。

图2 算子API调用流程

本手册主要介绍算子IR（Intermediate Representation）规格信息、算子API文档，同时介绍了不同AI深度学习框架（如TensorFlow、Caffe等）下IR定义的算子规格信息，支持开发者自行构建所需的网络模型。


#### 使用说明

- 对于各类算子接口或算子规格中未声明支持的场景（如产品型号、数据类型、数据格式、数据维度等），不推荐开发者使用，当前版本不保证算子调用效果。
- 算子包说明：调用算子前，请确保已完成CANN Toolkit软件包、ops算子包安装，具体操作请参见《CANN 软件安装(https://www.hiascend.com/document/detail/zh/canncommercial/900/softwareinst/instg/instg_0000.html)》。
- 昇腾虚拟化实例：当前融合算子不支持该功能。融合算子是指由多个独立基础“小算子”（如向量Vector、矩阵Cube等）融合而成，其功能与多个小算子等效，而性能通常更优，例如Flash Attention、通算融合算子（简称MC2算子）等。


#### 使用向导

首次阅读本手册时，请先熟悉表1，它将帮助您快速了解算子库的使用场景、算子分类及头文件等信息。

头文件/库文件说明：如需调用算子API，请include依赖的文件，一般头文件默认在“${INSTALL_DIR}/include/”目录，库文件默认在“${INSTALL_DIR}/lib64/”目录，${INSTALL_DIR}请替换为CANN软件安装后文件存储路径。以root用户安装为例，安装后文件默认存储路径为：/usr/local/Ascend/cann。


**表1 使用向导**

| 使用场景 | 操作指引 | 说明 | 依赖的头文件或库文件 |
| --- | --- | --- | --- |
| 1. 算子库使用前要了解哪些基础知识 | 基本概念(https://www.hiascend.com/document/detail/zh/canncommercial/900/API/aolapi/context/common/两段式接口.md) | 算子库相关的基本概念、术语、关键技术等介绍，辅助用户更好理解算子介绍文档。 | \- |
| 2. 算子库API调用时依赖哪些公共接口 | 公共接口 | 调用算子接口时依赖的公共Meta接口，如创建aclTensor、aclScalar、aclIntArray等。 | 头文件：aclnn/acl\_meta.h、aclnn/aclnn\_base.h（仅包含aclnnInit和aclnnFinalize） 库文件：libnnopbase.so |
| 3. 算子接口有哪些分类（aclnn） | Math类接口(https://www.hiascend.com/document/detail/zh/canncommercial/900/API/aolapi/context/ops\-math/op\_api\_list.md) | 数学计算类算子库，提供Add、Abs等算子。 | 头文件：引用每类总头文件后无需引用单API头文件 每类API依赖的总头文件（推荐）：aclnnop/aclnn\_ops\_math.h、aclnnop/aclnn\_ops\_nn.h、aclnnop/aclnn\_ops\_cv.h、aclnnop/aclnn\_ops\_transformer.h 每个API依赖的头文件：aclnnop/aclnn\_\*.h（\*表示具体算子名） 动态库： aclnn API依赖的总库文件：libopapi.so（废弃） 每类API依赖的库文件：libopapi\_math.so、libopapi\_nn.so、libopapi\_cv.so、libopapi\_transformer.so 说明： 从CANN 8.5.0版本开始，libaclnn\_ops\_infer、libaclnn\_ops\_train、libaclnn\_math、libaclnn\_rand静态库（\*.a）和动态库(\*.so)废弃，请使用libopapi\_\*.so库文件替代。 从CANN 9.0.0版本开始，整库文件libopapi.so废弃，请使用libopapi\_\*.so子库文件以提升算子编译效率。 从CANN 7.0.0版本开始，算子头文件路径aclnnop/level2/aclnn\_\*.h废弃，请使用新头文件路径aclnnop/aclnn\_\*.h替代。 |
| 3. 算子接口有哪些分类（aclnn） | NN类接口(https://www.hiascend.com/document/detail/zh/canncommercial/900/API/aolapi/context/ops\-nn/op\_api\_list.md) | Neural Network，即神经网络类算子库，提供Matmul等算子。 目前该类算子API在整个算子库中占最大比重。 | 头文件：引用每类总头文件后无需引用单API头文件 每类API依赖的总头文件（推荐）：aclnnop/aclnn\_ops\_math.h、aclnnop/aclnn\_ops\_nn.h、aclnnop/aclnn\_ops\_cv.h、aclnnop/aclnn\_ops\_transformer.h 每个API依赖的头文件：aclnnop/aclnn\_\*.h（\*表示具体算子名） 动态库： aclnn API依赖的总库文件：libopapi.so（废弃） 每类API依赖的库文件：libopapi\_math.so、libopapi\_nn.so、libopapi\_cv.so、libopapi\_transformer.so 说明： 从CANN 8.5.0版本开始，libaclnn\_ops\_infer、libaclnn\_ops\_train、libaclnn\_math、libaclnn\_rand静态库（\*.a）和动态库(\*.so)废弃，请使用libopapi\_\*.so库文件替代。 从CANN 9.0.0版本开始，整库文件libopapi.so废弃，请使用libopapi\_\*.so子库文件以提升算子编译效率。 从CANN 7.0.0版本开始，算子头文件路径aclnnop/level2/aclnn\_\*.h废弃，请使用新头文件路径aclnnop/aclnn\_\*.h替代。 |
| 3. 算子接口有哪些分类（aclnn） | CV类接口(https://www.hiascend.com/document/detail/zh/canncommercial/900/API/aolapi/context/ops\-cv/op\_api\_list.md) | Computer Vision，即计算机视觉类算子库，提供GridSample等算子。 | 头文件：引用每类总头文件后无需引用单API头文件 每类API依赖的总头文件（推荐）：aclnnop/aclnn\_ops\_math.h、aclnnop/aclnn\_ops\_nn.h、aclnnop/aclnn\_ops\_cv.h、aclnnop/aclnn\_ops\_transformer.h 每个API依赖的头文件：aclnnop/aclnn\_\*.h（\*表示具体算子名） 动态库： aclnn API依赖的总库文件：libopapi.so（废弃） 每类API依赖的库文件：libopapi\_math.so、libopapi\_nn.so、libopapi\_cv.so、libopapi\_transformer.so 说明： 从CANN 8.5.0版本开始，libaclnn\_ops\_infer、libaclnn\_ops\_train、libaclnn\_math、libaclnn\_rand静态库（\*.a）和动态库(\*.so)废弃，请使用libopapi\_\*.so库文件替代。 从CANN 9.0.0版本开始，整库文件libopapi.so废弃，请使用libopapi\_\*.so子库文件以提升算子编译效率。 从CANN 7.0.0版本开始，算子头文件路径aclnnop/level2/aclnn\_\*.h废弃，请使用新头文件路径aclnnop/aclnn\_\*.h替代。 |
| 3. 算子接口有哪些分类（aclnn） | Transformer类接口(https://www.hiascend.com/document/detail/zh/canncommercial/900/API/aolapi/context/ops\-transformer/op\_api\_list.md) | 大模型计算类算子库，提供FlashAttention、MC2（通算融合）、MoE（Mixture of Experts）等算子。 | 头文件：引用每类总头文件后无需引用单API头文件 每类API依赖的总头文件（推荐）：aclnnop/aclnn\_ops\_math.h、aclnnop/aclnn\_ops\_nn.h、aclnnop/aclnn\_ops\_cv.h、aclnnop/aclnn\_ops\_transformer.h 每个API依赖的头文件：aclnnop/aclnn\_\*.h（\*表示具体算子名） 动态库： aclnn API依赖的总库文件：libopapi.so（废弃） 每类API依赖的库文件：libopapi\_math.so、libopapi\_nn.so、libopapi\_cv.so、libopapi\_transformer.so 说明： 从CANN 8.5.0版本开始，libaclnn\_ops\_infer、libaclnn\_ops\_train、libaclnn\_math、libaclnn\_rand静态库（\*.a）和动态库(\*.so)废弃，请使用libopapi\_\*.so库文件替代。 从CANN 9.0.0版本开始，整库文件libopapi.so废弃，请使用libopapi\_\*.so子库文件以提升算子编译效率。 从CANN 7.0.0版本开始，算子头文件路径aclnnop/level2/aclnn\_\*.h废弃，请使用新头文件路径aclnnop/aclnn\_\*.h替代。 |
| 5. 算子库中基于Ascend IR定义的算子信息 | Ascend IR算子规格说明 | 罗列了基于Ascend IR定义的算子信息。 | \- |
| 6. AI框架原生IR定义的算子信息 | AI框架算子支持清单 | 罗列了主流AI框架原生IR定义的算子信息（如TensorFlow、Caffe等）。 | \- |
| 7. 算子库相关资源 | 附录 | 提供内置算子aclnn API依赖的框架接口、L0层接口 提供算子性能提升专题 算子相关AFQ | \- |
