本工具主要针对工程编译生成的算子ELF文件(Executable and Linkable Format)提供解析和解压功能,并将结果信息以可读形式呈现,方便开发者直观获得kernel文件信息。当前支持解析融合编译工程、标准/简易自定义算子工程,以及Kernel直调工程生成的相关产物。
[object Object]
[object Object][object Object]
安装msobjdump工具。
工具跟随CANN软件包发布(参考完成CANN安装),其路径默认为“${INSTALL_DIR}/tools/msobjdump”,其中${INSTALL_DIR}请替换为CANN软件安装后文件存储路径。以root用户安装为例,安装后文件默认存储路径为:/usr/local/Ascend/cann。
设置环境变量。
root用户安装Ascend-cann-toolkit包时
[object Object]非root用户安装Ascend-cann-toolkit包时
[object Object]
检查工具是否安装成功。
执行如下命令,若能正常显示--help或-h信息,则表示工具环境正常,功能可正常使用。
[object Object]
解析ELF文件的命令
[object Object]表 1 参数说明[object Object][object Object]
[object Object]undefined
解压ELF文件的命令
[object Object]表 2 参数说明[object Object][object Object]
[object Object]undefined
获取ELF文件列表的命令
[object Object]表 3 参数说明
[object Object][object Object]
[object Object]undefined
表 4 ELF解析字段说明(标准/简易自定义算子工程及融合编译工程)[object Object][object Object]
表 5 kernel type信息
[object Object][object Object]
表 6 ELF解析字段说明(Kernel直调工程)
[object Object][object Object]
以融合编译工程生成的可执行文件为例,假设[object Object]为工程构建目录,编译生成的可执行文件名为[object Object]。对于该类产物,工具会基于可执行文件中的device相关信息进行解析,其中[object Object]用于展示binary meta与function meta信息,[object Object]用于查看可提取的device文件名,[object Object]用于将解析出的device文件落盘。调用样例可参考。
解析融合编译工程产物
简单打印
[object Object]执行上述命令,终端打印基础device信息,示例如下:
[object Object]全量打印
[object Object]执行上述命令,除基础device信息外,还会打印提取出的device文件对应的ELF详细信息,示例如下:
[object Object]
获取融合编译工程产物中的device文件列表
[object Object]执行上述命令,终端会打印可提取的device文件名,屏显信息形如:
[object Object]解压融合编译工程产物中的device文件并落盘
[object Object]执行上述命令,默认在当前执行路径下落盘
[object Object]文件。若需要指定输出路径,可配合[object Object]使用。
以下面的算子工程为例(仅为示例,具体以实际算子工程为准),假设${cmake_install_dir}为算子Cmake编译产物根目录,目录结构如下,类似。
工具对编译生成的库文件(如*.so、*.a等)进行解析和解压,功能实现命令样例如下:
解析包含device信息的库文件
简单打印
[object Object]执行上述命令,终端打印基础device信息,示例如下:
[object Object]全量打印
[object Object]执行上述命令,终端打印基础device信息,示例如下:
[object Object][object Object]
解压包含device信息的库文件并落盘
[object Object]执行上述命令,默认在当前执行路径下保存解压文件,产物目录如下:
[object Object]以acos_custom算子编译产物解压为例:
获取包含device信息的库文件列表
[object Object]执行上述命令,终端会打印所有文件,屏显信息形如:
[object Object]
以MatMulInvocationNeo算子为例(NPU模式),假设${cmake_install_dir}为算子Cmake编译产物根目录,目录结构如下(仅为示例,具体以实际算子工程为准),类似。
工具对编译生成的库文件(如*.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]