特性介绍
容器化支持
- 为所有的训练或推理作业提供NPU容器化支持,自动挂载所需文件和设备依赖,简化容器拉起命令。
- 支持vNPU的自动创建和挂载。
- 支持Docker及Containerd。
Ascend Docker Runtime
资源监测
- 支持在执行训练或者推理任务时,对昇腾AI处理器资源各种数据信息的实时监测,可实时获取昇腾AI处理器利用率、温度、电压、内存,以及昇腾AI处理器在容器中的分配状况等信息,实现资源的实时监测。
- 支持通过自定义插件上报其他指标。
NPU Exporter
虚拟化实例
虚拟化实例可将一张NPU切分成多份,分给不同的任务使用。按照切分的方式,分为基于HDK的虚拟化实例和基于vCANN-RT的虚拟化实例。
基于HDK的虚拟化实例
基于HDK的虚拟化实例功能是指通过资源虚拟化的方式将物理机或虚拟机配置的NPU(昇腾AI处理器)切分成若干份vNPU(虚拟NPU)挂载到容器中使用,虚拟化管理方式能够实现不同规格资源的分配和回收处理,满足多用户反复申请/释放的资源操作请求。
- 静态虚拟化:通过npu-smi工具手动创建多个vNPU。基于固定大小、固定数量的vNPU进行调度
- 动态虚拟化:通过Volcano和Ascend Device Plugin配合,动态地自动创建vNPU,容器销毁前,自动销毁vNPU。
静态虚拟化实例所需组件:
- Ascend Docker Runtime
- Ascend Device Plugin
动态虚拟化实例所需组件:
- Ascend Docker Runtime
- Ascend Device Plugin
- Volcano
- 安装请参见安装部署章节进行操作。
- 特性使用指导请参见基于HDK的虚拟化实例章节进行操作。
基于vCANN-RT的虚拟化实例
基于vCANN-RT的虚拟化实例功能是指通过向vCANN-RT提供软切分配置文件的方式将物理机配置的NPU(昇腾AI处理器)挂载到容器中使用,虚拟化管理方式能够实现不同规格资源的分配和回收处理,满足多用户反复申请/释放资源的操作请求。
- Volcano
- Ascend Device Plugin
- Ascend Docker Runtime
- Ascend Operator
- ClusterD
- 安装组件请参见安装部署章节进行操作。
- 特性使用指导请参见基于vCANN-RT的虚拟化实例章节进行操作。
基础调度
整卡调度
支持用户运行训练或者推理任务时,将训练或推理任务调度到节点的整张NPU卡上,独占整张卡执行训练或者推理任务。整卡调度特性借助Kubernetes(以下简称K8s)支持的基础调度功能,配合Volcano或者其他调度器,根据NPU设备物理拓扑,选择合适的NPU设备,最大化发挥NPU性能,实现训练或者推理任务的NPU卡的调度和其他资源的最佳分配。
芯片间的网络拓扑越复杂,调度逻辑越复杂,详细可以参见亲和性调度。
- Volcano
- Ascend Device Plugin
- Ascend Docker Runtime
- Ascend Operator
- Infer Operator
- ClusterD
- NodeD
多级调度
功能特点
多级调度是ascend-for-volcano插件中的一种高级调度策略,专为具有复杂网络拓扑的NPU集群设计。多级调度是整卡调度的一种特殊场景,它根据NPU的网络拓扑层级关系将集群资源抽象为多层级结构,为NPU集群提供高效、灵活、可靠的调度能力。用户运行训练任务时,根据网络拓扑选择合适的NPU设备,最大化发挥NPU性能,实现训练任务的NPU卡调度的最佳分配。
所需组件
- Volcano
- Ascend Device Plugin
- Ascend Docker Runtime
- Ascend Operator
- ClusterD
- NodeD
使用说明
推理卡故障恢复
集群调度组件管理的推理NPU资源出现故障后,将对故障资源(对应NPU)进行热复位操作,使NPU恢复健康。
- Volcano
- Ascend Device Plugin
- Ascend Docker Runtime
- ClusterD
- NodeD
推理卡故障重调度
集群调度组件管理的推理NPU资源出现故障后,集群调度组件将对故障资源(对应NPU)进行隔离并自动进行重调度。
- Volcano
- Ascend Device Plugin
- Ascend Docker Runtime
- ClusterD
- NodeD
- Ascend Operator
- Infer Operator
断点续训
当训练任务出现故障时,将任务重调度到健康设备上继续训练或者对故障芯片进行自动恢复。
-
故障检测:通过Ascend Device Plugin、Volcano、ClusterD和NodeD四个组件,发现任务故障。
-
故障处理:故障发生后,根据上报的故障信息进行故障处理。分为以下两种模式。
- 重调度模式:故障发生后将任务重调度到其他健康设备上继续运行。
- 优雅容错模式:当训练时芯片出现故障后,系统将尝试对故障芯片进行自动恢复。
-
恢复加速:在任务重新调度之后,训练任务会使用故障前自动保存的CKPT,重新拉起训练任务继续训练。
- Volcano
- Ascend Operator
- Ascend Device Plugin
- Ascend Docker Runtime
- NodeD
- ClusterD
- TaskD
- MindIO ACP(可选)
- MindIO TFT(可选)
- 安装组件请参见安装部署章节进行操作。
- 特性使用指导请参见断点续训章节进行操作。
- TaskD需安装在容器内,详细请参见制作镜像章节。
- MindIO ACP的详细介绍及安装步骤请参见Checkpoint保存与加载优化章节。
- MindIO TFT的详细介绍及安装步骤请参见故障恢复加速。
容器恢复
在无K8s的场景下,训练或推理进程异常后,通过配置容器恢复功能,可以进行容器故障恢复。
- 故障检测:通过Container Manager组件,发现任务故障。
- 故障处理:故障发生后,不需要人工介入就可自动恢复故障设备。
- 容器恢复:故障发生时,将容器停止,故障恢复后重新将容器拉起。
Container Manager