文件最后提交记录最后更新时间
add feature sample4 个月前
Replace blockDim with numBlocks4 个月前
add feature sample4 个月前
add feature sample4 个月前
README.md

自定义算子静态库

概述

本样例以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.aapp目录通过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