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

自定义算子tiling下沉图模式调用样例

概述

本样例基于示例自定义算子工程,介绍了PyTorch图模式下调用自定义算子,并通过使能Tiling下沉到device侧执行,优化调度性能。

支持的产品

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

  • Atlas A3 训练系列产品/Atlas A3 推理系列产品
  • Atlas A2 训练系列产品/Atlas A2 推理系列产品

目录结构介绍

├── tiling_sink_programming
│   └── test_add_custom_tiling_sink.py

代码实现介绍

样例脚本test_add_custom_tiling_sink.py包含三个关键部分:

  1. 在PyTorch中注册自定义算子,并为Meta/CPU/PrivateUse1提供占位实现,保证可入图。
  2. 注册FX到GE的转换器,将add_custom_tiling_sink映射为GE侧自定义算子AddCustomTilingSink
  3. 通过torch.compile启用图模式执行,并打开tiling_schedule_optimize配置。

编译运行

  • 安装PyTorch以及Ascend Extension for PyTorch插件

    请参考pytorch: Ascend Extension for PyTorch开源代码仓或Ascend Extension for PyTorch昇腾社区的安装说明,选取支持的Python版本配套发行版,完成torchtorch-npu的安装。

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

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

  • 安装前置依赖

    pip3 install expecttest
    
  • 配置环境变量

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

    在本样例根目录下执行如下步骤,运行该样例。

    python3 test_add_custom_tiling_sink.py
    

    执行结果如下,说明精度对比成功。

    Ran 1 test in **s.
    OK