本文为您介绍如何使用DLC提供的算力健康检测能力。
功能介绍
在执行DLC任务时,可能会遇到以下问题:
在任务花费一定时间加载模型Checkpoint或其他初始化操作后,由于申请的资源存在故障,无法顺利开始训练,需要调查定位故障问题并重新提交任务。该过程中会导致GPU资源的浪费。
在任务运行阶段,如果发现模型训练性能下降,可能是慢节点导致的,但缺少快捷有效的问题定位方法。此外,资源组内机器的GPU算力和通信性能测试也欠缺便捷且可靠的基准程序。
针对上述问题,DLC提供了算力健康检测(SanityCheck)功能,旨在对分布式训练任务的算力资源健康度与性能进行检查。在创建DLC训练任务时可以开启该功能,健康检测会对参与训练的资源进行全面检测,自动隔离故障节点,并触发后台自动化运维流程,有效减少任务训练初期遇到问题的可能性,提升训练成功率。此外,在检测完成后,会给出有关GPU算力以及通信性能的检测报告,可以帮助识别和定位可能导致任务训练性能下降的问题元素,整体提升问题诊断的效率。
使用限制
仅支持在华北6(乌兰察布)和新加坡地域,使用灵骏智算资源提交的DLC训练任务,开启健康检测功能。
当前功能仅支持PyTorch类型的训练任务,且要求任务资源的GPU(卡数)大于0。
开启健康检测
通过控制台
在PAI控制台创建DLC训练任务时,您可以在容错与诊断区域,打开健康检测开关,并配置相关参数。具体操作,请参见创建训练任务。开启健康检测功能,并成功创建任务后,系统将占用一定的时间用于检测资源健康度和可用性,并给出检测结果。
其中健康检测的关键参数说明如下:
参数 | 描述 |
检测时机 |
|
检测项 | 默认开启GPU GEMM、All-Reduce检测。支持用户选择计算性能检测、节点通信检测、计算通信交叉检测、模型模拟验证。更多检测项说明及推荐场景,请参见附录:检测项说明。 |
最长检测时间(分钟) | 健康检测最长运行时间,默认为30分钟。在检测超时后,会触发预设的处理方法。 |
检测超时处理 | 当健康检测运行时间超过设定值时,您可以选择将任务转入以下状态:
|
其他检测配置 | 默认为空。 |
查看检测结果
健康检测状态说明
DLC任务在健康检测中的相关状态项如下:
检测中:正在进行算力健康检测环节,期间的任务状态将显示为检测中。
检测未通过:在执行算力健康检测过程中,如果检测出问题,或检测时间超出设定的最大运行时间,状态将显示为检测未通过。
检测通过:算力健康检测全部通过后,任务将直接进入运行中的状态。
查看健康检测结果
通过控制台
在DLC任务详情页面下方的事件页签,单击健康检测,可以查看对应的检测结果。
配置消息通知
您可以在PAI工作空间的事件通知配置中创建消息通知规则,其中事件类型选择DLC任务>任务自动容错,其他参数配置详情,请参见消息通知。当算力健康检测未通过时,会发送消息通知。
工作空间创建消息通知使用说明: 工作空间事件中心。
附录:检测项说明
预估检测时长以2台机器为单位,数值仅供参考,请以实际情况为准。
检测项 | 含义说明(推荐场景) | 预估检测时长 | |
计算性能检测 | GPU GEMM | 用于检测GPU GEMM性能情况,可识别:
| 1 分钟 |
GPU Kernel Launch | 用于检测 GPU Kernel 启动延迟情况,可识别:
| 1 分钟 | |
节点通信检测 | All-Reduce | 用于检测节点通信性能,识别通信慢节点/故障节点。在不同的通信模式下,可识别:
| 单个集合通信检测 5 分钟 |
All-to-All | |||
All-Gather | |||
Multi-All-Reduce | |||
Network Connectivity | 用于检测机头/机尾网络连通性,识别通信连通异常节点。 | 2 分钟 | |
计算通信交叉检测 | MatMul/All-Reduce Overlap | 用于检测通信kernel和计算kernel重叠时单节点的性能情况,可识别:
| 1 分钟 |
模型模拟验证 | Mini GPT | 使用模型模拟验证AI系统可靠性,可识别:
| 1 分钟 |
Megatron GPT | 5 分钟 | ||
ResNet | 2 分钟 |