MindSpore 多机多卡分布式训练,昇腾 910 芯片
同样的代码,在单节点8卡训练中不会报错,但是在4节点32卡中会报错 “Call rt api rtStreamSynchronize failed, ret: 507011”,这个错是在训练过程中的已经迭代了十几万步。
错误日志有提示到 “2) if interrupt in middle process of training, may check whether dataset sending num and network training num mismatch.”,但是我传的数据迭代数应该是远大于停止的迭代数。
传入的迭代数是根据数据迭代器ds计算的,即 actual_iteration_num = int(epoch_num * ds.get_dataset_size()/ callback_size),这个数大概是 628256,产生报错的迭代数大概为129200。所以感觉应该不是数据发送数与训练迭代数不匹配?
model = Model(network=pangu_alpha_with_grads, eval_network=eval_net, metrics={"CodeEvalMetric": CodeEvalMetric()}) model.train(actual_iteration_num, ds, callbacks=callback, sink_size=callback_size, dataset_sink_mode=True)
*******************************************************************************************************************
请问下是否是所有卡都报 call rt api rtStreamSynchronize failed
1. 报错的原因
- 可能是其他卡因为异常情况挂了:例如保存ckpt的时候,或者存在计算执行出错