特性介绍
集群调度组件支持的特性与产品的对应关系如表1所示,√表示支持在训练或推理任务场景下使用该特性;-表示不支持在该场景下使用该特性。
特性名称 |
训练 |
推理 |
||
---|---|---|---|---|
产品型号 |
Atlas 训练系列产品 |
Atlas A2 训练系列产品 |
推理服务器(插Atlas 300I 推理卡) |
Atlas 推理系列产品(配置Ascend 310P AI处理器) |
整卡调度 |
√ |
√ |
√ |
√ |
资源监测 |
√ |
√ |
√ |
√ |
静态vNPU调度 |
√ |
- |
√ |
√ |
动态vNPU调度 |
- |
- |
- |
√ |
断点续训 |
√ |
√ |
- |
- |
弹性训练 |
√ |
- |
- |
- |
推理卡故障恢复 |
- |
- |
√ |
√ |
推理卡故障重调度 |
- |
- |
√ |
√ |
资源监测
支持在执行训练或者推理任务,对昇腾AI处理器资源各种指标的实时监测,可实时获取昇腾AI处理器利用率、温度、电压、内存,以及昇腾AI处理器在容器中的分配状况等信息,实现资源的实时监测。
整卡调度
支持用户运行训练或者推理任务时,将训练或推理任务调度到节点的整张NPU卡(昇腾AI处理器)上,独占整张卡执行训练或者推理任务。整卡调度特性借助Kubernetes(简称K8s)支持的基础调度功能,配合Volcano或者其他调度器,根据NPU设备物理拓扑,选择合适的NPU设备,最大化发挥NPU性能,实现训练或者推理任务的NPU卡的调度和其他资源的最佳分配。
Volcano组件是集群调度组件推出的基于昇腾AI处理器的互联拓扑结构和处理逻辑,实现了芯片最佳利用的调度器组件。该组件提供昇腾AI处理器的亲和性调度、故障重调度等特性,可以最大化发挥昇腾AI处理器计算性能。若用户需要提升其调度器与昇腾AI处理器的亲和性,可以参见《MindX DL 亲和性调度方案说明》进行操作。
静态vNPU调度
算力虚拟化将物理机或虚拟机配置的昇腾AI处理器切分成若干份vNPU(虚拟NPU)挂载到容器中使用,虚拟化管理方式能够实现统一不同规格资源的分配和回收处理,满足多用户反复申请或释放的资源操作请求。使用算力虚拟化需要了解昇腾AI处理器支持的芯片类型、切分规则和切分模版等,详细信息请参见《昇腾虚拟化实例(AVI)用户指南》。
算力虚拟化可以分为静态虚拟化和动态虚拟化,集群调度组件基于静态虚拟化和动态虚拟化的特点实现了静态vNPU调度和动态vNPU调度特性。
静态vNPU调度需要通过npu-smi工具提前创建多个vNPU,当用户需要使用vNPU资源时,基于Ascend Device Plugin组件的设备发现、设备分配、设备健康状态上报功能,分配vNPU资源提供给上层用户使用,实现vNPU的调度。
动态vNPU调度
在使用动态虚拟化前需要了解昇腾AI处理器的支持的芯片类型、切分规则和切分模版等,详细信息请参见《昇腾虚拟化实例(AVI)用户指南》。
动态vNPU调度需要Ascend Device Plugin组件上报其所在节点的可用AI Core数目。虚拟化任务上报后,Volcano经过计算将该任务调度到满足其要求的节点。该节点的Ascend Device Plugin在收到请求后自动切分出vNPU设备并挂载该任务,从而完成整个动态虚拟化过程。该过程不需要用户提前切分vNPU,在任务使用完成后又能自动回收,支持用户算力需求不断变化的场景。
断点续训
断点续训提供故障检测、故障处理和训练重启功能,在Kubernetes(以下简称K8s)集群中当训练时设备出现故障后,系统可对故障资源进行隔离,并对故障发生时正在运行的训练任务进行重调度。通过加载自动保存的checkpoint数据恢复训练,重新拉起训练任务继续训练,缩短训练损失时间。
断点续训当前有如下两个Level的能力。
弹性训练
集群调度组件管理的训练节点出现故障(启用NodeD的节点网络故障或者芯片故障)后,集群调度组件将对故障节点进行隔离,并根据任务预设的规模和当前集群中可用的节点数重新设置任务副本数,然后进行重调度和重训练(需进行脚本适配)。
推理卡故障恢复
集群调度组件管理的推理NPU资源出现故障后,将对故障资源(对应NPU)进行热复位操作,使NPU恢复健康。
推理卡故障重调度
集群调度组件管理的推理NPU资源出现故障后,集群调度组件将对故障资源(对应NPU)进行隔离并自动进行重调度。