(可选)使用Volcano交换机亲和性调度

Volcano组件支持交换机的亲和性调度。使用该功能需要上传交换机与服务器节点的对应关系以供Volcano使用,操作步骤如下。

当前只支持训练和推理任务进行整卡的交换机亲和性调度,不支持静态或动态vNPU调度。

操作步骤

  1. 准备部署环境的网络设计LLD文档,将其上传到K8s管理节点的任意目录(以“/home/tor-affinity”为例)。

    LLD文件名需要是lld.xlsx。

  2. 获取LLD文档解析脚本。

    进入MindXDL-deploy仓库,根据MindXDL-deploy开源仓版本说明进入版本对应分支。下载“training_toolkit/training_toolkit/utils”目录中的lld_to_cm.py文件,将该文件上传到管理节点步骤1中的目录下。

  3. 执行以下命令,启动“lld_to_cm.py”脚本。

    python ./lld_to_cm.py --num 32
    • 使用--num(或-n)子命令指定一个交换机下的节点个数,不指定该参数时默认取值为4。
    • 使用--level(或-l)子命令指定交换机组网类型,不指定该参数时默认取值为double_layer,取值说明如下。
      • single_layer:使用单层交换机组网。
      • double_layer:使用双层交换机组网。
    • 该脚本需要使用到openpyxl模块,如果安装环境缺少该模块,可以使用pip install openpyxl命令进行安装。

  4. 执行以下命令,检查ConfigMap是否创建成功。

    kubectl get cm -n kube-system basic-tor-node-cm

    回显示例如下,表示创建成功。

    1
    2
    NAME                DATA   AGE
    basic-tor-node-cm   1      8s
    

配置交换机亲和性调度

配置交换机的亲和性调度需要在任务YAML中配置tor-affinity参数,tor-affinity的位置和配置说明如下表所示。

表1 YAML参数说明

参数

取值

说明

(.kind=="AscendJob").metadata.labels.tor-affinity

  • large-model-schema:大模型任务或填充任务
  • normal-schema:普通任务
  • null:不使用交换机亲和性
    说明:

    用户需要根据任务副本数,选择任务类型。任务副本数小于4为填充任务。任务副本数大于或等于4为大模型任务。普通任务不限制任务副本数。

默认值为null,表示不使用交换机亲和性调度。用户需要根据任务类型进行配置。

说明:
  • 交换机亲和性调度1.0版本支持Atlas 训练系列产品Atlas A2 训练系列产品;支持PyTorchMindSpore框架。
  • 交换机亲和性调度2.0版本支持Atlas A2 训练系列产品;支持PyTorch框架。
  • 只支持整卡进行交换机亲和性调度,不支持静态vNPU进行交换机亲和性调度。