整体说明

本章提供了单算子API执行涉及的基础核函数接口(即L0接口),包括接口定义、功能描述、参数说明、约束与限制等信息,帮助用户快速自定义NN类算子(简称aclnn)或者对CANN软件包中内置的NN类算子进行定制化修改,以支撑各种各样的AI业务。

  • Level0接口:简称L0,表示基础Kernel的API,这些API直接调用亲和芯片的Kernel。
  • Level2接口:简称L2,表示更高一层的API(也称为host API),可以调用多个L0接口实现更灵活的功能,同时对标框架的API功能,便于框架适配和脚本迁移。

框架能力接口的头文件一般在${INSTALL_DIR}/include目录下,如表1所示,${INSTALL_DIR}请替换为CANN软件安装后文件存储路径。例如,若安装的Ascend-cann-toolkit软件包,则安装后文件存储路径为:$HOME/Ascend/ascend-toolkit/latest。

表1 接口列表

接口名

接口所属头文件

Cast

aclnn_kernels/cast.h

Contiguous

aclnn_kernels/contiguous.h

ViewCopy

Pad

aclnn_kernels/pad.h

Reshape

aclnn_kernels/reshape.h

Slice

aclnn_kernels/slice.h

Transpose

aclnn_kernels/transpose.h

TransData

aclnn_kernels/transdata.h

TransDataSpecial

ReFormat

IsNullptr

aclnn_kernels/common/op_error_check.h