问题描述:
【功能模块】
- MindSpore提供的Bert训练脚本(https://gitee.com/mindspore/models/tree/master/official/nlp/bert)
- GPU分布式训练
- MindSpore的Profiler工具
【操作步骤&问题现象】
1、在单机四卡环境下,使用官方提供的脚本进行训练,参数配置未改变
2、在run_pretrain.py文件中调用Profiler工具记录性能数据(代码中第24,25行)
3、发现训练过程卡死不动,程序未报错退出,此时GPU利用率为0,CPU利用率很高
4、相关环境为
- python 3.8.13, mindspore 1.7.0, mindinsight 1.7.0
- cuda 11.1, nccl 2.7.8, cudnn 8.0.4
- 单机四卡训练
【截图信息】
卡死时状态
解答:
从日志看,应该在正常执行,只是用profiler之后,会改成同步执行,网络执行速度就会比较慢。一般情况下,大网络,只会跑几个step用来分析性能,不会长期跑。 step 收集,可以通过callback实现
from mindspore.train.callback import Callback class StopAtStep(Callback):
如下有配置方案 https://www.mindspore.cn/mindinsight/docs/zh-CN/r1.7/performance_profiling_gpu.html