Volcano组件支持交换机的亲和性调度。使用该功能需要上传交换机与服务器节点的对应关系以供Volcano使用,操作步骤如下。
当前只支持训练和推理任务进行整卡的交换机亲和性调度,不支持静态或动态vNPU调度。
操作步骤
- 准备部署环境的网络设计LLD文档,将其上传到K8s管理节点的任意目录(以“/home/tor-affinity”为例)。
- 获取LLD文档解析脚本。
进入MindXDL-deploy仓库,根据MindXDL-deploy开源仓版本说明进入版本对应分支。下载“training_toolkit/training_toolkit/utils”目录中的lld_to_cm.py文件,将该文件上传到管理节点步骤1中的目录下。
- 执行以下命令,启动“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命令进行安装。
- 执行以下命令,检查ConfigMap是否创建成功。
kubectl get cm -n kube-system basic-tor-node-cm
回显示例如下,表示创建成功。
| 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 训练系列产品;支持PyTorch和MindSpore框架。
- 交换机亲和性调度2.0版本支持Atlas A2 训练系列产品;支持PyTorch框架。
- 只支持整卡进行交换机亲和性调度,不支持静态vNPU进行交换机亲和性调度。
|