msobjdump

概述

本工具主要针对生成的算子ELF文件(Executable and Linkable Format)提供解析和解压功能,并将结果信息以可读形式呈现,方便开发者直观获得kernel文件信息。关于本工具的详细介绍请参考《Ascend C算子开发》中的“编程指南 > 附录 > msobjdump工具”。

工具调用演示可参考msobjdump样例

命令格式

  • 解析ELF文件的命令

    msobjdump --dump-elf <elf_file> [--verbose]
    

    --dump-elf <elf_file>为必选,表示待解析ELF文件路径。[--verbose]为可选,用于开启ELF文件中全量打印device信息功能。

  • 解压ELF文件的命令

    msobjdump --extract-elf <elf_file> [--out-dir <out_path>]
    

    --extract-elf <elf_file>为必选,表示待解析ELF文件路径。[--out-dir <out_path>]为可选,用于设置解压文件的落盘路径。

  • 获取ELF文件列表的命令

    msobjdump --list-elf <elf_file>
    

    --list-elf <elf_file>为可选,获取ELF文件中包含的device信息文件列表,并打印显示。

下表为ELF文件中常见字段说明:

字段名 含义 是否必选 打印说明
.ascend.meta. ${id} 表示算子kernel函数名称,其中${id}表示meta信息的索引值。 不设置--verbose,默认打印。
VERSION 表示版本号。 不设置--verbose,默认打印。
DEBUG 调试相关信息,包含如下两部分内容:
debugBufSize:调试信息需要的内存空间。
debugOptions:调试开关状态。取值如下:
0:调试开关关闭。
1:通过DumpTensor、printf打印进行调试。
2:通过assert断言进行调试。
4:通过时间戳打点功能进行调试。
8:通过内存越界检测进行调试。
不设置--verbose,默认打印。
DYNAMIC_PARAM 算子kernel函数是否启用动态参数。取值分别为:
0:关闭动态参数模式。
1:开启动态参数模式。
不设置--verbose,默认打印。
OPTIONAL_PARAM 可选参数信息,包含如下两部分内容:
optionalInputMode:可选输入在算子kernel函数中是否需要占位。
0:可选输入不占位。
1:可选输入占位。
optionalOutputMode:可选输出在算子kernel函数中是否需要占位。
0:可选输出不占位。
1:可选输出占位。
不设置--verbose,默认打印。
KERNEL_TYPE 表示kernel函数运行时core类型。 不设置--verbose,默认打印。
CROSS_CORE_SYNC 表示硬同步syncall类型。
USE_SYNC:使用硬同步。
NO_USE_SYNC:不使用硬同步。
不设置--verbose,默认打印。
MIX_TASK_RATION 表示kernel函数运行时的Cube核/Vector核占比分配类型。 不设置--verbose,默认打印。
DETERMINISTIC_INFO 表示算子是否为确定性计算。
0:不确定计算。
1:确定性计算。
不设置--verbose,默认打印。
BLOCK_NUM 表示算子执行核数,该字段当前暂不支持,只打印默认值0xFFFFFFFF 不设置--verbose,默认打印。
FUNCTION_ENTRY 算子TilingKey的值。 不设置--verbose,默认打印。
elf header infos 包括ELF Header、Section Headers、Key to Flags、Program Headers、Symbol表等信息。 设置--verbose,开启全量打印。