开发者
资源

HCCL Controller

  • 使用整卡调度(训练)、静态vNPU调度(训练)、断点续训或弹性训练的用户,必须安装HCCL ControllerAscend Operator其中一种组件。

    如果使用Volcano组件作为调度器,需要先安装Volcano组件。

  • 仅使用容器化支持和资源监测、推理卡故障恢复或推理卡故障重调度的用户,可以不安装HCCL Controller,请直接跳过本章节。

操作步骤

  1. 以root用户登录K8s管理节点,并执行以下命令,查看HCCL Controller镜像和版本号是否正确。
    docker images | grep hccl-controller
    回显示例如下:
    hccl-controller                      v6.0.RC3              f78993dcf54f        About an hour ago         143MB
  2. HCCL Controller软件包解压目录下的yaml文件,拷贝到K8s管理节点上任意目录。
  3. 如不修改组件启动参数,可跳过本步骤。否则,请根据实际情况修改对应启动yaml文件中HCCL Controller的启动参数。启动参数请参见表1,可执行./hccl-controller -h查看参数说明。
  4. 在管理节点的yaml所在路径,执行以下命令,启动HCCL Controller
    kubectl apply -f hccl-controller-v{version}.yaml

    启动示例如下:

    serviceaccount/hccl-controller created
    clusterrole.rbac.authorization.k8s.io/pods-hccl-controller-role created
    clusterrolebinding.rbac.authorization.k8s.io/hccl-controller-rolebinding created
    deployment.apps/hccl-controller created
  5. 执行以下命令,查看组件是否启动成功。
    kubectl get pod -n mindx-dl

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

    NAME                               READY   STATUS    RESTARTS   AGE
    ...
    hccl-controller-5d484dcc68-wfvrr   1/1    Running   0          11s
    ...

参数说明

表1 HCCL Controller启动参数

参数

类型

默认值

说明

-jobParallelism

int

1

job任务的并发数,取值范围为1~32。

-podParallelism

int

1

Pod任务的并发数,取值范围为1~32。

-version

bool

false

是否查询HCCL Controller版本号。

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

-json

string

v2

HCCL Controller生成的ranktable文件模板。

  • v1:表示模板二。
  • v2:表示模板一。
说明:

模板格式说明,请参见《TensorFlow 1.15模型迁移指南》的“准备ranktable资源配置文件章节的“配置文件说明”。

-logLevel

int

0

日志级别:

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

-maxAge

int

7

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

-logFile

string

/var/log/mindx-dl/hccl-controller/hccl-controller.log

日志文件。

说明:

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

-maxBackups

int

30

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

-kubeApiQps

int

200

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

-kubeApiBurst

int

200

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

-h或者-help

显示帮助信息。