简介
昇腾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进行配置
安装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
示例:
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