开发者
下载
[object Object]

基于C++ extensions方式,通过torch_npu来调用单算子API的适配开发过程,其中前反向绑定通过Python类的[object Object][object Object]注册实现。

[object Object][object Object]

在开始之前,请确保您已完成以下环境的安装。

  1. 请参考《CANN 软件安装》,安装NPU驱动固件和CANN软件(Toolkit、ops和NNAL)。[object Object]
  2. 请参考《》完成PyTorch框架的安装。
[object Object]
[object Object]
[object Object]
  1. 在算子适配层C++代码目录(csrc)中的[object Object]完成C++侧算子代码适配、注册自定义算子schema及绑定具体实现。PyTorch提供TORCH_LIBRARY宏来定义新的命名空间,并在该命名空间里注册schema。注意命名空间的名字必须是唯一的。具体示例如下:

    [object Object]
    [object Object]
  2. [object Object]目录下的[object Object][object Object]文件中,添加ops调用及读取so文件,具体示例如下:

    [object Object]
  3. 在测试脚本[object Object]中实现前反向绑定,可通过Python中的[object Object][object Object]定义算子的前向计算与反向梯度计算逻辑。具体示例如下:

    [object Object]
[object Object]

完成了算子适配开发后,即可通过C++ extensions的方式调用自定义算子。

  1. 完成自定义算子工程创建、算子开发及编译部署流程,具体可参考《CANN Ascend C算子开发指南》。

    [object Object]
  2. 下载示例代码。

    [object Object]
  3. 完成算子适配,具体可参考

  4. 执行如下命令,完成编译、安装、测试。

    [object Object]

    得到结果如下即为执行成功。

    [object Object]