Ascend Operator
通过环境变量配置资源信息
参数 |
取值 |
说明 |
---|---|---|
framework |
|
- |
jobID |
当前MindIE Service任务在集群中的唯一识别ID,用户可根据实际情况进行配置。 |
目前只支持以下AI框架:mindspore、pytorch。 该参数仅支持在Atlas 800I A2 推理服务器上使用。 |
app |
表明当前Ascend Job在MindIE Service任务中的角色,取值包括mindie-ms-controller、mindie-ms-coordinator、mindie-ms-server。 |
目前只支持以下AI框架:MindSpore、Pytorch。 说明:
|
ring-controller.atlas |
|
标识任务使用的芯片的产品类型。 需要在ConfigMap和任务task中配置。 |
schedulerName |
默认值为“volcano”,用户需根据自身情况填写 |
Ascend Operator启用“gang”调度时所选择的调度器。 |
minAvailable |
默认值为任务总副本数 |
Ascend Operator启用“gang”调度生效时,且调度器为Volcano时,任务运行总副本数。 |
queue |
默认值为“default”,用户需根据自身情况填写 |
Ascend Operator启用“gang”调度生效时,且调度器为Volcano时,任务所属队列。 |
(可选)successPolicy |
|
表明任务成功的前提。空值代表只需要一个Pod成功,整个任务判定为成功。取值为“AllWorkers”表示所有Pod都成功,任务才判定为成功代表。 |
container.name |
ascend |
训练容器的名称必须是“ascend”。 |
(可选)ports |
若用户未进行设置,系统默认填写以下参数:
|
分布式训练集合通讯端口。“containerPort”用户可根据实际情况设置,若未进行设置则采用默认端口2222。 |
replicas |
|
N为任务副本数。 |
image |
- |
训练镜像名称,请根据实际修改。 |
(可选)host-arch |
Arm环境:huawei-arm x86_64环境:huawei-x86 |
需要运行训练任务的节点架构,请根据实际修改。 分布式任务中,请确保运行训练任务的节点架构相同。 |
sp-block |
指定逻辑超节点芯片数量,单机时需要和任务请求的芯片数量一致,分布式时需要是节点芯片数量的整数倍,且任务总芯片数量是其整数倍。 |
指定sp-block字段,集群调度组件会在物理超节点的基础上根据切分策略划分出逻辑超节点,用于训练任务的亲和性调度。 了解详细说明请参见总线设备节点网络说明。 说明:
|
tor-affinity |
|
默认值为null,表示不使用交换机亲和性调度。用户需要根据任务类型进行配置。 说明:
|
pod-rescheduling |
|
Pod级别重调度,表示任务发生故障后,不会删除所有任务Pod,而是将发生故障的Pod进行删除,重新创建新Pod后进行重调度。 说明:
|
recover-strategy |
任务可用恢复策略。
|
|
process-recover-enable |
|
默认为不使用该字段。 |
subHealthyStrategy |
|
节点状态为亚健康(SubHealthy)的节点的处理策略。 说明:
使用graceExit策略时,需保证训练框架能够接收SIGTERM信号并保存ckpt文件。 |
accelerator-type |
|
根据需要运行训练任务的节点类型,选取不同的值。
说明:
芯片型号的数值可通过npu-smi info命令查询,返回的“Name”字段对应信息为芯片型号,下文的{xxx}即取“910”字符作为芯片型号数值。 |
huawei.com/Ascend910 |
Atlas 800 训练服务器(NPU满配):
Atlas 800 训练服务器(NPU半配):
服务器(插Atlas 300T 训练卡):
Atlas 800T A2 训练服务器和Atlas 900 A2 PoD 集群基础单元:
Atlas 200T A2 Box16 异构子框:
Atlas 900 A3 SuperPoD 超节点
|
请求的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。取值需要和环境上实际的芯片类型保持一致。 |
Ascend Docker Runtime会获取该参数值,用于给容器挂载相应类型的NPU。 说明:
该参数只支持使用Volcano调度器的整卡调度特性,使用静态vNPU调度和其他调度器的用户需要删除示例yaml中该参数的相关字段。 |
fault-scheduling |
grace |
配置任务采用优雅删除模式,并在过程中先优雅删除原Pod,15分钟后若还未成功,使用强制删除原Pod。 说明:
当前GPT-3模型支持使用临终遗言,该功能需要使用优雅删除模式。 |
force |
配置任务采用强制删除模式,在过程中强制删除原Pod。 |
|
off |
该任务不使用断点续训特性,K8s的maxRetry仍然生效。 |
|
无(无fault-scheduling字段) |
||
其他值 |
||
fault-retry-times |
0 < fault-retry-times |
处理业务面故障,必须配置业务面无条件重试的次数。 说明:
|
无(无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”。 |
terminationGracePeriodSeconds |
0 < terminationGracePeriodSeconds < grace-over-time参数取值 |
容器收到SIGTERM到被K8s强制停止经历的时间,该时间需要大于0且小于volcano-v{version}.yaml文件中“grace-over-time”参数取值,同时还需要保证能够保存ckpt文件,请根据实际情况修改。具体说明请参考K8s官网容器生命周期回调。 说明:
只有当fault-scheduling配置为grace时,该字段才生效;fault-scheduling配置为force时,该字段无效。 |
hostNetwork |
|
|
通过文件配置资源信息
参数 |
取值 |
说明 |
---|---|---|
minAvailable |
|
N为节点个数,Deployment类型的任务不需要该参数,该参数建议与replicas保持一致。 |
replicas |
|
N为任务副本数。 |
image |
- |
训练镜像名称,请根据实际修改(用户在制作镜像章节制作的镜像名称)。 |
(可选)host-arch |
Arm环境:huawei-arm x86_64环境:huawei-x86 |
需要运行训练任务的节点架构,请根据实际修改。 分布式任务中,请确保运行训练任务的节点架构相同。 |
tor-affinity |
|
默认值为null,表示不使用交换机亲和性调度。用户需要根据任务类型进行配置。 说明:
|
accelerator-type |
根据所使用芯片类型不同,取值如下:
|
根据需要运行训练任务的节点类型,选取不同的值。如果节点是Atlas 800 训练服务器(NPU满配),可以省略该标签。 说明:
芯片型号的数值可通过npu-smi info命令查询,返回的“Name”字段对应信息为芯片型号,下文的{xxx}即取“910”字符作为芯片型号数值。 |
huawei.com/Ascend910 |
根据所使用芯片类型不同,取值如下:
|
请求的NPU数量,请根据实际修改,请求整卡时不能再同时请求vNPU。 说明:
|
ring-controller.atlas |
|
用于标识任务使用的芯片的类型。需要在ConfigMap和任务task中配置。 |
metadata.annotations['huawei.com/AscendXXX'] |
XXX表示芯片的型号,支持的取值为910,310和310P。取值需要和环境的实际芯片类型保持一致。 |
Ascend Docker Runtime会获取该参数值,用于给容器挂载相应类型的NPU。 |
fault-scheduling |
grace |
配置任务采用优雅删除模式,并在过程中先优雅删除原Pod,15分钟后若还未成功,使用强制删除原Pod。 说明:
当前GPT-3模型支持使用临终遗言,该功能需要使用优雅删除模式。 |
force |
配置任务采用强制删除模式,在过程中强制删除原Pod。 |
|
off |
该任务不使用断点续训特性,K8s的maxRetry仍然生效。 |
|
无(无fault-scheduling字段) |
||
其他值 |
||
recover-strategy |
任务可用恢复策略。
|
|
pod-rescheduling |
|
Pod级别重调度,表示任务发生故障后,不会删除所有任务Pod,而是将发生故障的Pod进行删除,重新创建新Pod后进行重调度。 说明:
|
subHealthyStrategy |
|
节点状态为亚健康(SubHealthy)的节点的处理策略。 说明:
使用graceExit策略时,需保证训练框架能够接收SIGTERM信号并保存ckpt文件。 |
fault-retry-times |
0 < fault-retry-times |
处理业务面故障,必须配置业务面可无条件重试的次数。 说明:
|
无(无fault-retry-times)或0 |
该任务不使用无条件重试功能,无法感知业务面故障,vcjob的maxRetry仍然生效。 |
|
policies |
event,取值如下:
|
Pod状态。与action字段搭配使用,表示当Pod处于某种状态时,Volcano的处理策略。默认值为PodEvicted。 |
action,取值如下:
|
Volcano对处于某种状态的Pod的处理策略。默认值为RestartJob。 说明:
|
|
maxRetry |
0< maxRetry |
任务重调度次数。任务故障时,可以重调度的次数,当已经重调度次数与maxRetry取值相同时,任务将不再进行重调度。 说明:
同时配置了maxRetry和fault-retry-times参数时,当已经重调度次数与maxRetry或fault-retry-times取值有一个相同时,将不再进行重调度。 |
无(无maxRetry)或maxRetry等于0 |
不配置maxRetry或配置maxRetry取值为0时,系统默认进行3次重调度。 |
|
restartPolicy |
|
容器重启策略。当配置业务面故障无条件重试时,容器重启策略取值必须为“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时,该字段无效。 |
rings-config-<任务名称>
字段名称 |
名称 |
作用 |
取值 |
备注 |
---|---|---|---|---|
hccl.json |
version |
ranktable使用的格式版本 |
1.0 |
- |
server_count |
任务使用的节点数量 |
整数类型 |
- |
|
server_list |
任务使用的节点信息 |
- |
- |
|
- server_id |
任务使用的节点的IP地址 |
字符串 |
- |
|
device |
任务使用的芯片信息 |
- |
- |
|
- device_id |
任务使用的芯片的物理ID |
字符串 |
- |
|
- device_ip |
任务使用的芯片的ip地址 |
字符串 |
- |
|
- rank_id |
任务使用的芯片的rank号 |
字符串 |
- |
|
version |
- |
任务使用hccl.json的版本 |
字符串 |
- |