昇思MindSpore进阶教程--Running Data Recorder
大家好,我是刘明,明志科技创始人,华为昇思MindSpore布道师。
技术上主攻前端开发、鸿蒙开发和AI算法研究。
努力为大家带来持续的技术分享,如果你也喜欢我的文章,就点个关注吧
概述
Running Data Recorder(RDR)是MindSpore提供训练程序运行时记录数据的功能。要记录的数据将会在MindSpore中进行预设,运行训练脚本时,如果MindSpore出现了运行异常,则会自动地导出MindSpore中预先记录的数据以辅助定位运行异常的原因。不同的运行异常将会导出不同的数据,比如出现Run task error异常,将会导出计算图、图执行顺序、内存分配等信息以辅助定位异常的原因。
使用方法
通过配置文件配置RDR
- 创建配置文件mindspore_config.json。
{
"rdr": {
"enable": true,
"mode": 1,
"path": "/path/to/rdr/dir"
}
}
- 通过 context 配置RDR。
import mindspore as ms
ms.set_context(env_config_path="./mindspore_config.json")
通过环境变量配置RDR
通过export MS_RDR_ENABLE=1来开启RDR,通过export MS_RDR_MODE=1或export MS_RDR_MODE=2来设置导出数据模式,然后通过export MS_RDR_PATH=/path/to/root/dir设置RDR文件导出的根目录路径,最终RDR文件将保存在/path/to/root/dir/rank_{RANK_ID}/rdr/目录下。其中RANK_ID为多卡训练场景中的卡号,单卡场景默认RANK_ID=0。
异常处理
假如在Atlas训练系列产品上使用MindSpore进行训练,训练出现了Run task error异常。
这时我们到RDR文件的导出目录中,可以看到有几个文件,每一个文件都代表着一种数据。比如 hwopt_d_before_graph_0.ir 该文件为计算图文件。可以使用文本工具打开该文件,用以查看计算图,分析计算图是否符合预期。
诊断处理
当开启RDR并设置环境变量export MS_RDR_MODE=2,进入诊断模式。在图编译结束后,我们同样可以在RDR文件的导出目录中看到保存的与异常处理相同的文件。