NPU Snt9B集合通信算子多机多卡性能测试指导
场景描述
本文介绍如何使用在2台NPU Snt9B服务器上进行集合通信算子多机性能测试,包括的集合通信算子:allreduce、reducescatter、allgather、all2all。
本文选择的服务器镜像是:EulerOS-2.10-Arm-rc3-64bit-for-Snt9B-BareMetal-with-CANN7.0.RC1。该镜像已经安装CANN和mpich,并进行了环境配置,若选择其他镜像需要先执行步骤1和2。
前提条件
- 确保主节点已经配置了其他节点机器的免密登录,配置方法参考NPU Snt9B裸金属服务器多机免密互通解决方案。
- 确保mpirun的安装路径都是相同的。
- 确保设置的hostfile文件位于主节点中,且配置格式如下所示。
# 训练节点ip:每节点的进程数 192.168.1.1:8
图1 示例 - 确保所有节点的机器防火强都已关闭
# 查看防火墙状态 systemctl status firewalld # 关闭防火墙 systemctl stop firewalld
操作步骤
- 安装cann-toolkit。下载Ascend-cann-toolkit_6.3.T205_linux-aarch64.run,并执行:
./Ascend-cann-toolkit_6.3.T205_linux-aarch64.run --quiet --full
- 安装mpich-3.2.1.tar.gz。下载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/hjh/mpich/bin:$PATH cd /usr/local/Ascend/ascend-toolkit/latest/tools/hccl_test export LD_LIBRARY_PATH=/home/hjh/mpich/lib/:/usr/local/Ascend/ascend-toolkit/latest/lib64:$LD_LIBRARY_PATH make MPI_HOME=/home/hjh/mpich ASCEND_DIR=/usr/local/Ascend/ascend-toolkit/latest
算子编译完成后显示内容:
图2 算子编译完成 - 测试通信算子。在主节点中执行以下命令。
- 多机all_reduce_test
cd /usr/local/Ascend/ascend-toolkit/latest/tools/hccl_test
多机多卡测试执行如下命令:
mpirun -f hostfile -n 16 ./bin/all_reduce_test -b 8k -e 2048M -f 2 -d fp32 -o sum -p 8
图3 多机all_reduce_test - 多机reduce_scatter_test
cd /usr/local/Ascend/ascend-toolkit/latest/tools/hccl_test
多机多卡测试执行如下命令:
mpirun -f hostfile -n 16 ./bin/reduce_scatter_test -b 8k -e 2048M -f 2 -d fp32 -o sum -p 8
图4 多机reduce_scatter_test - 多机all_gather_test
cd /usr/local/Ascend/ascend-toolkit/latest/tools/hccl_test
多机多卡测试执行如下命令:
mpirun -f hostfile -n 16 ./bin/all_gather_test -b 8k -e 2048M -f 2 -d fp32 -p 8
图5 多机all_gather_test - 多机alltoallv_test
cd /usr/local/Ascend/ascend-toolkit/latest/tools/hccl_test
多机多卡测试执行如下命令:
mpirun -f hostfile -n 16 ./bin/alltoallv_test -b 8K -e 2048M -f 2 -d fp32
图6 多机alltoallv_test
- 多机all_reduce_test