本章提供了单算子API执行的框架基础接口,包括接口定义、功能描述等信息,帮助用户快速自定义NN类算子(简称aclnn)或者对CANN软件包中内置的NN类算子进行定制化修改,以支撑各种各样的AI业务。
框架能力接口的头文件一般在${INSTALL_DIR}/include目录下,如表1所示,${INSTALL_DIR}请替换为CANN软件安装后文件存储路径。例如,若安装的Ascend-cann-toolkit软件包,则安装后文件存储路径为:$HOME/Ascend/ascend-toolkit/latest。
头文件路径 |
头文件介绍 |
头文件内容说明 |
---|---|---|
aclnn/opdev/bfloat16.h |
详细介绍了bfloat16数据类型在CPU侧的实现类。 |
参见bfloat16 |
aclnn/opdev/common_type.h |
详细介绍了aclTensor、aclScalar等基础的aclnn数据结构 |
|
aclnn/opdev/data_type_utils.h |
提供了DataType相关的基础接口,例如获取指定DataType的size等。 |
|
aclnn/opdev/fast_vector.h |
详细介绍了FastVector数据类型,该类型为aclnn中实现的高效vector数据结构。 |
预留头文件,开发者无需关注。 |
aclnn/opdev/format_utils.h |
提供了Format相关的基础接口。 |
|
aclnn/opdev/fp16_t.h |
详细介绍了float16数据类型在CPU侧的实现类。 |
参见fp16_t |
aclnn/opdev/framework_op.h |
详细介绍了框架对外提供的从host侧到device侧拷贝能力。 |
|
aclnn/opdev/make_op_executor.h |
对外提供初始化aclOpExecutor的宏声明。 |
预留头文件,开发者无需关注。 |
aclnn/opdev/object.h |
详细介绍了aclnn中aclTensor等基础数据结构的基类Object类,用于重载实现new、delete方法。 |
参见object |
aclnn/opdev/op_arg_def.h |
详细介绍了OpArgContext类,并对外提供OP_INPUT等宏声明。 |
|
aclnn/opdev/op_cache.h |
详细介绍了OpExecCache及相关类,用于完成aclnn缓存,提升运行性能。 |
参见op_cache |
aclnn/opdev/op_cache_container.h |
详细介绍了带LRU淘汰机制的aclnn缓存容器。 |
|
aclnn/opdev/op_def.h |
定义基础枚举及常量,例如精度模式OpImplMode等。 |
参见op_def |
aclnn/opdev/op_dfx.h |
详细介绍了DfxGuard类,用于接口打印及上报profiling。 |
参见op_dfx |
aclnn/opdev/op_errno.h |
定义了aclnn错误码。 |
参见昇腾官网"应用开发接口 > AcendCL API(C&C++)> 单算子执行 > 单算子API执行 > NN类算子接口 > aclnn返回码"。 |
aclnn/opdev/op_executor.h |
详细介绍了aclOpExecutor类。 |
|
aclnn/opdev/op_log.h |
定义aclnn中日志打印宏。 |
参见op_log |
aclnn/opdev/platform.h |
详细介绍了PlatformInfo类,用于存放SOC平台信息。 |
参见platform |
aclnn/opdev/pool_allocator.h |
详细介绍了PoolAllocator类,用于实现aclnn内部的CPU内存池。 |
|
aclnn/opdev/shape_utils.h |
提供了shape相关的基础操作,例如shape打印等。 |
|
aclnn/opdev/small_vector.h |
详细介绍了SmallVector类,该类为aclnn中实现的高效vector数据结构,主要针对已知数据量较小的场景。 |
|
aclnn/opdev/tensor_view_utils.h |
提供了对于view类的基础操作,例如判断aclTensor是否连续等。 |
|
aclnn/opdev/op_common/data_type_utils.h |
提供了DataType相关的基础接口,例如判断指定DataType是否为整数类型等。 |
|
aclnn/opdev/aicpu/aicpu_args_handler.h |
提供了AI CPU相关的组合计算任务的处理逻辑,例如拼接计算任务相关的参数等。 |
|
aclnn/opdev/aicpu/aicpu_ext_info_handle.h |
提供了AI CPU相关的计算任务拓展参数的处理逻辑,例如拼接解析拓展参数的接口。 |
|
aclnn/opdev/aicpu/aicpu_task.h |
提供了AI CPU任务设置、下发等逻辑,例如设置调用哪个AI CPU算子,设置算子输入、输出等接口。 |
|
aclnn/opdev/aicpu/aicpu_uitls.h |
AI CPU任务需要的一些公共接口。 |