华为云AI开发平台ModelArts物理机环境配置_云淘科技
步骤1:配置超时参数
SSH登录到机器后,查看机器配置的超时参数:
echo $TMOUT
如果该值为300,则代表默认空闲等待5分钟后会断开连接,可以增大该参数延长空闲等待时间(若值已经为0可跳过该步骤)。修改方法如下:
vim /etc/profile # 在文件最后修改TMOUT值,由300改为0,0表示不会空闲断开 export TMOUT=0
执行命令使其在当前terminal生效:
TMOUT=0
步骤2:磁盘合并挂载
成功购买裸金属服务器后,服务器上可能会有多个未挂载的nvme磁盘。因此在首次配置环境前,需要完成磁盘合并挂载。此操作需要放在最开始完成,避免使用一段时间后再挂载会冲掉用户已存储的内容。
首先通过“lsblk”查看是否有3个7T的磁盘未挂载,如下图所示为未挂载。
图1 磁盘未挂载
若是下图所示,每个盘后已有MOUNTPOINT,则代表已经执行过挂载操作,可跳过此章节,只用直接在/home目录下创建自己的个人开发目录即可。
图2 磁盘已挂载
执行自动化挂载脚本,将“/dev/nvme0n1”挂载在“/home”下供每个开发者创建自己的家目录,另两个合并挂载到“/docker”下供容器使用(如果不单独给“/docker”分配较大空间,当多人共用创建多个容器实例时容易将根目录占满)。
cd /root/tools/ sh create_disk_partitions.sh
配置完成后,执行“df -h”可以看到新挂载的磁盘信息。
图3 查看新挂载的磁盘
磁盘合并挂载后,即可在“/home”下创建自己的工作目录,以自己的名字命名。
步骤3:(可选)安装固件和驱动
查看环境信息。查看当前拿到的机器的固件和驱动版本:
npu-smi info -t board -i 1 | egrep -i "software|firmware"
图4 查看固件和驱动版本
其中firmware代表固件版本,software代表驱动版本,当前昇腾商用发布的最新版本为上图所示的版本,可以不用执行本章节后续的固件驱动安装步骤。
如果机器上的版本不是所需的版本(例如需要换成社区最新调测版本),可以参考后续步骤进行操作。
查看机器操作系统版本,以及架构是aarch64还是x86_64,并从昇腾官网获取相关的固件驱动包。固件包名称为“Ascend-hdk-910b-npu-firmware_版本号.run”,驱动包名称为“Ascend-hdk-910b-npu-driver_版本号_linux-aarch64.run”,商用版是权限受控,仅华为工程师和渠道用户有权限下载,下载地址请见固件驱动包下载链接
arch cat /etc/os-release
图5 查看机器操作系统版本及架构
下文均以适配EulerOS 2.0(SP10)和aarch64架构的包为例来进行讲解。
安装固件和驱动包。
首先检查npm-smi工具是否可以正常使用,该工具必须能正常使用才能继续后面的固件驱动安装,完整输出下图内容则为正常。
如果命令未按照下图完整输出(比如命令报错或只输出了上半部分没有展示下面的进程信息),则需要先尝试恢复npu-smi工具,将npu-smi恢复后,再进行新版本的固件驱动安装。
图6 检查npm-smi工具
工具检查正常后,进行固件和驱动安装。
固件和驱动安装时,注意安装顺序:
首次安装场景:硬件设备刚出厂时未安装驱动,或者硬件设备前期安装过驱动固件但是当前已卸载,上述场景属于首次安装场景,需按照“驱动->固件”的顺序安装驱动固件。
覆盖安装场景:硬件设备前期安装过驱动固件且未卸载,当前要再次安装驱动固q件,此场景属于覆盖安装场景,需按照“固件->驱动”的顺序安装固件驱动。
通常Snt9b出厂机器有预装固件驱动,因此本案例中是“覆盖安装场景”,注意:
如果新装的固件驱动比环境上已有的版本低,只要npu-smi工具可用,也是直接装新软件包即可,不用先卸载环境上已有的版本。
如果固件驱动安装失败,可先根据报错信息在开发者社区搜索解决方案。
安装命令如下:
安装固件,安装完后需要reboot重启机器:
chmod 700 *.run # 注意替换成实际的包名 ./Ascend-hdk-910b-npu-firmware_6.4.12.1.241.run --full reboot
安装驱动,提示处输入“y”,安装完后直接生效不用重启机器:
# 注意替换成实际的包名 ./Ascend-hdk-910b-npu-driver_23.0.rc2_linux-aarch64.run --full --install-for-all
安装完成后,检查固件和驱动版本,正常输出代表安装成功:
npu-smi info -t board -i 1 | egrep -i "software|firmware"
图7 检查固件和驱动版本
步骤4:安装docker环境
先执行“docker -v”检查机器是否已安装docker,若已安装,则可跳过此步骤。
安装docker命令如下:
yum install -y docker-engine.aarch64 docker-engine-selinux.noarch docker-runc.aarch64
使用docker -v检查是否安装成功:
图8 查看docker版本
配置IP转发,用于容器内的网络访问。执行下述命令查看net.ipv4.ip_forward配置项值,如果为1,可跳过此步骤。
sysctl -p | grep net.ipv4.ip_forward
如果不为1,进行配置:
sed -i 's/net\.ipv4\.ip_forward=0/net\.ipv4\.ip_forward=1/g' /etc/sysctl.conf sysctl -p | grep net.ipv4.ip_forward
查看环境是否已安装并配置Ascend-docker-runtime:
docker info |grep Runtime
如果输出的runtime为“ascend”,则代表已安装配置好,可跳过此步骤。
图9 Ascend-docker-runtime查询
若未安装,则点击链接下载社区版Ascend Docker Runtime,该软件包是昇腾提供的docker插件,在docker run时可以自动挂载昇腾driver等路径到容器,无需在启动容器时手工指定–device参数。下载好后将包上传到服务器并进行安装。
chmod 700 *.run ./Ascend-docker-runtime_5.0.RC2_linux-aarch64.run --install
关于Ascend Docker Runtime的更多使用指导,请参考Ascend Docker Runtime用户指南。
将新挂载的盘设置为docker容器使用路径。
编辑“/etc/docker/daemon.json”文件内容,如果文件不存在则新建即可。
vim /etc/docker/daemon.json
增加如下两项配置,注意insecure-registries行末尾增加一个逗号,保持json格式正确。其中“data_root”代表docker数据存储路径,“default-shm-size”代表容器启动默认分配的共享内容大小,不配置时默认为64M,可以根据需要改大,避免分布式训练时共享内存不足导致训练失败。
图10 docker配置
保存后,执行如下命令重启docker使配置生效:
systemctl daemon-reload && systemctl restart docker
步骤5:(可选)安装pip
执行如下命令检查是否已安装pip且pip源正常访问,如果能正常执行,可跳过此章节:
pip install numpy
若物理机上没有安装pip,可执行如下命令安装:
python -m ensurepip --upgrade ln -s /usr/bin/pip3 /usr/bin/pip
配置pip源。
mkdir -p ~/.pip vim ~/.pip/pip.conf
在“~/.pip/pip.conf”中写入如下内容:
[global] index-url = http://mirrors.myhuaweicloud.com/pypi/web/simple format = columns [install] trusted-host=mirrors.myhuaweicloud.com
步骤6:RoCE网络测试
安装cann-toolkit。
查看服务器是否已安装CANN Toolkit,如果显示有版本号则已安装:
cat /usr/local/Ascend/ascend-toolkit/latest/aarch64-linux/ascend_toolkit_install.info
如果未安装,则需要从官网下载相关软件包,其中社区版可以直接下载(下载地址),商用版是权限受控,仅华为工程师和渠道用户有权限下载(下载链接)。
安装CANN Toolkit,注意替换包名。
chmod 700 *.run ./Ascend-cann-toolkit_6.3.RC2_linux-aarch64.run --full --install-for-all
安装mpich-3.2.1.tar.gz。
点击此处下载,并执行以下命令安装:
mkdir -p /home/mpich mv /root/mpich-3.2.1.tar.gz /home/ cd /home/;tar -zxvf mpich-3.2.1.tar.gz cd /home/mpich-3.2.1 ./configure --prefix=/home/mpich --disable-fortran make && make install
设置环境变量和编译hccl算子。
export PATH=/home/mpich/bin:$PATH cd /usr/local/Ascend/ascend-toolkit/latest/tools/hccl_test export LD_LIBRARY_PATH=/home/mpich/lib/:/usr/local/Ascend/ascend-toolkit/latest/lib64:$LD_LIBRARY_PATH make MPI_HOME=/home/mpich ASCEND_DIR=/usr/local/Ascend/ascend-toolkit/latest
算子编译完成后显示内容如下:
图11 算子编译完成
单机all_reduce_test。
进入hccl_test目录:
cd /usr/local/Ascend/ascend-toolkit/latest/tools/hccl_test
若是单机单卡,则执行:
mpirun -n 1 ./bin/all_reduce_test -b 8 -e 1024M -f 2 -p 8
若是单机多卡,则执行:
mpirun -n 8 ./bin/all_reduce_test -b 8 -e 1024M -f 2 -p 8
图12 all_reduce_test
多机ROCE网卡带宽测试。
执行以下命令查看昇腾的RoCE IP:
cat /etc/hccn.conf
图13 查看昇腾的RoCE IP
RoCE测试。
在Session1:在接收端执行 -i 卡id。
hccn_tool -i 7 -roce_test reset hccn_tool -i 7 -roce_test ib_send_bw -s 4096000 -n 1000 -tcp
在Session2:在发送端执行 -i 卡id,后面的ip为上一步接收端卡的ip。
cd /usr/local/Ascend/ascend-toolkit/latest/tools/hccl_test hccn_tool -i 0 -roce_test reset hccn_tool -i 0 -roce_test ib_send_bw -s 4096000 -n 1000 address 29.89.96.167 -tcp
RoCE测试结果如图:
图14 RoCE测试结果(接收端)
图15 RoCE测试结果(服务端)
当某网卡已经开始RoCE带宽测试时,再次启动任务会有如下报错:
图16 报错信息
需要执行下述命令后关闭roce_test任务后再启动任务。
hccn_tool -i 7 -roce_test reset
可执行如下命令查看网卡状态。
for i in {0..7};do hccn_tool -i ${i} -link -g;done
可执行如下命令查看单节点内网卡IP连通性。
for i in $(seq 0 7);do hccn_tool -i $i -net_health -g;done
父主题: NPU Snt9B裸金属服务器环境配置
同意关联代理商云淘科技,购买华为云产品更优惠(QQ 78315851)
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家