本工具主要针对(NPU模式)、、编译生成的算子ELF文件(Executable and Linkable Format)提供解析和解压功能,并将结果信息以可读形式呈现,方便开发者直观获得kernel文件信息。
[object Object]
[object Object][object Object]
[object Object]安装msobjdump工具。
工具跟随CANN软件包发布(参考完成CANN安装),其路径默认为“{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]解压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]以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]
以下面的算子工程为例(仅为示例,具体以实际算子工程为准),假设${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]