在Ascend C算子程序代码中,用户可以使用AscendC::DumpTensor、AscendC::printf、AscendC::PrintTimeStamp、ascendc_assert接口打印相关调试信息,并通过“aclInit”或直接配置acl.json文件,启用Dump配置,导出Ascend C算子Kernel的调测信息。本工具提供了对调测信息的离线解析能力,帮助用户获取并解析调试信息,即将导出的bin文件解析成可读格式。本工具的使用示例可参考show_kernel_debug_data样例。
show_kernel_debug_data支持多用户并发调用,但用户需要指定不同的落盘路径,否则可能出现落盘内容被覆盖等问题。
|
产品 |
是否支持 |
|---|---|
|
Atlas 350 加速卡 |
√ |
|
|
√ |
|
|
√ |
|
|
√ |
|
|
√ |
|
|
x |
工具跟随CANN软件包发布(参考环境准备完成CANN安装),其路径默认为“${INSTALL_DIR}/tools/show_kernel_debug_data”,其中${INSTALL_DIR}请替换为CANN软件安装后文件存储路径。以root用户安装为例,安装后文件默认存储路径为:/usr/local/Ascend/cann。
source /usr/local/Ascend/cann/set_env.sh
source ${HOME}/Ascend/cann/set_env.shshow_kernel_debug_data -h
show_kernel_debug_data <bin_file_path> [<output_path>]
|
参数 |
可选/必选 |
说明 |
|---|---|---|
|
<bin_file_path> |
必选 |
kernel侧调试信息落盘的bin文件或包含bin文件的目录路径,例如“/input/dump_workspace.bin”。 |
|
<output_path> |
可选 |
解析结果的保存路径,例如“/output_dir”。默认是当前命令行执行目录下。 |
def show_kernel_debug_data(bin_file_path: str, output_path: str = './') -> None
其中,输入参数说明如下。函数无输出参数和返回值。
调用示例参考如下代码。
1 2 |
from show_kernel_debug_data import show_kernel_debug_data show_kernel_debug_data(./input/dump_workspace.bin) |
工具解析结果文件目录结构如下。其中,dump_data目录是对DumpTensor、PrintTimeStamp接口解析的结果,index0对应DumpTensor接口中第二个参数desc=0时的打印,loop0表示切分后首个分块的数据打印。
├ ${output_path}
├── PARSER_${timestamp} // ${timestamp}表示时间戳
├── dump_data
│ ├── 0 // core0解析结果
│ ├── core_0_index_0_loop_0.bin // core0 desc0 progress0落盘信息
│ ├── core_0_index_0_loop_0.txt // core0 desc0 progress0解析结果
...
│ ├── core_0_index_2_loop_15.bin // core0 desc2 progress15落盘信息
│ ├── core_0_index_2_loop_15.txt // core0 desc2 progress15解析结果
│ └── time_stamp_core_0.csv // 时间戳信息
│ ├── 1 // core1解析结果
│ ├── 2 // core2解析结果
...
│ └── index_dtype.json // index与数据类型的映射关系
└── parser.log // 解析日志,包括printf、ascendc_assert接口的打印信息