更新时间:2021-03-18 GMT+08:00
分享

算子编译

对算子代码进行编译,生成算子的二进制文件及算子描述文件。

  1. 算子编译依赖DDK的版本号,所以编译算子前需要获取当前使用的DDK的版本号。

    “$HOME/tools/che/ddk/ddk/ddk_info”文件中查看DDK版本号。

    图1所示,VERSION字段即为当前DDK版本。

    图1 DDK版本号查看

  2. 执行如下命令设置版本号信息、编译算子。

    1. 在customop_te/operator目录下执行如下命令进入python交互模式。

      python

    2. 在python交互模式下依次执行如下命令设置DDK的版本号。

      from topi.cce import te_set_version

      import subprocess

      te_set_version("1.3.T18.B850")

      执行示例如图2所示。

      图2 设置DDK版本号示例
    3. 执行如下命令编译reduction.py文件,生成算子二进制文件与描述文件。

      subprocess.call("python reduction.py",shell=True)

      图3 编译算子文件
    4. 退出python交互模式。

      quit(0)

  3. 算子编译完成后,会在当前operator目录下生成kernel_meta文件夹,kernel_meta文件夹下为编译生成的算子二进制文件*.o文件(运行目标为AI Core的算子)或者*.so文件(运行目标为AI CPU的算子)及算子描述文件*.json文件。

    • *.o或者*.so是算子的二进制文件。
    • .json文件是对应的算子描述文件,用于定义算子属性及运行时所需要的资源。

      json文件解析如下所示:

      {
      "binFileName":"Reduction",            //生成的算子的二进制文件名称
      "binFileSuffix":".o",             //生成的算子的二进制文件后缀,运行目标为AI CPU时后缀为".so"
      "blockDim":1,                         //计算时用到的AI Core的数量
      "kernelName":"Reduction__kernel0",    //算子的kernel函数名
      "magic":"RT_DEV_BINARY_MAGIC_ELF",    //代表算子运行目标为AI Core,若magic值为RT_DEV_BINARY_MAGIC_ELF_AICPU,代表运行目标是AI CPU
      "sha256":"d5158df2ff2e64743eec7f527ddd9078b99c1d670f5adbd8b789224657ab0f91"  //对.o文件进行加密得到的值
      }

分享:

    相关文档

    相关产品