AI开发平台MODELARTS-容器化个人调测环境搭建:步骤1:准备业务基础镜像

时间:2024-04-30 19:22:38

步骤1:准备业务基础镜像

当前推荐的开发模式是在物理机上启动自己的docker容器进行开发。容器镜像可以使用自己的实际业务镜像,也可以使用ModelArts提供的基础镜像,ModelArts提供两种基础镜像:Ascend+PyTorch镜像、Ascend+Mindspore镜像。

  1. 根据所需要的环境拉取镜像。

    • 拉取Ascend+PyTorch镜像:
      # 配套Snt9b的容器镜像,包含pytorch 1.11 + mindspore-lite 2.2.0 + Ascend CANN Toolkit 7.0.1
      docker pull swr.cn-southwest-2.myhuaweicloud.com/atelier/pytorch_1_11_ascend:pytorch_1.11.0-cann_7.0.1-py_3.9-euler_2.10.7-aarch64-snt9b-20231107190844-50a1a83
    • 拉取Ascend+Mindspore镜像:
      # 配套Snt9b的容器镜像,包含mindspore 2.2.0 + mindspore-lite 2.2.0 + Ascend CANN Toolkit 7.0.1
      docker pull swr.cn-southwest-2.myhuaweicloud.com/atelier/mindspore_2_2_ascend:mindspore_2.2.0-cann_7.0.1-py_3.9-euler_2.10.7-aarch64-snt9b-20231107190844-50a1a83

  2. 启动容器镜像,注意多人多容器共用机器时,需要将卡号做好预先分配,不能使用其他容器已使用的卡号:

    #  启动容器,请注意指定容器名称、镜像信息。ASCEND_VISIBLE_DEVICES指定容器要用的卡,0-1,3代表0 1 3这3块卡,-用于指定范围
    # -v /home:/home_host是指将宿主机home目录挂载到容器home_host目录,建议在容器中使用该挂载目录进行代码和数据的存储以便持久化
    docker run -itd --cap-add=SYS_PTRACE -e ASCEND_VISIBLE_DEVICES=0  -v /home:/home_host -p 51234:22 -u=0 --name 自定义容器名称  上一步拉取的镜像SWR地址  /bin/bash

  3. 进入容器:

    docker exec -ti 上一命令中的自定义容器名称 bash

  4. 进入conda环境:

    source /home/ma-user/.bashrc
    cd ~

  5. 查看容器中可以使用的卡信息:

    npu-smi info
    如果命令报如下错误,则代表容器启动时指定的“ASCEND_VISIBLE_DEVICES”卡号已被其他容器占用,此时需要重新选择卡号并重新启动新的容器。
    图1 报错信息

  6. npu-smi info检测正常后,可以执行一段命令进行简单的容器环境测试,能正常输出运算结果代表容器环境正常可用。

    • pytorch镜像测试:
      python3 -c "import torch;import torch_npu; a = torch.randn(3, 4).npu(); print(a + a);"
    • mindspore镜像测试:
      # 由于mindspore的run_check程序当前未适配Snt9b,需要先设置2个环境变量才能测试
      unset MS_GE_TRAIN 
      unset MS_ENABLE_GE
      python -c "import mindspore;mindspore.set_context(device_target='Ascend');mindspore.run_check()"
      # 测试完需要恢复环境变量,实际跑训练业务的时候需要用到
      export MS_GE_TRAIN=1
      export MS_ENABLE_GE=1
    图2 进入conda环境并进行测试

support.huaweicloud.com/usermanual-modelarts-lite/usermanual-modelarts-lite-1002.html