MindSpore动态图场景kernel精度数据采集
简介
本文主要介绍kernel精度数据采集(kernel dump)的配置示例和采集结果,msProbe数据采集功能的详细使用请参见《MindSpore场景精度数据采集》。
使用前准备
环境准备
安装msProbe工具,详情请参见《msProbe安装指南》。
约束
- 仅支持MindSpore框架。
- 当使用msProbe数据采集功能时,level配置为 "L2" 表示采集kernel层级的算子数据,仅支持昇腾NPU平台。
使用示例
-
配置文件
使用kernel dump时,config.json文件中的list参数必须要填一个API名称,kernel dump目前每个step只支持采集一个API的数据。 API名称填写参考L1 dump结果文件dump.json中的API名称,命名格式为:
{api_type}.{api_name}.{API调用次数}.{forward/backward}。{ "task": "tensor", "dump_path": "/home/data_dump", "level": "L2", "rank": [], "step": [], "tensor": { "scope": [], "list": ["Functional.linear.0.backward"] } } -
模型脚本
在模型脚本中配置工具使能代码,可参考快速入门中模型脚本章节。
-
运行训练脚本
在命令行中执行以下命令:
python train.py -
输出说明
如果API kernel级数据采集成功,会打印以下信息:
The kernel data of {api_name} is dumped successfully.注意:如果打印该信息后,没有数据生成,参考FAQ进行排查。
如果kernel dump遇到不支持的API,会打印以下信息:
The kernel dump does not support the {api_name} API.其中{api_name}是对应溢出的 API 名称。
dump结果文件说明
kernel dump采集成功后,会在指定的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
│ ...
FAQ
Q:采集结果文件为空,有可能是什么原因?
A:可通过如下步骤排查:
首先需要确认工具使用方式、配置文件内容、list填写的API名称格式是否都正确无误。 其次需要确认API是否运行在昇腾NPU上,如果是运行在其他设备上则不会存在kernel级数据。