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

自定义算子工程+aclnn单算子API调用样例(Tiling模板编程)

概述

本样例基于示例自定义算子工程,使用Tiling模板编程进行单算子API方式的算子执行,以有效减少多TilingKey的复杂度。

支持的产品

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

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

目录结构介绍

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

代码实现介绍

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

Tiling模板编程能够有效减少因为TilingKey数量众多,导致的难以记忆和理解的问题,提升算子编程易用性。它具有C++同等的泛型编程、零成本抽象、编译期计算等特征。具体可参考Ascend C算子开发中“编程指南”-“附录”-“工程化算子开发”-“Host侧Tiling实现”-“Tiling模板编程”相关章节。

编译运行

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

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

  • 配置环境变量

    请根据当前环境上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
      
  • 样例执行

    在本样例根目录下执行如下步骤,最后使用形如./execute_add_template_op [float|float16] [128|2048]运行该样例。

    mkdir -p build; cd build
    cmake .. && make -j
    ./execute_add_template_op float16 128
    ./execute_add_template_op float16 2048
    ./execute_add_template_op float 128
    ./execute_add_template_op float 2048
    

    执行结果如下,说明执行成功。

    test pass