昇腾社区首页
中文
注册

Ascend Operator

  • 使用整卡调度(训练)、静态vNPU调度(训练)、断点续训或弹性训练的用户,必须安装Ascend Operator组件。如果使用Volcano组件作为调度器,需要先安装Volcano组件,否则Ascend Operator会启动失败。
  • 使用整卡调度(推理)和推理卡故障重调度特性,下发acjob类型的分布式推理任务,必须安装Ascend Operator
  • 仅使用容器化支持和资源监测、推理卡故障恢复或推理卡故障重调度(单机任务)的用户,可以不安装Ascend Operator,请直接跳过本章节。

操作步骤

  1. 以root用户登录K8s管理节点,并执行以下命令,查看Ascend Operator镜像和版本号是否正确。
    docker images | grep ascend-operator
    回显示例如下:
    1
    ascend-operator                      v7.0.RC1              c532e9d0889c        About an hour ago         137MB
    
  2. Ascend Operator软件包解压目录下的YAML文件,拷贝到K8s管理节点上任意目录。
  3. 如不修改组件启动参数,可跳过本步骤。否则,请根据实际情况修改YAML文件中Ascend Operator的启动参数。启动参数请参见表1,可执行./ascend-operator -h查看参数说明。
  4. (可选)使用Ascend Operator为训练任务生成通信集合配置文件(RankTable File,也叫hccl.json文件),缩短集群通信建链时间。使用其他框架的用户,可跳过本步骤。
    1. 启动YAML中已经默认挂载了hccl.json文件的父目录,用户可以根据实际情况进行修改。
      • 容器内Ranktable根目录路径需和宿主机Ranktable根目录路径保持一致。例如,宿主机路径为/user/mindx-dl/ranktable,则容器内挂载的路径也必须为/user/mindx-dl/ranktable。宿主机路径修改,则容器内挂载的路径也要同步修改。
      • Ranktable根目录文件夹权限,必须满足以下任意一个条件。
        • 所属的用户和用户组为hwMindX(集群调度组件默认的运行用户)。
        • Ranktable根目录文件夹权限为777。
      ...
              - name: ranktable-dir
                mountPath: /user/mindx-dl/ranktable
      ...
            volumes:
              - name: ascend-operator-log
                hostPath:
                  path: /var/log/mindx-dl/ascend-operator
                  type: Directory
              - name: ranktable-dir
                hostPath:
                  path: /user/mindx-dl/ranktable
                  type: DirectoryOrCreate                                #用于检查给定文件夹是否存在,若不存在,则会创建空文件夹。
      ...
    2. 执行以下命令,在父目录下创建hccl.json文件的具体挂载路径。
      mkdir -m 777 /user/mindx-dl/ranktable/
  5. 在管理节点的YAML所在路径,执行以下命令,启动Ascend Operator
    kubectl apply -f ascend-operator-v{version}.yaml

    启动示例如下:

    deployment.apps/ascend-operator-manager created
    serviceaccount/ascend-operator-manager created
    clusterrole.rbac.authorization.k8s.io/ascend-operator-manager-role created
    clusterrolebinding.rbac.authorization.k8s.io/ascend-operator-manager-rolebinding created
    customresourcedefinition.apiextensions.k8s.io/ascendjobs.mindxdl.gitee.com created
    ...
  6. 执行以下命令,查看组件是否启动成功。
    kubectl get pod -n mindx-dl

    回显示例如下,出现Running表示组件启动成功。

    1
    2
    3
    NAME                                         READY   STATUS    RESTARTS   AGE
    ...
    ascend-operator-7667495b6b-hwmjw      1/1    Running  0         11s
    

参数说明

表1 Ascend Operator启动参数

参数

类型

默认值

说明

-version

bool

false

是否查询Ascend Operator版本号。

  • true:查询。
  • false:不查询。

-logLevel

int

0

日志级别支持如下几种取值:

  • 取值为-1:debug
  • 取值为0:info
  • 取值为1:warning
  • 取值为2:error
  • 取值为3:critical

-maxAge

int

7

日志备份时间限制,取值范围为7~700,单位为天。

-logFile

string

/var/log/mindx-dl/ascend-operator/ascend-operator.log

日志文件。

说明:

单个日志文件超过20 MB时会触发自动转储功能,文件大小上限不支持修改。转储后文件的命名格式为:ascend-operator-触发转储的时间.log,如:ascend-operator-2023-10-07T03-38-24.402.log。

-maxBackups

int

30

转储后日志文件保留个数上限,取值范围为1~30,单位为个。

-enableGangScheduling

bool

true

是否启用“gang”策略调度,默认开启。开启时根据任务指定的调度器进行任务调度。“gang”策略调度说明请参见开源Volcano官方文档

  • true:启用“gang”策略调度。
  • false:不启用“gang”策略调度。

-isCompress

bool

false

当日志文件大小达到转储阈值时,是否对日志文件进行压缩转储(该参数后面将会弃用)。

  • true:压缩转储。
  • false:不压缩转储。

-kubeconfig

string

kubeconfig的路径,当程序运行于集群外时必须配置。

-kubeApiBurst

int

100

与K8s通信时使用的突发流量。取值范围为(0,10000],不在取值范围内使用默认值100。

-kubeApiQps

float32

50

与K8s通信时使用的QPS(每秒请求率)。取值范围为(0,10000],不在取值范围内使用默认值50。

-h或者-help

显示帮助信息。