一. HCCL 介绍
HCCL:Huawei Collective Communication Library,即华为集合通信库,为昇腾分布式集群训练推理提供数据/模型并行的高性能集合通信方案。
RoCE(RDMA over Converged Ethernet)协议是一种能在以太网上进行RDMA(远程内存直接访问)的集群网络通信协议,它大大降低了以太网通信的延迟,提高了带宽的利用率。
HCCS,Huawei Cache Coherence System,华为缓存一致性系统,当前主要用于鲲鹏CPU/昇腾NPU片间高速互联。
特性 |
HCCL |
通信算法 |
ring / mesh + ring/HD/pair-wise/etc. |
通信链路(协议) |
NPU网卡:NIC/RoCE |
HCCS(Huawei Cache Coherent System)/PCIe |
|
通信操作 |
allreduce / broadcast / reduce reducescatter / allgather / all2allv / send / recv |
通信域管理 |
全局通信域 子通信域 基于全局/子通信域配置算法 |
二. HCCL集群部署、集群维测实战使用
1.单机硬件压测: 测试CPU、内存、硬盘、NPU等硬件性能
常用指令:ascend-dmi --dg -i aicore -q
2. 单机整机验证:测试芯片及网口状态,带宽、算力等规格
常用指令:for i in {0..7}; do sudo hccn_tool -i $i -link -g ; done
3.集群验证-组网性能:测试多机集合通信联通性和性能
常用指令:mpirun -f hostfile -n 16 ./bin/all_reduce_test -p 8 -b 8K -e 64M -f 2 -d fp32 -o sum
三. 通信原语介绍
1.Broadcast
某个节点想把自身的数据发送到集群中的其他节点,那么就可以使用广播Broadcast的操作。
2.Scatter
将主节点的数据进行划分并散布至其他指定的节点。
3.Reduce
Reduce 称为规约运算,是一系列简单运算操作的统称。 细分可以包括:SUM、MIN、MAX、PROD、LOR等类型的规约操作。
4.Gather
将多个 Sender 上的数据收集到单个节点上,Gather 可以理解为反向的 Scatter。
5.All Gather
All Gather会收集所有数据到所有节点上。 All Gather = Gather + Broadcast。
6. All-Reduce
All Reduce则是在所有的节点上都应用同样的Reduce操作。 All Reduce操作可通过Reduce + Broadcast 或者 Reduce-Scatter + All-Gather 操作完成。
7.Reduce Scatter
Reduce Scatter操作会将个节点的输入先进行求和,然后在第0维度按卡数切分,将数据分发到对应的卡上。
8.All to All
All to All作为全交换操作,通过All to All通信,可以让每个节点都获取其他节点的值。将节点i的发送缓冲区中的第j块数据发送给节点j,节点j将接收到的来自节点i的数据块放在自身接收缓冲区的第i块位置。