Ascend Operator
YAML Parameters (acjob)
For acjob, understand the YAML parameters before configuring the YAML file. For details, see the table below.
Each acjob YAML file contains some fixed fields, such as apiVersion and kind. For more information about these fields, see Key Fields in acjob.
Parameter |
Value |
Description |
|---|---|---|
framework |
|
- |
jobID |
Unique ID of the MindIE Motor job in the cluster. Set this parameter as required. |
This parameter is supported only on Atlas 800I A2 inference server and Atlas 800I A3 SuperPoD Server. |
app |
Role of MindIE Motor in the AscendJob. The value can be mindie-ms-controller, mindie-ms-coordinator, or mindie-ms-server. |
|
mind-cluster/scaling-rule: scaling-rule |
Name of the ConfigMap of the scaling rule. |
This parameter can be used only for MindIE Motor inference jobs on the Atlas 800I A2 inference server and Atlas 800I A3 SuperPoD Server. |
mind-cluster/group-name: group0 |
Name of the group of the scaling rule. |
This parameter can be used only for MindIE Motor inference jobs on the Atlas 800I A2 inference server and Atlas 800I A3 SuperPoD Server. |
podAffinity |
Scheduling to a physical SuperPoD with more affinity pods. |
This parameter can be used only for MindIE Motor inference jobs on the Atlas 800I A3 SuperPoD Server. |
sp-fit |
SuperPoD scheduling policy. idlest: Scheduling to a more idle physical SuperPoD. |
This parameter can be used only for MindIE Motor inference jobs on the Atlas 800I A3 SuperPoD Server. |
ring-controller.atlas |
|
Processor type for specified products. You need to set this parameter both in ConfigMap and task. |
schedulerName |
The default value is volcano. Set this parameter based on your actual requirements. |
Scheduler selected when gang scheduling is enabled for Ascend Operator. |
minAvailable |
The default value is the total number of job replicas. |
Total number of job replicas when Ascend Operator enables gang scheduling and the scheduler is Volcano. |
queue |
The default value is default. Set this parameter based on your actual requirements. |
Queue to which a job belongs. This parameter takes effect when Ascend Operator enables gang scheduling and the scheduler is Volcano. |
(Optional) successPolicy |
|
Prerequisite for a successful job. An empty value indicates that if only one pod succeeds, the entire job is considered successful. AllWorkers indicates that all pods need to succeed for the job to be considered as successful. |
container.name |
ascend |
The name of the training container must be ascend. |
(Optional) ports |
If you do not set corresponding parameters, the system fills in the following values by default:
|
Collective communication port for distributed training. You can set containerPort as required. If containerPort is not set, the default port 2222 is used. |
replicas |
|
N indicates the number of job replicas. |
image |
- |
Training image name. Set this parameter as required. |
(Optional) host-arch |
Arm: huawei-arm x86_64: huawei-x86 |
Architecture of the node where a training job is executed. Set this parameter as required. In a distributed training job, ensure that the nodes running the training job have the same architecture. |
huawei.com/schedule_policy |
See Table 3 for its configurations. |
Job's AI processor layout to be scheduled. Volcano selects a proper scheduling policy based on this field. If this parameter is not set, the scheduling policy is selected based on accelerator-type. NOTE:
This field can be used only on the Atlas training product, |
sp-block |
Number of processors on logical SuperPoDs.
|
Cluster scheduling components divide logical SuperPoDs on physical SuperPoDs based on the division policy for affinity scheduling of training jobs. If this field is not specified, Volcano sets the size of the logical SuperPoD of a job to the total number of NPUs configured for the job during scheduling. For details, see UnifiedBus Interconnect Device Network Description. NOTE:
|
tor-affinity |
|
The default value is null, indicating that switch affinity scheduling is not used. You need to set this parameter based on the job type. NOTE:
|
pod-rescheduling |
|
For pod-level rescheduling, if a job is faulty, the system does not delete all pods of the job. Instead, the system deletes the faulty pods, creates new pods, and reschedules the pods. NOTE:
|
recover-strategy |
Available recovery policy.
|
recover-strategy is configured in annotations of the job YAML file. The value can be any combination of the six policies. Use commas (,) to separate them. |
process-recover-enable |
|
Ascend Operator automatically adds the process-recover-enable=on label to the job based on the configured recover-strategy. You do not need to manually specify the label. |
subHealthyStrategy |
|
Processing policy for nodes in the SubHealthy status. NOTE:
|
accelerator-type |
|
Set this parameter based on the type of the node where a training job is executed. For the Atlas 800 training server (NPU full configuration), this parameter can be omitted. NOTE:
You can run the npu-smi info command to query the number in the processor model name, which is indicated by the Name field in the returned message. As an example below, the value of {xxx} is 910. |
huawei.com/Ascend910 |
Atlas 800 training server (full configuration of NPUs):
Atlas 800 training server (half configuration of NPUs):
Server (with Atlas 300T training cards):
Atlas 800T A2 training server and Atlas 900 A2 PoD cluster basic unit:
Atlas 200T A2 Box16 heterogeneous subrack and Atlas 200I A2 Box16 heterogeneous subrack:
Atlas 900 A3 SuperPoD, A200T A3 Box8 SuperPoD Server, and Atlas 800T A3 SuperPoD Server:
|
Number of requested NPUs. Set this parameter as required. |
(.kind=="AscendJob").spec.replicaSpecs.[Master|Scheduler|Worker].template.spec.containers[0].env[name==ASCEND_VISIBLE_DEVICES].valueFrom.fieldRef.fieldPath |
The value is in the format of metadata.annotations['huawei.com/AscendXXX'], where XXX indicates the processor model (910, 310, or 310P). The value must be the same as the actual processor type in the environment. |
Ascend Docker Runtime obtains the value of this parameter to mount NPUs of the corresponding type to the container. NOTE:
This parameter applies only to full NPU scheduling of the Volcano scheduler. If you use static vNPU scheduling and other schedulers, delete fields of this parameter from the example YAML file. |
fault-scheduling |
grace |
Enable the graceful deletion mode for a job to gracefully delete the original pod during the process. If the failure persists after 15 minutes, forcibly delete the original pod. Set this parameter to grace for process-level rescheduling and process-level online recovery. |
force |
Enable the forcible deletion mode for a job to forcibly delete the original pod during the process. |
|
off |
The job does not use the resumable training feature, but maxRetry of Kubernetes still takes effect. |
|
None (no fault-scheduling field) |
||
Other values |
||
fault-retry-times |
> 0 |
To rectify service plane faults, you must configure the number of unconditional retries on the service plane. NOTE:
|
None (no fault-retry-times) or 0 |
The job does not use unconditional retry and cannot detect service plane faults, but maxRetry of VolcanoJob still takes effect. |
|
backoffLimit |
> 0 |
Number of rescheduling times when a job is faulty. If the number of rescheduling times is the same as the value of backoffLimit, the job will not be rescheduled. NOTE:
If both backoffLimit and fault-retry-times are configured, and the number of rescheduling times is the same as the value of either backoffLimit or fault-retry-times, rescheduling is not performed. |
None (no backoffLimit) or backoffLimit ≤ 0 |
The total number of rescheduling times is not limited. NOTE:
If backoffLimit is not configured but fault-retry-times is configured, the number of rescheduling times is specified by fault-retry-times. |
|
restartPolicy |
|
Container restart policy. When unconditional retry upon service plane faults is configured, the value of this parameter must be Never. |
terminationGracePeriodSeconds |
0 < terminationGracePeriodSeconds < value of grace-over-time |
Duration from the time when the container receives SIGTERM to the time when the container is forcibly stopped by Kubernetes. The value must be greater than 0 and less than the value of grace-over-time in the volcano-v{version}.yaml file. In addition, ensure that the checkpoint file can be saved completely. Change the value as required. For details, see Container Lifecycle Hooks on the Kubernetes official website. NOTE:
This field takes effect only when fault-scheduling is set to grace. If fault-scheduling is set to force, this field is invalid. |
hostNetwork |
|
|
YAML Parameters (deploy or vcjob)
Parameter |
Value |
Description |
|---|---|---|
minAvailable |
|
N indicates the number of nodes. This parameter is not required for Deployment jobs. You are advised to set this parameter to the same value as replicas. |
replicas |
|
N indicates the number of job replicas. |
image |
- |
Training image name. Change it based on your actual requirements. (It matches the image name created in the image preparation section.) |
(Optional) host-arch |
Arm: huawei-arm x86_64: huawei-x86 |
Architecture of the node where a training job is executed. Set this parameter as required. In a distributed training job, ensure that the nodes running the training job have the same architecture. |
huawei.com/schedule_policy |
See Table 3 for its configurations. |
Job's AI processor layout to be scheduled. Volcano selects a proper scheduling policy based on this field. If this parameter is not set, the scheduling policy is selected based on accelerator-type. NOTE:
This field can be used only on the Atlas training product, |
sp-block |
Number of processors on logical SuperPoDs.
|
Cluster scheduling components divide logical SuperPoDs on physical SuperPoDs based on the division policy for affinity scheduling of training jobs. If this field is not specified, Volcano sets the size of the logical SuperPoD of a job to the total number of NPUs configured for the job during scheduling. For details, see UnifiedBus Interconnect Device Network Description. NOTE:
|
tor-affinity |
|
The default value is null, indicating that switch affinity scheduling is not used. You need to set this parameter based on the job type. NOTE:
|
accelerator-type |
The value varies according to the processor type, including:
|
Set this parameter based on the type of the node where a training job is executed. For the Atlas 800 training server (NPU full configuration), this parameter can be omitted. NOTE:
You can run the npu-smi info command to query the number in the processor model name, which is indicated by the Name field in the returned message. As an example below, the value of {xxx} is 910. |
huawei.com/Ascend910 |
The value varies according to the processor type, including:
|
Number of requested NPUs. Set this parameter as required. The vNPU cannot be requested when the entire NPU is requested. NOTE:
|
ring-controller.atlas |
|
Processor type used by a job. You need to set this parameter both in ConfigMap and task. |
metadata.annotations['huawei.com/AscendXXX'] |
XXX indicates the processor model. The value can be 910, 310, or 310P. The value must be the same as the actual processor type in the environment. |
Ascend Docker Runtime obtains the value of this parameter to mount NPUs of the corresponding type to the container. |
fault-scheduling |
grace |
Enable the graceful deletion mode for a job to gracefully delete the original pod during the process. If the failure persists after 15 minutes, forcibly delete the original pod. Set this parameter to grace for process-level rescheduling and process-level online recovery. |
force |
Enable the forcible deletion mode for a job to forcibly delete the original pod during the process. |
|
off |
The job does not use the resumable training feature, but maxRetry of Kubernetes still takes effect. |
|
None (no fault-scheduling field) |
||
Other values |
||
recover-strategy |
Job restoration policy.
|
recover-strategy is configured in annotations of the job YAML file. The value can be any combination of the five policies. Use commas (,) to separate them. |
pod-rescheduling |
|
For pod-level rescheduling, if a job is faulty, the system does not delete all pods of the job. Instead, the system deletes the faulty pods, creates new pods, and reschedules the pods. NOTE:
|
subHealthyStrategy |
|
Processing policy for nodes in the SubHealthy status. NOTE:
When the graceExit policy used, ensure that the training framework can receive the SIGTERM signal and save the checkpoint file. |
fault-retry-times |
> 0 |
To rectify service plane faults, you must configure the number of unconditional retries on the service plane. NOTE:
|
None (no fault-retry-times) or 0 |
The job does not use unconditional retry and cannot detect service plane faults, but maxRetry of VolcanoJob still takes effect. |
|
policies |
Options of event:
|
Pod status. This field is used together with the action field to indicate the processing policy of Volcano when the pod is in a certain status. The default value is PodEvicted. |
Options of action:
|
Volcano specifies the policy for processing pods in a certain status. The default value is RestartJob. NOTE:
|
|
maxRetry |
0 < maxRetry |
Number of rescheduling times when a job is faulty. If the number of rescheduling times is the same as the value of maxRetry, the job will not be rescheduled. NOTE:
If both maxRetry and fault-retry-times are configured, and the number of rescheduling times is the same as the value of either maxRetry or fault-retry-times, rescheduling is not performed. |
None (no maxRetry) or maxRetry is set to 0 |
If maxRetry is not set or is set to 0, the system performs rescheduling for three times by default. |
|
restartPolicy |
|
Container restart policy. When unconditional retry upon service plane faults is configured, the value of this parameter must be Never. |
terminationGracePeriodSeconds |
0 < terminationGracePeriodSeconds < value of grace-over-time |
Duration from the time when the container receives SIGTERM to the time when the container is forcibly stopped by Kubernetes. The value must be greater than 0 and less than the value of grace-over-time in the volcano-v{version}.yaml file. In addition, ensure that the checkpoint file can be saved completely. Change the value as required. For details, see Container Lifecycle Hooks on the Kubernetes official website. NOTE:
This field takes effect only when fault-scheduling is set to grace. If fault-scheduling is set to force, this field is invalid. |
Configuration |
Description |
|---|---|
chip4-node8 |
One node has eight processors, and four processors form an interconnection ring, for example, the processor layout of the Atlas 800 training server (model 9000) or Atlas 800 training server (model 9010). |
chip1-node2 |
One node has two processors. For example, one Atlas 300T training card can be equipped with only one processor, and one node can be equipped with a maximum of two Atlas 300T training cards. |
chip4-node4 |
One node has four processors, and four processors form an interconnection ring, for example, the processor layout of the Atlas 800 training server (model 9000) or Atlas 800 training server (model 9010). |
chip8-node8 |
One node has eight processors, and eight processors form on one interconnection ring, for example, the processor layout of the Atlas 800T A2 training server. |
chip8-node16 |
One node has 16 processors, and eight processors form on one interconnection ring, for example, the processor layout of the Atlas 200T A2 Box16 heterogeneous subrack. |
chip2-node16 |
One node has 16 processors, and two processors form on one interconnection ring, for example, the processor layout of the Atlas 800T A3 SuperPoD Server. |
chip2-node16-sp |
One node has 16 processors, and two processors form on one interconnection ring, and multiple servers form a SuperPoD, for example, the processor layout of the Atlas 900 A3 SuperPoD. |
rings-config-<job name>
Field |
Parameter |
Description |
Value |
Remarks |
|---|---|---|---|---|
hccl.json |
version |
Format version used by RankTable |
1.0 |
- |
server_count |
Number of nodes used by a job |
Integer |
- |
|
server_list |
Information about the node used by a job |
- |
- |
|
- server_id |
AI server ID, which is globally unique. |
String |
- |
|
- host_ip |
Host IP address of the AI server |
String |
- |
|
device |
Information about the processor used by a job |
- |
- |
|
- device_id |
Physical ID of the processor used by a job |
String |
- |
|
- device_ip |
IP address of the processor used by a job |
String |
- |
|
- rank_id |
Rank ID of the processor used by a job |
String |
- |
|
version |
- |
Version of the hccl.json file used by a job |
String |
- |