自定义算子静态库
概述
本样例以AddCustom为例,展示如何编译、打包并链接自定义算子静态库,通过aclnn的方式执行算子。
支持的产品
本样例支持如下产品型号:
- Ascend 950PR/Ascend 950DT
- Atlas A3 训练系列产品/Atlas A3 推理系列产品
- Atlas A2 训练系列产品/Atlas A2 推理系列产品
目录结构介绍
├── static_aclnn_invocation
│ ├── app // 链接静态库并执行算子
│ │ ├── CMakeLists.txt
│ │ └── main.cpp
│ ├── op // 编译打包生成自定义算子静态库
│ │ ├── add_custom_host.cpp
│ │ ├── add_custom_kernel.cpp
│ │ ├── add_custom_tiling.h
│ │ └── CMakeLists.txt
│ └── CMakeLists.txt
代码实现介绍
本样例中op目录负责编译打包生成自定义算子静态库,生成的静态库路径为./build/customize-install/lib/libcustomize.a;app目录通过find_package(customize)引入静态库,编译main.cpp生成execute_add_op,调用aclnnAddCustom并校验结果。
AddCustom算子介绍等内容可参考算子描述。
编译运行
-
配置环境变量
请根据当前环境上CANN开发套件包的安装方式,选择对应配置环境变量的命令。需确保
ASCEND_HOME_PATH指向CANN安装根路径,以便头文件与库路径生效。-
默认路径,root用户安装CANN软件包
source /usr/local/Ascend/cann/set_env.sh -
默认路径,非root用户安装CANN软件包
source $HOME/Ascend/cann/set_env.sh -
指定路径install_path,安装CANN软件包
source ${install_path}/cann/set_env.sh
-
-
样例执行
在本样例根目录下执行如下步骤,运行该样例。
mkdir -p build; cd build cmake .. && make -j ./execute_add_op执行结果如下,说明执行成功。
test pass