下载
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
昇腾小AI

接口简介

概述

为加速模型算力释放,CANN(Compute Architecture for Neural Networks)提供了算子加速库(Ascend Operator Library,简称AOL)。该库提供了一系列丰富且深度优化过的高性能算子API,更亲和昇腾AI处理器,调用流程如图1所示。开发者可直接调用算子库API使能模型创新与应用,以进一步提升开发效率和获取极致模型性能。

图1 API调用流程

接口说明

本文档针对不同领域的算子API阐述了具体的接口定义、功能描述、参数说明、约束限制和调用示例等,指导开发者快速上手调用算子API。此外,还提供不同框架IR(Intermediate Representation)定义的算子规格信息,方便开发者自行构建网络模型。

  • 各类算子接口或算子规格/清单支持的产品型号具体参见表2
  • 对于各类算子接口或算子规格/清单中未审明支持的场景(如产品型号、数据类型、数据格式、数据维度等),不推荐开发者使用,当前版本不保证其调用效果。
  • 调用算子接口过程中可能会遇到各类异常,可以参考故障处理中“故障案例集 > 算子执行问题”,该章提供了典型/高频的算子执行问题,辅助开发者进行问题定位和解决。
表1 AOL接口列表

接口分类

说明

备注

基础接口

NN算子和融合算子API依赖的公共Meta接口,如创建aclTensor、aclScalar、aclIntArray等。

-

NN算子接口

Neural Network算子是CANN基础算子,覆盖TensorFlow、Pytorch、MindSpore、ONNX等框架中深度学习算法相关的计算类型,包括Softmax、MatMul、Convolution等典型计算。

目前该类算子API在整个算子库中占最大比重。

本质是一套基于C语言的API无需提供额外的IR定义。该调用方式被称为单算子API执行调用,详细介绍参见AscendCL应用软件开发指南 (C&C++)中“单算子调用”章节。

  • 调用NN、融合算子接口时,会直接调用算子二进制包(Ascend-cann-kernels)中已经编译好的算子,无需再编译算子。算子二进制包的安装请参见CANN软件安装指南
  • 调用DVPP算子接口时,无需再编译算子

融合算子接口

融合类算子接口前缀为aclnnXxx,提供了Flash Attention、MC2等高性能融合算子。

该类算子本质是将多个独立的基础“小算子”(如向量Vector、矩阵Cube等)融合成一个“大算子”,达到提升算子性能或内存收益的目的。

说明:

除了本文档提供的融合算子,您还可以单击Link访问Gitee cann-ops-adv仓获取代码开放的融合算子。

当前融合算子不支持使用昇腾虚拟化实例。

DVPP算子接口

Digital Vision Pre-Processing算子是CANN基础算子,接口前缀为acldvppXxx,提供高性能视频/图片编解码、图像裁剪缩放等预处理API。

CANN算子规格说明

罗列了基于Ascend IR定义的算子信息。

-

AI框架算子支持清单

罗列了基于原生框架IR定义的算子信息(如TensorFlow、Caffe等)。

-

表2 产品支持度表

产品型号

NN算子接口

融合算子接口

DVPP算子接口

CANN算子规格说明

TensorFlow算子清单

Caffe算子清单

ONNX算子清单

Atlas 200/300/500 推理产品

x

x

x

Atlas 200/500 A2推理产品

√(部分支持)

x

x

Atlas 训练系列产品

√(部分支持)

x

x

Atlas A2训练系列产品/Atlas 800I A2推理产品

x

Atlas 推理系列产品

√(部分支持)

√(部分支持)

x

搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词