算力健康检测(SanityCheck)在DLC训练任务启动前或容错重启后,自动检测GPU算力和通信性能,隔离故障节点,减少训练初期因资源问题导致的失败和算力浪费。
功能介绍
在AI训练场景,可能会遇到以下问题:
-
资源故障导致任务中断与GPU浪费:任务完成初始化后,若资源存在故障,无法开始训练,需排查问题并重新提交,浪费GPU资源。
-
性能问题难以定位:训练性能下降可能由慢节点引起,但缺少快捷的定位手段。资源组内也缺少便捷可靠的GPU算力和通信性能基准测试。
DLC提供了算力健康检测(SanityCheck)功能,用于检查分布式训练任务的算力资源健康度与性能。开启后,系统会全面检测参与训练的资源,自动隔离故障节点并触发运维流程,减少训练初期的失败风险。检测完成后,系统会生成GPU算力和通信性能报告,帮助定位导致性能下降的问题。
使用限制
目前,该功能仅支持使用灵骏智算资源创建的PyTorch训练任务,且要求任务资源的GPU(卡数)为整机配置。灵骏智算资源目前仅对白名单用户开放,若有需要,请联系您的商务经理。
开启健康检测
通过控制台
在PAI控制台中创建DLC训练任务时,配置以下参数开启健康检测。任务创建后,系统会先检测资源健康度,再执行训练。
关键参数说明如下:
-
资源信息配置:
参数
描述
资源类型
选择灵骏智算资源。
资源来源
选择资源配额。
资源配额
选择已创建的灵骏智算资源配额。如何创建资源配额,请参见创建资源配额。
框架
选择PyTorch。
任务资源
GPU(卡数)需要是整机配置。
-
容错与诊断配置:打开健康检测开关,并配置以下参数:
参数
描述
检测时机
-
任务运行前(默认):任务获取资源后,先检测算力节点健康状态,再执行用户代码。
-
任务重启后:任务运行异常并由AIMaster自动容错重启后,进行算力健康检测。
说明选择该配置项时,必须打开自动容错功能。更多内容介绍,请参见AIMaster:弹性自动容错引擎。
-
任务运行前+任务重启后:任务运行前和任务重启后均进行算力健康检测。
说明选择该配置项时,必须打开自动容错功能。更多内容介绍,请参见AIMaster:弹性自动容错引擎。
检测项
检测项包括计算性能检测、节点通信检测、计算通信交叉检测和模型模拟验证四类。详细说明请参见附录:检测项说明。
-
默认开启GPU GEMM(用于检测GPU GEMM性能情况)、All-Reduce(用于检测节点通信性能,识别通信慢节点/故障节点)检测。
-
支持搜索或勾选检测项,也可通过快捷配置一键选定检测项模板。
最长检测时间
健康检测最长运行时间,默认为60分钟。若检测超时,会触发检测异常处理策略。
检测异常处理策略
健康检测未通过时的处理方式:
-
结束任务:当识别到故障或可疑节点,任务将终止并标记为检测未通过。
-
拉黑重跑:当识别到故障或可疑节点,系统将自动拉黑该节点,重启任务并重跑检测,直到检测全部通过。
检测最大重启次数
检测处理策略为”拉黑重跑”时可用。默认为10次,超过后任务自动失败。
其他检测配置
默认为空,支持高级参数配置。
-
通过OpenAPI
调用CreateJob接口时,在Settings参数中新增以下2个参数开启健康检测:
|
参数 |
描述 |
示例 |
|
EnableSanityCheck |
任务是否打开算力健康检测。取值如下:
|
|
|
SanityCheckArgs |
算力健康检测的执行参数,取值如下:
|
|
查看检测结果
健康检测状态说明
DLC任务健康检测的状态说明:
-
检测中:正在进行算力健康检测环节。
-
检测未通过:检测发现异常节点或检测超时。
-
检测通过:所有检测项通过,任务进入运行状态。
查看健康检测结果
通过控制台
DLC任务详情页,事件页签,单击健康检测,可以查看检测进度及检测结果。
健康检测包含检测环境准备、GPU GEMM、GPU Kernel Launch、All-Reduce-单节点、MatMul/All-Reduce Overlap、Mini GPT-单节点等检测项,各项完成后以绿色对勾标记通过状态。
单击重启记录页签,可以查看重启次数、重启原因、重启结果等信息。
通过OpenAPI
-
GetJobSanityCheckResult:获取DLC作业某次算力健康检测结果。
-
ListJobSanityCheckResults:获取某个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 分钟 |
||