开发者
资源
[object Object]

本工具主要针对(NPU模式)、编译生成的算子ELF文件(Executable and Linkable Format)提供解析和解压功能,并将结果信息以可读形式呈现,方便开发者直观获得kernel文件信息。

[object Object]
[object Object]

[object Object][object Object]

[object Object][object Object]
  1. 安装msobjdump工具。

    工具跟随CANN软件包发布(参考完成CANN安装),其路径默认为“{INSTALL_DIR}/tools/msobjdump”,其中\{INSTALL\_DIR\}/tools/msobjdump”,其中{INSTALL_DIR}请替换为CANN软件安装后文件存储路径。以root用户安装为例,安装后文件默认存储路径为:/usr/local/Ascend/cann。

  2. 设置环境变量。

    • root用户安装Ascend-cann-toolkit包时

      [object Object]
    • 非root用户安装Ascend-cann-toolkit包时

      [object Object]
  3. 检查工具是否安装成功。

    执行如下命令,若能正常显示--help或-h信息,则表示工具环境正常,功能可正常使用。

    [object Object]
[object Object]
  • 解析ELF文件的命令

    [object Object]

    表 1 参数说明

    [object Object][object Object]

    [object Object]
  • 解压ELF文件的命令

    [object Object]

    表 2 参数说明

    [object Object][object Object]

    [object Object]
  • 获取ELF文件列表的命令

    [object Object]

    表 3 参数说明

    [object Object][object Object]

    [object Object]

表 4 ELF解析字段说明(Kernel直调工程)

[object Object][object Object]

[object Object]

表 5 ELF解析字段说明(标准/简易自定义算子工程)

[object Object][object Object]

[object Object]

表 6 kernel type信息

[object Object][object Object]

[object Object][object Object]

以MatMulInvocationNeo算子为例(NPU模式),假设${cmake_install_dir}为算子Cmake编译产物根目录,目录结构如下(仅为示例,具体以实际算子工程为准),类似

[object Object]

工具对编译生成的库文件(如*.so、*.a等)进行解析和解压,功能实现命令样例如下:

  • 解析包含device信息的库文件

    支持两种打印方式,请按需选取,解析字段含义参见

    • 简单打印

      [object Object]

      执行上述命令,终端打印基础device信息,示例如下:

      [object Object]
    • 全量打印

      [object Object]

      执行上述命令,终端打印所有device信息,示例如下:

      [object Object]
  • 解压包含device信息的库文件并落盘

    [object Object]

    执行上述命令,默认在当前执行路径下落盘ascendxxxb1_ascendc_kernels_npu_0_mix.o文件。

  • 获取包含device信息的库文件列表

    [object Object]

    执行上述命令,终端会打印所有文件,屏显信息形如:

    [object Object]
[object Object]

以下面的算子工程为例(仅为示例,具体以实际算子工程为准),假设${cmake_install_dir}为算子Cmake编译产物根目录,目录结构如下,类似

[object Object]

工具对编译生成的库文件(如*.so、*.a等)进行解析和解压,功能实现命令样例如下:

  • 解析包含device信息的库文件

    支持两种打印方式,请按需选取,解析字段含义参见

    • 简单打印

      [object Object]

      执行上述命令,终端打印基础device信息,示例如下:

      [object Object]
    • 全量打印

      [object Object]

      执行上述命令,终端打印基础device信息,示例如下:

      [object Object]
      [object Object]
  • 解压包含device信息的库文件并落盘

    [object Object]

    执行上述命令,默认在当前执行路径下保存解压文件,产物目录如下:

    [object Object]

    以acos_custom算子编译产物解压为例:

    • 查看算子原型(acos_custom.json)

      [object Object]
    • 解析{op_type}_\{op\_type\}\_{parm_info}.o文件获取.ascend.meta段信息。

      [object Object]

      执行上述命令,终端屏显如下,字段与库文件解析类似,参见

      [object Object]
    • 查看{op_type}_\{op\_type\}\_{parm_info}.json,直观获取device文件中算子信息。

      [object Object]
  • 获取包含device信息的库文件列表

    [object Object]

    执行上述命令,终端会打印所有文件,屏显信息形如:

    [object Object]