简介
HCCL提供了C与Python两种语言的开发接口,用于实现分布式能力。
本章节针对如何调用HCCL的C语言接口进行集合通信功能的开发进行介绍。
开发者调用HCCL C语言接口实现集合通信功能的主要开发流程如下所示。
图1 集合通信操作流程

- 首先进行集群信息配置,创建通信域句柄,并初始化HCCL通信域。
- 实现通信操作,HCCL通信操作包含两大类:点对点通信与集合通信。
- 点对点通信,指在多NPU环境下两个NPU之间直接传输数据的过程,常用于pipeline并行场景下对激活值的数据收发。HCCL提供了不同粒度的点对点通信,包括单rank到单rank的单收单发接口,以及多个rank之间的批量收发接口。
- 集合通信,指多个NPU共同参与进行数据传输操作,例如AllReduce,AllGather,Broadcast等,常用于大规模集群中不同NPU之间的梯度同步和参数更新等操作。集合通信操作可让所有计算节点并行、高效、有序执行数据交换,提升数据传输效率。
- 集合通信操作完成后,需要释放相关资源,销毁通信域。
父主题: 通信功能开发