【昇腾】Ascend Snt9B集合通信算子多机多卡性能测试
0. 环境描述
笔者使用2台华为云ModelArts弹性裸金属服务器-Ascend Snt9B服务器进行集合通信算子多机性能测试.
包括的集合通信算子: allreduce;reducescatter;allgather;all2all
选择的服务器镜像是: EulerOS-2.10-Arm-rc3-64bit-for-Snt9B-BareMetal-with-CANN7.0.RC1
该镜像已经安装CANN和mpich,并进行了环境配置,若选择其他镜像需要先配置环境,参考:【昇腾】Ascend Snt9B集合通信算子单机性能测试
1. 准备事项
a. 确保主节点已经配置了其他节点机器的免密登录
配置方法,参考:【昇腾】NPU Snt9B裸金属服务器多机免密互通解决方案
b. 确保mpirun的安装路径都是相同的
c. 确保设置的hostfile文件位于主节点中,且配置格式如下所示
# 训练节点ip:每节点的进程数
192.168.1.1:8
示例:
d. 确保所有节点的机器防火强都已关闭
# 查看防火墙状态
systemctl status firewalld
# 关闭防火墙
systemctl stop firewalld
2. 测试通信算子
在 主节点 中执行以下命令
export HCCL_BUFFSIZE=2048
环境变量HCCL_BUFFSIZE用于控制分布式业务场景下用于NPU之间通信的共享数据缓存区大小,单位为MB,默认值是200MB。 HCCL_BUFFSIZE 按照通信域粒度管理,即每个通信域拥有一份独立的数据共享缓冲区,保证通信域之间并发通信操作时的资源隔离。参考资料:
(2)测试通信算子alltoallvc时设置HCCL_BUFFSIZE提升性能
(3)调整HCCL_BUFFSIZE,平衡通信内存使用量与通信性能
2.1 多机all_reduce_test
cd /usr/local/Ascend/ascend-toolkit/latest/tools/hccl_test
(1) 多机多卡:mpirun -f hostfile -n 16 ./bin/all_reduce_test -b 8k -e 2048M -f 2 -d fp32 -o sum -p 8
2.2 多机reduce_scatter_test
cd /usr/local/Ascend/ascend-toolkit/latest/tools/hccl_test
(1) 多机多卡:mpirun -f hostfile -n 16 ./bin/reduce_scatter_test -b 8k -e 2048M -f 2 -d fp32 -o sum -p 8
2.3 多机all_gather_test
cd /usr/local/Ascend/ascend-toolkit/latest/tools/hccl_test
(1) 多机多卡:mpirun -f hostfile -n 16 ./bin/all_gather_test -b 8k -e 2048M -f 2 -d fp32 -p 8
2.4 多机alltoallv_test
cd /usr/local/Ascend/ascend-toolkit/latest/tools/hccl_test
(1) 多机多卡:mpirun -f hostfile -n 16 ./bin/alltoallv_test -b 8K -e 2048M -f 2 -d fp32
3. 参考资料
- 点赞
- 收藏
- 关注作者
评论(0)