结果说明
分布式训练执行完成后,开发者可以参考本章节检查执行结果、问题定位。
检查执行结果
- 检查运行结果。
不同的训练脚本打印结果不同,若执行分布式训练的每个Device出现类似如下打印信息,说明训练任务已经正常结束。
当开启环境变量DUMP_GE_GRAPH时,会生成GE的dump图文件。
export DUMP_GE_GRAPH=2
在dump下来的图文件目录下,搜索到包含HcomBroadcast和HcomAllReduce算子,代表正常插入了NPU间通信的HCCL算子。
图1 GE的dump图
- 如果运行失败,和单Device训练一样,通过日志分析并定位问题。
在$HOME/ascend/log/run/plog下查看Host侧日志plog_*.log,$HOME为Host侧用户根目录。
在单Device执行成功,多单Device执行失败的情况下,一般为集合通信的问题,如图2所示。可以参见《集合通信用户指南》的“FAQ”章节进行问题处理。
问题定位
如果运行失败,通过日志分析并定位问题。
在Host侧运行应用程序产生的运行日志路径:$HOME/ascend/log/run/plog/plog-pid_*.log。
在Device侧运行应用程序产生的运行日志路径:$HOME/ascend/log/run/device-id/device-pid_*.log。
$HOME为Host侧用户根目录。
一般通过ERROR级别的日志,识别问题产生模块,根据具体日志内容判定问题产生原因。
图3 错误日志样例
ModuleName |
出错流程 |
解决思路 |
---|---|---|
系统类报错 |
环境与版本配套错误 |
系统类报错,优先排查版本配套与系统安装是否正确。 |
GE |
GE图编译或校验问题 |
校验类报错,通常会给出明确的错误原因,此时需要针对性地修改网络脚本,以满足相关要求。 |
RUNTIME |
环境异常导致初始化问题或图执行问题 |
对于初始化异常,优先排查当前运行环境配置是否正确,当前环境是否有其他进程占用。 |
父主题: 执行分布式训练