昇腾910B ATLAS 300 A2 计算卡开箱检验与集群通信使能指南

简介

昇腾910B通过卡上AICPU内置的NIC与集群中的其他卡进行通信,其中通信协议是,集合通信库( Huawei Collective Communication Library ,简称HCCL)是基于昇腾硬件的高性能集合通信库,提供单机多卡以及多机多卡间的数据并行、模型并行集合通信方案。HCCL支持AllReduce、Broadcast、Allgather、ReduceScatter、AlltoAll等通信原语,Ring、Mesh、HD等通信算法,在HCCS、RoCE和PCIe高速链路实现集合通信。

开箱检验

在获取到910B的裸金属服务器或者容器后,先进行设备检查

设备检验

lspci | grep d802

加入能识别到8张加速卡后,进入昇腾官网

社区版资源下载-资源下载中心-昇腾社区

下载安装固件包与驱动包

根据指导手册,首先更新卡的firmware包,然后安装driver包

社区版-固件与驱动-昇腾社区

首先确定产品型号不变,ALTAS 300T A2,然后根据需要安装的cann包版本与cpu架构选择固件包与驱动包

  • Ascend-hdk-910b-npu-driver_开头的为系统驱动包
  • Ascend-hdk-910b-npu-firmware_xxx格式的为固件包

先装固件包,后装驱动包

安装cann包与kernal包

安装完成后,再进行cann包与kernal包的安装

社区版资源下载-资源下载中心-昇腾社区

  • Ascend-cann-toolkit_xxx的为cann包
  • Ascend-cann-kernals-910b_xxx的为kernal包

先安装cann包再安装kernal包

安装后检验

装好上述版本后,输入

npu-smi info

即可看到如下显示

那卡基本就可以正常使用了,如果有疑虑可以安装mindx-toolbox,使用其中的ascend-dmi 命令行工具进行卡本身的性能检测

简介-Ascend DMI工具-ToolBox-MindX DL6.0.RC3开发文档-昇腾社区

通信算子测试环境安装

通信环境检测

 查看节点内NPU上的网卡状态UP和DOWN

for i in {0..7};do hccn_tool -i ${i} -link -g;done

查看单节点内NPU网卡IP连通性

for i in $(seq 0 7);do hccn_tool -i $i -net_health -g;done

假设上述命令有报错,说明机器NPU网口未互联,无法进行多机测试

假如物理网口已经链接

可以参考下面文章对NPU IP进行配置

昇腾多卡通信教程【配置网络检测对象IP】 - 技术栈

安装mpich-3.2.1.tar.gz

下载地址

 https://www.mpich.org/static/downloads/3.2.1/mpich-3.2.1.tar.gz

安装mpich

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

配置环境

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

测试单机通信算子

单机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

单机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

单机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

 单机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

多机通信算子测试

 准备事项

a. 确保主节点已经配置了其他节点机器的免密登录

   配置方法,参考:【昇腾】NPU Snt9B裸金属服务器多机免密互通解决方案

b. 确保mpirun的安装路径都是相同的

c. 确保设置的hostfile文件位于主节点中,且配置格式如下所示

# 训练节点ip:每节点的进程数
192.168.1.1:8

示例:

5.png

d. 确保所有节点的机器防火强都已关闭

# 查看防火墙状态
systemctl status firewalld
# 关闭防火墙
systemctl stop firewalld

2. 测试通信算子

在 主节点 中执行以下命令

export HCCL_BUFFSIZE=2048

环境变量HCCL_BUFFSIZE用于控制分布式业务场景下用于NPU之间通信的共享数据缓存区大小,单位为MB,默认值是200MB。 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

华为HCCL(Huawei Collective Communication Library)作为一个高效的集合通信库,专为分布式计算环境设计,其优势体现在以下几个方面: 参考资源链接:[华为HCCL源码分析:网络通信的开源力量](https://wenku.csdn.net/doc/2jh1obto92?spm=1055.2569.3001.10343) 首先,HCCL利用华为Ascend系列AI处理器的硬件特性,通过优化底层通信算法和数据传输机制,实现了快速的消息传递。在分布式环境中,多个节点需要高效地交换数据,HCCL通过减少数据传输时间,直接提升了整体计算性能。 其次,HCCL提供了易于使用的API接口,抽象了底层的网络通信细节,使得开发并行程序时不需要关注复杂的通信模式实现。这样,程序员可以专注于业务逻辑的实现,而将通信细节交给HCCL处理,从而减少开发难度和错误率。 此外,HCCL支持多种集合通信模式,如点对点通信、广播、规约、收集等,以及更高级的通信算法,这些模式针对不同的应用场景进行了优化。例如,在机器学习训练过程中,需要频繁地在多个计算节点间同步参数,HCCL能够以更低的开销实现这一过程。 在版本兼容性和依赖关系方面,华为HCCL的开源特性使得开发者能够根据自己的系统环境选择合适的版本,并对源码进行定制化开发和性能调优。这不仅降低了门槛,也促进了社区的贡献和技术创新。 最后,HCCL的设计考虑了分布式系统的扩展性和容错性,使得在大规模节点间通信时,依然能够保持较高的效率和稳定性。这种设计有助于在云计算和大数据分析等场景中,实现可伸缩的高性能计算。 对于想要深入了解HCCL源码实现细节和优化策略的开发者,推荐参阅《华为HCCL源码分析:网络通信的开源力量》一书。该书不仅提供了源码分析,还包括了HCCL在分布式计算环境中的优势以及如何利用这些优势提升计算性能的详细介绍,是深入学习HCCL的理想资源。 参考资源链接:[华为HCCL源码分析:网络通信的开源力量](https://wenku.csdn.net/doc/2jh1obto92?spm=1055.2569.3001.10343)
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

aosudh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值