【昇腾】Ascend Snt9B集合通信算子单机多卡性能测试指导
0. 环境描述
笔者使用华为云ModelArts弹性裸金属服务器-Ascend Snt9B服务器进行集合通信算子性能测试.
包括的集合通信算子: allreduce;reducescatter;allgather;all2all
选择的服务器镜像是: EulerOS-2.10-Arm-rc3-64bit-for-Snt9B-BareMetal-with-CANN7.0.RC1
该镜像已经安装CANN和mpich,并进行了环境配置,若选择其他镜像需要先执行步骤1和2
1. 安装cann-toolkit
在主机中执行:
下载地址: https://www.hiascend.com/zh/developer/download/community/result?module=pt+tf+cann
./Ascend-cann-toolkit_6.3.T205_linux-aarch64.run --quiet --full
2. 安装mpich-3.2.1.tar.gz
在主机中执行:
下载地址: https://www.mpich.org/static/downloads/3.2.1/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
算子编译完成后显示内容:
3. 测试通信算子
执行以下命令
export HCCL_BUFFSIZE=2048
环境变量HCCL_BUFFSIZE用于控制分布式业务场景下用于NPU之间通信的共享数据缓存区大小,单位为MB,默认值是200MB。 HCCL_BUFFSIZE 按照通信域粒度管理,即每个通信域拥有一份独立的数据共享缓冲区,保证通信域之间并发通信操作时的资源隔离。参考资料:
(2)测试通信算子alltoallvc时设置HCCL_BUFFSIZE提升性能
(3)调整HCCL_BUFFSIZE,平衡通信内存使用量与通信性能
3.1 单机all_reduce_test
cd /usr/local/Ascend/ascend-toolkit/latest/tools/hccl_test
(1) 单机单卡:mpirun -n 1 ./bin/all_reduce_test -b 8 -e 1024M -f 2 -p 8
(2) 单机多卡:mpirun -n 8 ./bin/all_reduce_test -b 8 -e 2048M -f 2 -p 8
3.2 单机reduce_scatter_test
cd /usr/local/Ascend/ascend-toolkit/latest/tools/hccl_test
(1) 单机多卡:mpirun -n 8 ./bin/reduce_scatter_test -b 8K -e 2048M -f 2 -d fp32 -o sum -p 8
3.3 单机all_gather_test
cd /usr/local/Ascend/ascend-toolkit/latest/tools/hccl_test
(1) 单机多卡:mpirun -n 8 ./bin/all_gather_test -b 8K -e 2048M -f 2 -d fp32 -p 8
3.4 单机alltoallv_test
cd /usr/local/Ascend/ascend-toolkit/latest/tools/hccl_test
(1) 单机多卡:mpirun -n 8 ./bin/alltoallv_test -b 8K -e 2048M -f 2 -d fp32 -p 8
附. 昇腾一些常用命令
(1) 查看网卡状态UP和DOWN
for i in {0..7};do hccn_tool -i ${i} -link -g;done
(2) 查看单节点内网卡IP连通性
for i in $(seq 0 7);do hccn_tool -i $i -net_health -g;done
(3) 当某网卡已经开始roce带宽测试时,再次启动任务会报错如下,解决这个问题需要关闭roce_test任务.
hccn_tool -i 7 -roce_test reset
- 点赞
- 收藏
- 关注作者
评论(0)