更新时间:2024-01-26 GMT+08:00

训练作业卡死检测定位

什么是训练作业卡死检测

训练作业在运行中可能会因为某些未知原因导致作业卡死,如果不能及时发现,就会导致无法及时释放资源,从而造成极大的资源浪费。为了节省训练资源成本,提高使用体验,ModelArts提供了卡死检测功能,能自动识别作业是否卡死,并在日志详情界面上展示,同时能配置通知及时提醒用户作业卡死。

检测规则

卡死检测主要是通过监控作业进程的状态和资源利用率来判定作业是否卡死。会启动一个进程来周期性地监控上述两个指标的变化情况。

  • 进程状态:只要训练作业中存在进程IO有变化,进入下一个检测周期。如果在多个检测周期内,作业所有进程IO都没有变化,则进入资源利用率检测阶段。
  • 资源利用率:在作业进程IO没有变化的情况下,采集一定时间段内的GPU利用率,并根据这段时间内的GPU利用率的方差和中位数来判断资源使用率是否有变化。如果没有变化,则判定作业卡死。
  • 由于检测规则的局限性,当前卡死检测存在一定的误检率。如果是作业代码本身逻辑(如长时间sleep)导致的卡死,请忽略。

约束限制

目前卡死检测仅支持资源类型为GPU的训练作业。

操作步骤

卡死检测无需额外配置,作业运行中会自动执行检测。检测到作业卡死后会在训练作业详情页提示作业疑似卡死。如需检测到卡死后发送通知(短信、邮件等)请在作业创建页面配置事件通知。

常见案例

训练作业卡死常见现象的案例和解决方案如下:

复制数据卡死

训练前卡死

训练中途卡死

训练最后一个epoch卡死