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,开启全量打印。 |