更新时间:2024-12-19 GMT+08:00

Lite Cluster资源配置流程

本章节介绍Lite Cluster环境配置详细流程,适用于加速卡环境配置。

前提条件

配置流程

图1 Lite Cluster资源配置流程图
表1 Cluster资源配置流程

配置顺序

配置任务

场景说明

1

配置Lite Cluster网络

购买资源池后,需要弹性公网IP并进行网络配置,配置网络后可通过公网访问集群资源。

2

配置kubectl工具

kubectl是Kubernetes集群的命令行工具,配置kubectl后,您可通过kubectl命令操作Kubernetes集群。

3

配置Lite Cluster存储

如果没有挂载任何外部存储,此时可用存储空间根据dockerBaseSize的配置来决定,可访问的存储空间比较小,因此建议通过挂载外部存储空间解决存储空间受限问题。容器中挂载存储有多种方式,不同的场景下推荐的存储方式不一样,您可根据业务实际情进行选择。

4

(可选)配置驱动

当专属资源池中的节点含有GPU/Ascend资源时,为确保GPU/Ascend资源能够正常使用,需要配置好对应的驱动。如果在购买资源池时,没配置自定义驱动,默认驱动不满足业务要求,可通过本章节将驱动升级到指定版本。

5

(可选)配置镜像预热

Lite Cluster资源池支持镜像预热功能,镜像预热可实现将镜像提前在资源池节点上拉取好,在推理及大规模分布式训练时有效缩短镜像拉取时间。

快速配置Lite Cluster资源案例

下文提供一个快速配置的案例,配置完成后您可登录到节点查看加速卡信息并完成一个训练任务。在运行此案例前,您需要购买资源,购买资源的步骤请参考Lite Cluster资源开通

  1. 登录节点。

    (推荐)方式1:通过绑定公网IP的方式

    客户可以为需要登录的节点绑定公网IP,然后可以通过Xshell、MobaXterm等bash工具登录节点。

    1. 使用华为云账号登录CCE管理控制台。
    2. 在CCE集群详情页面,单击“节点管理”页签,在“节点”页签中单击需要登录的节点名称,跳转至弹性云服务器页面。
      图2 节点管理

    3. 绑定弹性公网IP。
      若已有未绑定的弹性公网IP,直接选择即可。如果没有可用的弹性公网IP,需要先购买弹性公网IP。
      图3 弹性公网IP

      单击“购买弹性公网IP”,进入购买页。
      图4 绑定弹性公网IP
      图5 购买弹性公网IP

      完成购买后,返回弹性云服务器页面,刷新列表。

      选择刚才创建的弹性公网IP,单击“确定”。
      图6 绑定弹性公网IP

    4. 绑定完成后,通过MobaXterm、Xshell登录。以MobaXterm为例,填入弹性公网IP,登录节点。
      图7 登录节点

    方式2:通过华为云自带的远程登录功能

    1. 使用华为云账号登录CCE管理控制台。
    2. 在CCE集群详情页面,单击“节点管理”页签,在“节点”页签中单击需要登录的节点名称,跳转至弹性云服务器页面。
      图8 节点管理

    3. 单击“远程登录”,在弹出的窗口中,单击“CloudShell登录”。
      图9 远程登录

    4. 在CloudShell中设置密码等参数后,单击“连接”即可登录节点,CloudShell介绍可参见远程登录Linux弹性云服务器(CloudShell方式)

  2. 配置kubectl工具。

    登录ModelArts管理控制台,在左侧菜单栏中选择AI专属资源池 > 弹性集群 Cluster,进入“弹性集群 Cluster”页面。

    单击创建的专属资源池,进入专属资源池详情页面,单击对应的CCE集群,进入CCE集群详情页面。

    在CCE集群详情页面中,在集群信息中找到“连接信息”。
    图10 链接信息

    使用kubectl工具。
    • 若通过内网使用kubectl工具,需要将kubectl工具安装在和集群在相同vpc下的某一台机器上。单击连接信息下kubectl后的“配置”按钮,根据界面提示使用kubectl工具。
      图11 通过内网使用kubectl工具
    • 通过公网使用kubectl工具,可以将kubectl安装在任一台可以访问公网的机器。
      首先需要绑定公网地址,单击公网地址后的“绑定”按钮。
      图12 绑定公网地址

      选择公网IP后单击“确定”,完成公网IP绑定。如果没有可选的公网IP,单击“创建弹性IP”跳至弹性公网IP页面进行创建。

      绑定完成后,单击连接信息下kubectl后的“配置”按钮,根据界面提示使用kubectl工具。

  3. docker run方式启动任务。

    Snt9B集群在纳管到CCE集群后,会安装容器运行时,下文以docker举例。仅做测试验证,可以不需要通过创建deployment或者volcano job的方式,直接启动容器进行测试。训练测试用例使用NLP的bert模型。

    1. 拉取镜像。本测试镜像为bert_pretrain_mindspore:v1,已经把测试数据和代码打进镜像中。
      docker pull swr.cn-southwest-2.myhuaweicloud.com/os-public-repo/bert_pretrain_mindspore:v1
      docker tag swr.cn-southwest-2.myhuaweicloud.com/os-public-repo/bert_pretrain_mindspore:v1 bert_pretrain_mindspore:v1
    2. 启动容器。
      docker run -tid --privileged=true \
      -u 0 \
      -v /dev/shm:/dev/shm \
      --device=/dev/davinci0 \
      --device=/dev/davinci1 \
      --device=/dev/davinci2 \
      --device=/dev/davinci3 \
      --device=/dev/davinci4 \
      --device=/dev/davinci5 \
      --device=/dev/davinci6 \
      --device=/dev/davinci7 \
      --device=/dev/davinci_manager \
      --device=/dev/devmm_svm \
      --device=/dev/hisi_hdc \
      -v /usr/local/Ascend/driver:/usr/local/Ascend/driver  \
      -v /usr/local/sbin/npu-smi:/usr/local/sbin/npu-smi \
      -v /etc/hccn.conf:/etc/hccn.conf \
      bert_pretrain_mindspore:v1 \
      bash

      参数含义:

      • --privileged=true //特权容器,允许访问连接到主机的所有设备
      • -u 0 //root用户
      • -v /dev/shm:/dev/shm //防止shm太小训练任务失败
      • --device=/dev/davinci0 //npu卡设备
      • --device=/dev/davinci1 //npu卡设备
      • --device=/dev/davinci2 //npu卡设备
      • --device=/dev/davinci3 //npu卡设备
      • --device=/dev/davinci4 //npu卡设备
      • --device=/dev/davinci5 //npu卡设备
      • --device=/dev/davinci6 //npu卡设备
      • --device=/dev/davinci7 //npu卡设备
      • --device=/dev/davinci_manager //davinci相关的设备管理的设备
      • --device=/dev/devmm_svm //管理设备
      • --device=/dev/hisi_hdc //管理设备
      • -v /usr/local/Ascend/driver:/usr/local/Ascend/driver //npu卡驱动挂载
      • -v /usr/local/sbin/npu-smi:/usr/local/sbin/npu-smi //npu-smi工具挂载
      • -v /etc/hccn.conf:/etc/hccn.conf //hccn.conf配置挂载
    3. 进入容器,并查看卡信息。
      docker exec -it xxxxxxx bash    //进入容器,xxxxxxx替换为容器id
      npu-smi info    //查看卡信息
      图13 查看卡信息
    4. 执行下述命令启动训练任务。
      cd /home/ma-user/modelarts/user-job-dir/code/bert/
      export MS_ENABLE_GE=1
      export MS_GE_TRAIN=1
      bash scripts/run_standalone_pretrain_ascend.sh 0 1 /home/ma-user/modelarts/user-job-dir/data/cn-news-128-1f-mind/
      图14 训练进程

      查看卡占用情况,如图所示,此时0号卡被占用,说明进程正常启动。

      npu-smi info    //查看卡信息
      图15 查看卡信息

      训练任务大概会运行两小时左右,训练完成后自动停止。若想停止训练任务,可执行下述命令关闭进程,查询进程后显示已无运行中python进程。

      pkill -9 python
      ps -ef
      图16 关闭训练进程