Ascend Operator 使用Ascend Operator 表1 使用Ascend Operator的yaml参数说明参数 取值 说明 framework mindsporepytorchtensorflow 框架类型,目前只支持三种。 ring-controller.atlas Atlas A2 训练系列产品和Atlas 900 A3 SuperPoD 集群算力系统:ascend-{xxx}b 使用Ascend Operator时,用于识别Atlas A2 训练系列产品、Atlas 900 A3 SuperPoD 集群算力系统和Atlas 训练系列产品,Atlas 训练系列产品不需要该参数。 schedulerName 默认值为“volcano”,用户需根据自身情况填写 Ascend Operator启用“gang”调度时所选择的调度器。 minAvailable 默认值为任务总副本数 Ascend Operator启用“gang”调度生效时,且调度器为Volcano时,任务运行最少副本数。 queue 默认值为“default”,用户需根据自身情况填写 Ascend Operator启用“gang”调度生效时,且调度器为Volcano时,任务所属队列。 (可选)successPolicy 默认值为空,若用户不填写该参数,则默认取空值。AllWorkers 表明任务成功的前提。空值代表只需要一个Pod成功,整个任务判定为成功。取值为“AllWorkers”表示所有Pod都成功,任务才判定为成功代表。 container.name ascend 训练容器的名称必须是“ascend”。 (可选)ports 若用户未进行设置,系统默认填写以下参数: name:ascendjob-portcontainerPort:2222 分布式训练集合通讯端口。“containerPort”用户可根据实际情况设置,若未进行设置则采用默认端口2222。 replicas 单机:1分布式:N N为任务副本数。 image - 训练镜像名称,请根据实际修改。 (可选)host-arch Arm环境:huawei-arm x86_64环境:huawei-x86 需要运行训练任务的节点架构,请根据实际修改。 分布式任务中,请确保运行训练任务的节点架构相同。 sp-block 指定逻辑超节点芯片数量,单机时需要和任务请求的芯片数量一致,分布式时需要是节点芯片数量的整数倍,且任务总芯片数量是其整数倍。 逻辑超节点内芯片数量。指定sp-block字段,集群调度组件会在物理超节点的基础上根据切分策略划分出逻辑超节点,用于训练任务的亲和性调度。 使用Atlas 900 A3 SuperPoD 集群算力系统产品的用户必须指定该字段,其他产品不需要该字段。 说明: Atlas 900 A3 SuperPoD 集群算力系统使用了该字段则不需要额外配置tor-affinity字段。 tor-affinity large-model-schema:大模型任务或填充任务normal-schema:普通任务null:不使用交换机亲和性 说明: 用户需要根据任务副本数,选择任务类型。任务副本数小于4为填充任务。任务副本数大于或等于4为大模型任务。普通任务不限制任务副本数。 默认值为null,表示不使用交换机亲和性调度。用户需要根据任务类型进行配置。 说明: 交换机亲和性调度1.0版本支持Atlas 训练系列产品和Atlas A2 训练系列产品;支持PyTorch和MindSpore框架。交换机亲和性调度2.0版本支持Atlas A2 训练系列产品;支持PyTorch框架。 pod-rescheduling on:开启Pod级别重调度其他值或不使用该字段:关闭Pod级别重调度 Pod级别重调度,表示任务发生故障后,不会删除所有任务Pod,而是将发生故障的Pod进行删除,重新创建新Pod后进行重调度。 说明: 重调度模式默认为任务级重调度,若需要开启Pod级别重调度,需要新增该字段。TensorFlow暂不支持Pod级别重调度。 subHealthyStrategy ignore:忽略该亚健康节点,后续任务会调度到该节点graceExit:不使用亚健康节点,并保存临终ckpt文件后,进行重调度,后续任务不会调度到该节点forceExit:不使用亚健康节点,不保存任务直接退出,进行重调度,后续任务不会调度到该节点。默认取值为ignore。 节点状态为亚健康(SubHealthy)的节点的处理策略。 说明: 使用graceExit策略时,需保证训练框架能够接收SIGTERM信号并保存ckpt文件。 accelerator-type Atlas 800 训练服务器(NPU满配):moduleAtlas 800 训练服务器(NPU半配):half服务器(插Atlas 300T 训练卡):cardAtlas 800T A2 训练服务器和Atlas 900 A2 PoD 集群基础单元:module-{xxx}b-8Atlas 200T A2 Box16 异构子框:module-{xxx}b-16 根据需要运行训练任务的节点类型,选取不同的值。 (可选)如果节点是Atlas 800 训练服务器(NPU满配)可以省略该标签。Atlas 900 A3 SuperPoD 集群算力系统产品不需要accelerator-type字段,若任务yaml存在该字段,需要删除。 说明: 芯片型号的数值可通过npu-smi info命令查询,返回的“Name”字段对应信息为芯片型号,下文的{xxx}即取“910”字符作为芯片型号数值。 huawei.com/Ascend910 Atlas 800 训练服务器(NPU满配):单机单芯片:1单机多芯片:2、4、8分布式:1、2、4、8 Atlas 800 训练服务器(NPU半配):单机单芯片:1单机多芯片:2、4分布式:1、2、4 服务器(插Atlas 300T 训练卡):单机单芯片:1单机多芯片:2分布式:2 Atlas 800T A2 训练服务器和Atlas 900 A2 PoD 集群基础单元:单机单芯片:1单机多芯片:2、4、8分布式:1、2、4、8 Atlas 200T A2 Box16 异构子框:单机单芯片:1单机多芯片:2、3、4、5、6、7、8、10、12、14、16分布式:1、2、3、4、5、6、7、8、10、12、14、16 Atlas 900 A3 SuperPoD 集群算力系统单机单芯片:1单机多芯片:2、4、6、8、10、12、14、16分布式:16 请求的NPU数量,请根据实际修改。 metadata.annotations['huawei.com/AscendXXX'] XXX表示芯片的型号,支持的取值为910,310和310P。取值需要和环境上实际的芯片类型保持一致。 Ascend Docker Runtime会获取该参数值,用于给容器挂载相应类型的NPU。 说明: 该参数只支持使用Volcano调度器的整卡调度特性,使用静态vNPU调度和其他调度器的用户需要删除示例yaml中该参数的相关字段。 fault-scheduling grace 配置任务采用优雅删除模式,并在过程中先优雅删除原Pod,15分钟后若还未成功,使用强制删除原Pod。 说明: 当前GPT-3模型支持使用临终遗言,该功能需要使用优雅删除模式。 force 配置任务采用强制删除模式,在过程中强制删除原Pod。设置为force时需要将yaml中的terminationGracePeriodSeconds字段配置为0或者删除该字段。 off 该任务不使用断点续训特性,K8s的maxRetry仍然生效。 无(无fault-scheduling字段) 其他值 fault-retry-times 0 < fault-retry-times 处理业务面故障,必须配置业务面可无条件重试的次数。 说明: 使用无条件重试功能需保证训练进程异常时会导致容器异常退出,若容器未异常退出则无法成功重试。当前仅Atlas 800T A2 训练服务器和Atlas 900 A2 PoD 集群基础单元支持无条件重试功能。 无(无fault-retry-times)或0 该任务不使用无条件重试功能,无法感知业务面故障,vcjob的maxRetry仍然生效。 backoffLimit 0 < backoffLimit 任务重调度次数。任务故障时,可以重调度的次数,当已经重调度次数与backoffLimit取值相同时,任务将不再进行重调度。 说明: 同时配置了backoffLimit和fault-retry-times参数时,当已经重调度次数与backoffLimit或fault-retry-times取值有一个相同时,将不再进行重调度。 无(无backoffLimit)或backoffLimit ≤ 0 不限制总重调度次数。 说明: 若不配置backoffLimit,但是配置了fault-retry-times参数,则使用fault-retry-times的重调度次数。 restartPolicy Never:从不重启Always:总是重启OnFailure:失败时重启ExitCode:根据进程退出码决定是否重启Pod,错误码是1~127时不重启,128~255时重启Pod。 说明: vcjob类型的训练任务不支持ExitCode。 容器重启策略。当配置业务面故障无条件重试时,容器重启策略取值必须为“Never”。 terminationGracePeriodSeconds 0 < terminationGracePeriodSeconds < grace-over-time参数取值 容器收到SIGTERM到被K8s强制停止经历的时间,该时间需要大于0且小于volcano-v{version}.yaml文件中“grace-over-time”参数取值,同时还需要保证能够保存ckpt文件,请根据实际情况修改。具体说明请参考K8s官网容器生命周期回调。 说明: 只有当fault-scheduling配置为grace时,该字段才生效;fault-scheduling配置为force时,该字段无效。