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

自定义算子工程+aclnn单算子API调用样例

概述

本样例基于示例自定义算子工程,介绍了aclnnOpType单算子API的方式执行固定shape算子。

支持的产品

本样例支持如下产品型号:

  • Ascend 950PR/Ascend 950DT
  • Atlas A3 训练系列产品/Atlas A3 推理系列产品
  • Atlas A2 训练系列产品/Atlas A2 推理系列产品
  • Atlas 200I/500 A2 推理产品
  • Atlas 推理系列产品

目录结构介绍

├── aclnn_invocation
│   ├── CMakeLists.txt
│   └── main.cpp

代码实现介绍

完成自定义算子的开发部署后,可以通过单算子API调用的方式来验证单算子的功能。具体可参考单算子API调用章节以及单算子调用中“单算子API执行”相关章节。

单算子API执行是基于C语言的API执行算子,无需提供单算子描述文件进行离线模型的转换,可直接调用单算子API接口。

本样例中通过aclnnAddCustomGetWorkspaceSizeaclnnAddCustom两段式接口执行算子计算,核心流程如下:

  1. 创建输入/输出aclTensor并准备Device侧数据。
  2. 调用aclnnAddCustomGetWorkspaceSize获取本次计算所需workspace大小,并申请对应Device内存。
  3. 调用aclnnAddCustom执行计算,同步流aclrtSynchronizeStream,并将结果拷回Host侧进行验证。

编译运行

  • 编译、打包和部署自定义算子工程

    运行此样例前,请参考自定义算子工程样例完成前期准备。

  • 配置环境变量

    请根据当前环境上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