Ascend Operator
YAML参数说明(acjob任务)
如果是acjob任务,在配置YAML前,请先了解相关YAML参数说明,详细说明如下表所示。
每个acjob任务YAML中包含一些固定字段,例如apiVersion、kind等,如果想了解这些字段的详细说明请参见acjob关键字段说明。
表 1 YAML参数说明
|
||
表示当前MindIE Motor在Ascend Job任务中的角色,取值包括mindie-ms-controller、mindie-ms-coordinator、mindie-ms-server。 |
|
|
仅支持MindIE Motor推理任务在Atlas 800I A2 推理服务器、Atlas 800I A3 超节点服务器上使用本参数。 |
||
仅支持MindIE Motor推理任务在Atlas 800I A2 推理服务器、Atlas 800I A3 超节点服务器上使用本参数。 |
||
|
||
|
表明任务成功的前提。空值代表只需要一个Pod成功,整个任务判定为成功。取值为“AllWorkers”表示所有Pod都成功,任务才判定为成功。 |
|
|
||
|
||
目前支持表3中的配置。 |
配置任务需要调度的AI芯片布局形态。Volcano会根据该字段选择合适的调度策略。若不配置,则根据accelerator-type选择调度策略。 |
|
|
指定sp-block字段,集群调度组件会在物理超节点上根据切分策略划分出逻辑超节点,用于训练任务的亲和性调度。若用户未指定该字段,Volcano调度时会将此任务的逻辑超节点大小指定为任务配置的NPU总数。 了解详细说明请参见灵衢总线设备节点网络说明。 [!NOTE] 说明
|
|
|
||
|
Pod级别重调度,表示任务发生故障后,不会删除所有任务Pod,而是将发生故障的Pod进行删除,重新创建新Pod后进行重调度。 |
|
|
recover-strategy配置在任务YAML annotations下,取值为6种策略的随意组合,策略之间由逗号分割。 | |
|
Ascend Operator会根据用户配置的recover-strategy自动给任务打上process-recover-enable=on标签,无需用户手动指定。 |
|
|
||
|
根据需要运行训练任务的节点类型,选取不同的值。如果节点是Atlas 800 训练服务器(NPU满配),可以省略该标签。对于Atlas 350 标卡、Atlas 850 系列硬件产品、Atlas 950 SuperPoD,若使用pingmesh功能则此标签为必选。 |
|
|
Atlas 200T A2 Box16 异构子框和Atlas 200I A2 Box16 异构子框:
Atlas 350 标卡(无互联节点内8卡):
|
[!NOTE] 说明
Atlas 350 标卡、Atlas 850 系列硬件产品、Atlas 950 SuperPoD需将参数名称修改为huawei.com/npu。 |
|
(.kind=="AscendJob").spec.replicaSpecs.{Master|Scheduler|Worker}.template.spec.containers[0].env[name==ASCEND_VISIBLE_DEVICES].valueFrom.fieldRef.fieldPath |
取值为metadata.annotations['huawei.com/AscendXXX'],其中XXX表示芯片的型号,支持的取值为910,310和310P。取值需要和环境上实际的芯片类型保持一致。 |
|
任务重调度次数。任务故障时,可以重调度的次数,当已经重调度次数与backoffLimit取值相同时,任务将不再进行重调度。 |
||
|
||
容器收到SIGTERM到被K8s强制停止经历的时间,该时间需要大于0且小于volcano-v{version}.yaml文件中“grace-over-time”参数取值,同时还需要保证能够保存CKPT文件,请根据实际情况修改。具体说明请参考K8s官网容器生命周期回调。 |
||
|
|
YAML参数说明(deploy任务或vcjob任务)
表 2 YAML参数说明
|
||
|
||
目前支持表3中的配置。 |
配置任务需要调度的AI芯片布局形态。Volcano会根据该字段选择合适的调度策略。若不配置,则根据accelerator-type选择调度策略。 |
|
|
指定sp-block字段,集群调度组件会在物理超节点上根据切分策略划分出逻辑超节点,用于训练任务的亲和性调度。若用户未指定该字段,Volcano调度时会将此任务的逻辑超节点大小指定为任务配置的NPU总数。 了解详细说明请参见灵衢总线设备节点网络说明。 [!NOTE] 说明
|
|
|
||
|
||
|
||
|
Ascend Docker Runtime会获取该参数值,用于给容器挂载相应类型的NPU。
[!NOTE] 说明
Atlas 350 标卡、Atlas 850 系列硬件产品、Atlas 950 SuperPoD需配置为metadata.annotations['huawei.com/npu']。 |
||
|
recover-strategy配置在任务YAML annotations下,取值为5种策略的随意组合,策略之间由逗号分割。 | |
|
Pod级别重调度,表示任务发生故障后,不会删除所有任务Pod,而是将发生故障的Pod进行删除,重新创建新Pod后进行重调度。 |
|
|
||
|
Pod状态。与action字段搭配使用,表示当Pod处于某种状态时,Volcano的处理策略。默认值为PodEvicted。 |
|
Volcano对处于某种状态的Pod的处理策略。默认值为RestartJob。 [!NOTE] 说明
|
||
|
||
容器收到SIGTERM到被K8s强制停止经历的时间,该时间需要大于0且小于volcano-v{version}.yaml文件中“grace-over-time”参数取值,同时还需要保证能够保存CKPT文件,请根据实际情况修改。具体说明请参考K8s官网容器生命周期回调。 |
表 3 huawei.com/schedule_policy配置说明
| 配置 | 说明 |
|---|---|
| chip4-node8 | 1个节点8张芯片,每4个芯片形成1个互联环。例如,Atlas 800 训练服务器(型号 9000)/Atlas 800 训练服务器(型号 9010)芯片的整模块场景/Atlas 350 标卡共8张卡,每4张卡通过UB扣板连接。 |
| chip1-node2 | 1个节点2张芯片。例如,Atlas 300T 训练卡的插卡场景,1张卡最多插1个芯片,1个节点最多插2张卡。 |
| chip4-node4 | 1个节点4张芯片,形成1个互联环。例如,Atlas 800 训练服务器(型号 9000)/Atlas 800 训练服务器(型号 9010)芯片的半配场景。 |
| chip8-node8 | 1个节点8张卡,8张卡都在1个互联环上。例如,Atlas 800T A2 训练服务器 /Atlas 850 系列硬件产品。 |
| chip8-node16 | 1个节点16张卡,每8张卡在1个互联环上。例如,Atlas 200T A2 Box16 异构子框。 |
| chip2-node8 | 1个节点8张卡,每2张卡在1个互联环上。 |
| chip2-node16 | 1个节点16张卡,每2张卡在1个互联环上。例如,Atlas 800T A3 超节点服务器。 |
| chip2-node8-sp | 1个节点8张卡,每2张卡在1个互联环上,多个服务器形成超节点。例如,Atlas 9000 A3 SuperPoD 集群算力系统。 |
| chip2-node16-sp | 1个节点16张卡,每2张卡在1个互联环上,多个服务器形成超节点。例如,Atlas 900 A3 SuperPoD 超节点。 |
| chip4-node16 | 1个节点16张卡,每4张卡都在1个互联环上。例如,Atlas 350 标卡共16张卡,每4张卡通过UB扣板连接。 |
| chip1-node8 | 1个节点8张卡,每张卡之间无互联。例如,Atlas 350 标卡共8张卡,每张卡之间无互联。 |
| chip1-node16 | 1个节点16张卡,每张卡之间无互联。例如,Atlas 350 标卡共16张卡,每张卡之间无互联。 |
| chip8-node8-sp | 1个节点8张卡,8张卡都在1个互联环上,多个服务器形成超节点。例如,Atlas 850 系列硬件产品(超节点服务器)。 |
| chip8-node8-ra64-sp | 1个节点8张卡,8张卡都在1个互联环上,64个节点组成一个计算框,多个框形成超节点。例如,Atlas 950 SuperPoD。 |
| chip1-softShareDev | 软切分虚拟化专用调度策略。 |
| multilevel | 多级调度场景使用,多级调度的详细使用方法请参见多级调度。 |
表 4 rings-config-任务名称