场景选择
场景说明
训练场景:支持的特性包括资源监测、整卡调度、静态vNPU调度,断点续训和弹性训练。
推理场景:支持的特性包括资源监测、整卡调度、静态vNPU调度、动态vNPU调度、推理卡故障恢复和推理卡故障重调度。
训练和推理:在同一个集群中可以既存在训练场景又存在推理场景,在该场景下全部特性都可以使用,但不支持在同一任务中同时使用仅训练任务支持的场景特性(断点续训和弹性训练)和仅推理任务支持的场景特性(动态vNPU调度、推理卡故障恢复和推理卡故障重调度)。
使用Volcano调度器可支持全部特性,使用其他调度器仅支持资源监测、整卡调度、静态vNPU调度和推理卡故障恢复特性。
使用Volcano调度器
- 同一训练任务可以选择整卡调度或静态vNPU调度特性(二选一),同一推理任务可以选择整卡调度、静态vNPU调度或动态vNPU调度特性(三选一)。同一集群中可以同时存在使用整卡的任务和使用静态vNPU的任务,但不能同时存在使用静态vNPU的任务和使用动态vNPU的任务。
- 若需要配置训练故障后的重调度和重训练特性,NPU资源不受限时可使用断点续训特性,若需根据可用资源自动缩减使用的NPU可使用弹性训练特性。
- 断点续训、弹性训练、推理卡故障恢复和推理卡故障重调度特性默认使用整卡调度,用户不需要再单独配置整卡调度特性。
Volcano调度器支持的特性如表1,√表示在该特性下需要安装的组件;-表示在该特性下不需要安装的组件。
组件安装位置 |
组件名称 |
整卡调度或静态vNPU调度 |
资源监测 |
断点续训 |
弹性训练 |
动态vNPU调度 |
推理卡故障恢复 |
推理卡故障重调度 |
|
---|---|---|---|---|---|---|---|---|---|
训练 |
推理 |
训练和推理 |
训练 |
训练 |
推理 |
推理 |
推理 |
||
管理节点 |
Volcano |
√ |
√ |
- |
√ |
√ |
√ |
√ |
√ |
Resilience-Controller |
- |
- |
- |
- |
√ |
- |
- |
- |
|
HCCL-Controller |
√(二选一) |
- |
- |
√(二选一) |
√ |
- |
- |
- |
|
Ascend Operator |
- |
- |
- |
- |
- |
- |
|||
计算节点 |
Ascend Device Plugin |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
Ascend Docker Runtime |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
|
NodeD |
- |
- |
- |
√ |
√ |
- |
- |
- |
|
NPU-Exporter |
- |
- |
√ |
- |
- |
- |
- |
- |
|
训练容器内 |
Elastic-Agent |
- |
- |
- |
√ |
- |
- |
- |
- |
- HCCL-Controller:通过配置文件设置资源信息。
华为研发的一款用于昇腾AI处理器训练任务的组件,利用Kubernetes(简称K8s)的informer机制,持续记录训练任务及其Pod的各种事件,并读取Pod的昇腾AI处理器信息,生成对应的configmap。该configmap包含了训练任务所依赖的集合通讯配置,方便训练任务更好地协同和调度底层的昇腾AI处理器,无需用户手动配置。
- Ascend Operator:通过环境变量设置资源信息。
该组件支持MindSpore、PyTorch、TensorFlow三个AI框架在Kubernetes上进行分布式训练的插件,CRD(Custom Resource Definition)中定义了AscendJob任务,用户只需配置yaml文件,即可以为不同AI框架的分布式训练任务提供相应的环境变量。
需要先安装Volcano组件后再安装HCCL-Controller或Ascend Operator组件。
使用其他调度器
同一任务可以选择使用整卡调度或静态vNPU调度特性(二选一)。同一集群中可以同时存在使用整卡的任务和使用静态vNPU的任务。
使用其他调度器支持的特性如表2,√表示在该特性下需要安装的组件;-表示在该特性下不需要安装的组件。