compare精度比对
前提条件
- MindSpore训练场景:以MindSpore框架内,不同版本下的cell模块比对场景为例,参见MindSpore训练场景,完成不同框架版本的cell模块dump,其中不同框架版本以MindSpore 2.6.0和MindSpore 2.7.0为例。
- PyTorch训练场景:完成PyTorch训练场景,得到GPU和昇腾NPU环境的精度数据。
执行比对
- 数据准备。
- MindSpore训练场景:在同一昇腾NPU环境安装MindSpore 2.6.0和MindSpore 2.7.0版本,分别执行dump操作,获得两份精度数据。注意区分dump_path指定的目录名称,以dump_data_2.6.0和dump_data_2.7.0为例。
- PyTorch训练场景:完成前提条件中GPU和昇腾NPU环境的数据dump后,将GPU环境下dump的精度数据拷贝至昇腾NPU环境。注意区分dump_path指定的目录名称,以dump_data_npu和dump_data_gpu为例。
- 创建比对配置文件。以在训练脚本所在目录创建compare.json配置文件为例,文件内容拷贝如下示例配置。
- MindSpore训练场景:
1 2 3 4 5 6
{ "npu_path": "./dump_data_2.7.0/step0/rank/dump.json", "bench_path": "./dump_data_2.6.0/step0/rank/dump.json", "stack_path": "./dump_data_2.7.0/step0/rank/stack.json", "is_print_compare_log": true }
- PyTorch训练场景:
1 2 3 4 5 6
{ "npu_path": "./dump_data_npu/step0/rank/dump.json", "bench_path": "./dump_data_gpu/step0/rank/dump.json", "stack_path": "./dump_data_npu/step0/rank/stack.json", "is_print_compare_log": true }
其中"npu_path"和"bench_path"对应的路径需要在同一环境下。
- MindSpore训练场景:
- 执行比对。命令如下:
- MindSpore训练场景:
msprobe -f mindspore compare -i ./compare.json -o ./compare_result/accuracy_compare -s
- PyTorch训练场景:
msprobe -f pytorch compare -i ./compare.json -o ./compare_result/accuracy_compare -s
出现如下打印说明比对成功:1 2 3 4 5 6 7
... Compare result is /xxx/compare_result/accuracy_compare/compare_result_{timestamp}.xlsx ... The advisor summary is saved in: /xxx/compare_result/accuracy_compare/advisor_{timestamp}.txt ************************************************************************************ * msprobe compare ends successfully. * ************************************************************************************
- MindSpore训练场景:
- 比对结果文件分析。
compare会在./compare_result/accuracy_compare生成如下文件。
- advisor_{timestamp}.txt:文件中给出了可能存在精度问题的API的专家建议。
- compare_result_{timestamp}.xlsx:文件列出了所有执行精度比对的API详细信息和比对结果,可通过颜色标记、比对结果(Result)、计算精度达标情况(Accuracy Reached or Not)、错误信息提示(Err_Message)定位可疑算子,但鉴于每种指标都有对应的判定标准,还需要结合实际情况进行判断。
父主题: 精度比对