准备任务YAML

如果用户不使用Ascend Docker Runtime组件,Ascend Device Plugin只会帮助用户挂载“/dev”目录下的设备。其他目录(如“/usr”)用户需要自行修改YAML文件,挂载对应的驱动目录和文件。容器内挂载路径和宿主机路径保持一致。

因为Atlas 200I SoC A1 核心板场景不支持Ascend Docker Runtime,用户也无需修改YAML文件。

操作步骤

  1. 下载YAML文件。

    表1 任务类型与硬件型号对应YAML文件

    任务类型

    硬件型号

    YAML文件路径

    获取链接

    Volcano调度的Deployment任务

    Atlas 200I SoC A1 核心板

    infer-deploy-310p-1usoc.yaml

    获取YAML

    其他类型推理节点

    infer-deploy.yaml

    Volcano Job任务

    Atlas 800I A2 推理服务器

    A200I A2 Box 异构组件

    Atlas 800I A3 超节点服务器

    infer-vcjob-910.yaml

    获取YAML

    Ascend Job任务

    推理服务器(插Atlas 300I Duo 推理卡

    pytorch_multinodes_acjob_infer_310p_with_ranktable.yaml

    获取YAML

    Atlas 800I A2 推理服务器

    A200I A2 Box 异构组件

    Atlas 800I A3 超节点服务器

    pytorch_multinodes_acjob_infer_{xxx}b_with_ranktable.yaml

    获取YAML

    Volcano支持Job类型任务,但是Job类型任务的YAML需要用户自行根据示例YAML修改适配。

  2. 整卡调度或者动态vNPU调度的YAML配置基础上,增加如下加粗字段启用重调度功能,以整卡调度的infer-deploy.yaml为例。

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: resnetinfer1-1-deploy
      labels:
          app: infers
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: infers
      template:
        metadata:
          labels:
    ...
             fault-scheduling: grace               # 添加该字段
             ring-controller.atlas: ascend-310   # 添加该字段
        spec:
          schedulerName: volcano
          nodeSelector:
            host-arch: huawei-arm           # Select the os arch. If the os arch is arm, change it to huawei-x86.
    ...
    表2 fault-scheduling配置项值列表

    参数

    取值

    含义

    fault-scheduling

    grace

    任务使用重调度开关,并在过程中先优雅删除原Pod。

    force

    配置任务采用强制删除模式,在过程中强制删除原Pod

    ring-controller.atlas

    • 推理服务器(插Atlas 300I 推理卡):ascend-310
    • Atlas 推理系列产品:ascend-310P
    • Atlas 800I A2 推理服务器A200I A2 Box 异构组件Atlas 800I A3 超节点服务器:ascend-{xxx}b

    用于校验任务使用的芯片类型。

  3. 挂载权重文件。

    ...
                  ports:     # 分布式训练集合通信端口
                    - containerPort: 2222      
                      name: ascendjob-port      
                  resources:
                    limits:
                      huawei.com/Ascend310P: 1   # 申请的芯片数
                    requests:
                      huawei.com/Ascend310P: 1   #与limits取值一致
                  volumeMounts:
    ...
                      # 权重文件挂载路径
                    - name: weights                  
                      mountPath: /path-to-weights
    ...
              volumes:
    ...
                # 权重文件挂载路径
                - name: weights
                  hostPath:
                    path: /path-to-weights  # 共享存储或者本地存储路径,请根据实际情况修改
    ...

    /path-to-weights为模型权重,需要用户自行准备。mindie镜像可以参考镜像中$ATB_SPEED_HOME_PATH/examples/models/llama3/README.md文件中的说明进行下载。

  4. 修改所选YAML中的容器启动命令,示例如下加粗部分,如果没有则添加“command”字段。

    ...
          containers:
          - image: ubuntu-infer:v1
    ...
            command: ["/bin/bash", "-c", "cd $ATB_SPEED_HOME_PATH; python examples/run_pa.py --model_path /path-to-weights"]
            resources:
              requests:
    ...