开发者
下载

op_common接口列表

针对CANN算子开发或调用场景(无论内置或自定义算子),其开发和调用过程会依赖opbase库(cann/opbase仓)提供的公共能力,包括日志获取、算子Tiling/InferShape开发依赖的接口等。

  • 关键接口分类如下
    • log:算子日志相关接口
    • math:数学计算相关接口
    • platform:平台相关接口
    • infershape:shape相关接口
  • 接口说明
    • 接口定位:提供详细参数说明的接口属于正式接口,支持版本向后兼容;预留接口仅提供原型定义,不提供详细参数介绍,您可以暂不关注。
    • 头文件路径:使用本章接口时请按实际情况include依赖的头文件,头文件路径为${INSTALL_DIR}/include目录,其中${INSTALL_DIR}请替换为CANN软件安装后文件存储路径。以root用户安装为例,安装后文件默认存储路径为:/usr/local/Ascend/cann。
表1 op_common接口列表

分类

接口

说明

所属头文件

log

OP_LOGE

打印算子ERROR级别日志。

op_common/log/log.h

OP_LOGD

打印算子DEBUG级别日志。

OP_LOGI

打印算子INFO级别日志。

OP_LOGW

打印算子WARNING级别日志。

OP_CHECK_IF

当condition条件成立时,输出日志,并执行return表达式。

OP_CHECK_NULL_WITH_CONTEXT

根据传入的context上下文,校验传入的指针是否为nullptr

OP_LOGE_WITH_INVALID_INPUT_SHAPE

记录并上报算子输入形状校验错误,上报EZ0001错误码。

OP_LOGE_WITH_INVALID_ATTR

记录并上报算子属性值校验错误,上报EZ0002错误码。

OP_LOGE_WITH_INVALID_ATTR_SIZE

记录并上报算子属性大小校验错误,上报EZ0003错误码。

OP_LOGE_WITH_INVALID_INPUT

记录并上报算子输入参数为空校验错误,上报EZ0004错误码。

OP_LOGE_WITH_INVALID_INPUT_SHAPESIZE

记录并上报算子输入形状大小校验错误,上报EZ0005错误码。

OP_LOGE_WITH_INVALID_INPUT_FORMAT

记录并上报算子输入格式校验错误,上报EZ0006错误码。

OP_LOGE_WITH_INVALID_INPUT_DTYPE

记录并上报算子输入数据类型校验错误,上报EZ0007错误码。

OP_LOGE_FOR_INVALID_SHAPE

记录并上报参数形状校验错误,上报EZ0008错误码。

OP_LOGE_FOR_INVALID_SHAPE_WITH_REASON

记录并上报参数形状校验错误(带原因),上报EZ0009错误码。

OP_LOGE_FOR_INVALID_SHAPES_WITH_REASON

记录并上报多参数形状校验错误(带原因),上报EZ0010错误码。

OP_LOGE_FOR_INVALID_SHAPEDIM

记录并上报参数形状维度校验错误,上报EZ0011错误码。

OP_LOGE_FOR_INVALID_SHAPEDIM_WITH_REASON

记录并上报参数形状维度校验错误(带原因),上报EZ0012错误码。

OP_LOGE_FOR_INVALID_SHAPEDIMS_WITH_REASON

记录并上报多参数形状维度校验错误(带原因),上报EZ0013错误码。

OP_LOGE_FOR_INVALID_SHAPESIZE

记录并上报参数形状大小校验错误,上报EZ0014错误码。

OP_LOGE_FOR_INVALID_SHAPESIZE_WITH_REASON

记录并上报参数形状大小校验错误(带原因),上报EZ0015错误码。

OP_LOGE_FOR_INVALID_SHAPESIZES_WITH_REASON

记录并上报多参数形状大小校验错误(带原因),上报EZ0016错误码。

OP_LOGE_FOR_INVALID_FORMAT

记录并上报参数格式校验错误,上报EZ0017错误码。

OP_LOGE_FOR_INVALID_FORMATS_WITH_REASON

记录并上报多参数格式校验错误(带原因),上报EZ0018错误码。

OP_LOGE_FOR_INVALID_DTYPE

记录并上报参数数据类型校验错误,上报EZ0019错误码。

OP_LOGE_FOR_INVALID_DTYPE_WITH_REASON

记录并上报参数数据类型校验错误(带原因),上报EZ0020错误码。

OP_LOGE_FOR_INVALID_DTYPES_WITH_REASON

记录并上报多参数数据类型校验错误(带原因),上报EZ0021错误码。

OP_LOGE_FOR_INVALID_TENSORNUM

记录并上报参数张量数量校验错误,上报EZ0022错误码。

OP_LOGE_FOR_INVALID_TENSORNUMS_WITH_REASON

记录并上报多参数张量数量校验错误(带原因),上报EZ0023错误码。

OP_LOGE_FOR_INVALID_VALUE

记录并上报参数值校验错误,上报EZ0024错误码。

OP_LOGE_FOR_INVALID_LISTSIZE

记录并上报参数列表大小校验错误,上报EZ0025错误码。

OP_LOGE_FOR_INVALID_VALUE_WITH_REASON

记录并上报参数值校验错误(带原因),上报EZ0026错误码。

OP_LOGE_FOR_INVALID_VALUES_WITH_REASON

记录并上报多参数值校验错误(带原因),上报EZ0027错误码。

OP_LOGE_FOR_INVALID_STRIDE

记录并上报参数stride校验错误,上报EZ0028错误码。

OP_LOGE_FOR_FILE_PATH

记录并上报文件路径无效错误,上报EZ0029错误码。

OP_LOGE_FOR_FILE_OPEN

记录并上报文件打开失败错误,上报EZ0030错误码。

OP_LOGE_FOR_FILE_PARSE

记录并上报文件解析失败错误,上报EZ0031错误码。

OP_LOGE_FOR_INVALID_CONFIG

记录并上报配置项值无效错误,上报EZ0032错误码。

OP_LOGE_FOR_INVALID_CONFIG_WITH_REASON

记录并上报配置项值无效错误(带原因),上报EZ0033错误码。

OP_LOGE_FOR_INVALID_CONFIGS_WITH_REASON

记录并上报多配置项值无效错误(带原因),上报EZ0034错误码。

OP_LOGE_FOR_INVALID_FORMAT_WITH_REASON

记录并上报参数格式校验错误(带原因),上报EZ0035错误码。

OP_LOGE_FOR_INVALID_GRAPH_NODE

记录并上报图节点无效错误,上报EZ0036错误码。

OP_LOGE_FOR_INVALID_ARGUMENT_WITH_REASON

记录并上报参数无效错误(带原因),上报EZ0037错误码。

OP_LOGE_FOR_INVALID_LISTSIZE_WITH_REASON

记录并上报参数列表大小校验错误(带原因),上报EZ0038错误码。

math

FloorDiv

向下取整的除法

op_common/op_host/util/math_util.h

FloorAlign

以align为单元,向下对齐

CeilDiv

向上取整的除法

CeilAlign

以align为单元,向上对齐

IsFloatEqual

判定两个float/double是否相等

platform

GetAivCoreNum

获取平台AI vector的核数

op_common/op_host/util/platform_util.h

GetAicCoreNum

获取平台AI cube的核数

GetUbSize

获取平台UB(Unified Buffer)空间大小,单位bytes

GetUbBlockSize

获取平台UB(Unified Buffer)的block单元大小,单位bytes

GetVRegSize

获取平台向量寄存器(Vector Register)的大小,单位bytes。

GetSimtMaxThreadNum

获取平台SIMT最大线程数。

GetSimtMaxDCacheSize

获取平台SIMT最大DCache大小,单位bytes。

GetCacheLineSize

获取平台Cache Line的大小,单位bytes。

GetSectorCacheLineSize

获取平台Sector Cache Line的大小,单位bytes。

GetNddmaDcacheSize

获取平台NDDMA DCache的大小,单位bytes。

GetWorkspaceSize

获取平台LibApi Workspace的大小,单位bytes。

infershape

SetUnknownRank

设置输入shape为维度不确定的动态shape。

op_common/op_host/util/shape_util.h

IsUnknownRank

检查输入shape是否为维度不确定的shape。

SetUnknownShape

设置输入shape的维度为rank,且每根轴长度都为不确定值。

IsUnknownShape

检查输入shape的每一根轴长度是否都为不确定值。

InferShape4Broadcast

broadcast类算子的infershape方法。

op_common/op_host/infershape_broadcast_util.h

BroadcastShape

根据输入张量的shape推导broadcast后的输出shape。

InferShape4Elewise

elewise类算子的infershape方法。

op_common/op_host/infershape_elewise_util.h

InferShape4Reduce

reduce类算子的infershape方法。

op_common/op_host/infershape_reduce_util.h

预留接口

-

预留接口,暂无需关注。

  • op_common/op_host/*.h
  • op_common/op_kernel/*.h