PyTorch场景kernel级精度数据采集
简介
本文主要介绍kernel级精度数据采集的配置示例和采集结果介绍,msProbe数据采集功能的详细使用参考《PyTorch场景精度数据采集》。
使用前准备
环境准备
安装msProbe工具,详情请参见《msProbe工具安装指南》。
约束
仅支持PyTorch框架。
快速入门
kernel dump配置说明
使用kernel dump时,task需要配置为tensor,list必须填写一个API名称,kernel dump目前每个step只支持采集一个API的数据。
API名称填写参考L1 dump结果文件dump.json中的API名称,命名格式为:{api_type}.{api_name}.{API调用次数}.{forward/backward}。
配置示例如下:
{
"task": "tensor",
"dump_path": "./dump_path",
"level": "L2",
"rank": [],
"step": [],
"tensor": {
"scope": [],
"list": ["Functional.linear.0.backward"]
}
}
dump结果文件介绍
采集结果说明
如果kernel级数据采集成功,会打印以下信息:
The kernel data of {api_name} is dumped successfully.
注意:如果打印该信息后,没有数据生成,参考常见问题进行排查。
如果kernel dump遇到不支持的API,会打印以下信息:
The kernel dump does not support the {api_name} API.
其中{api_name}是对应的API名称。
输出文件说明
kernel级数据采集成功后,会在指定的dump_path目录下生成如下文件:
├── /home/data_dump/
│ ├── step0
│ │ ├── 20241201103000 # 日期时间格式,表示2024-12-01 10:30:00
│ │ │ ├── 0 # 表示device id
│ │ │ │ ├──{op_type}.{op_name}.{task_id}.{stream_id}.{timestamp} # kernel层算子数据
│ │ │ ...
│ │ ├── kernel_config_{device_id}.json # kernel dump在接口调用过程中生成的中间文件,一般情况下无需关注
│ │ ...
│ ├── step1
│ ...
附录
常见问题
采集结果文件为空,有可能是什么原因?
- 首先需要确认工具使用方式、配置文件内容和list填写的API名称格式是否都正确无误。
- 其次需要确认API是否运行在昇腾NPU上,如果是运行在其他设备上则不会存在kernel级数据。
- 如果排除上述两点仍然没有数据,您可以使用《Ascend Extension for PyTorch 插件》提供的torch_npu.npu接口进行kernel级数据采集,工具的kernel dump也是基于其中的init_dump、set_dump和finalize_dump三个子接口实现的。torch_npu.npu接口详细描述见《torch_npu.npu API 概述》。