2. 简介

MetaX Collective Communications Library(MCCL)是一个提供GPU间通信原语的库。MCCL使用方便,可以进行拓扑感知与计算,是专用于GPU间通信的通讯库。

MCCL提供以下集合通信原语:

  • AllReduce

  • Broadcast

  • Reduce

  • AllGather

  • ReduceScatter

  • AllToAll

  • P2P Send/Receive

MCCL是基于MXMACA®,并通过MXMACA的内存复制和MXMACA核函数来实现,以进行局部归约。另一方面,MCCL通过算法优化,以实现快速同步,并最大限度地提高带宽利用率。

开发人员在使用MCCL后,不再需要对通讯进行优化。MCCL支持节点内和跨节点的多GPU上进行集合通讯。它支持多种技术,包括PCIe、MetaXLink、InfiniBand Verbs和IP Sockets。

MCCL编程简单,提供C语言标准的API,可以通过多种编程语言调用。MCCL符合由MPI定义的API标准。MCCL增加了stream参数,可以与MXMACA进行同步。MCCL兼容多种GPU并行化模型:

  • 所有GPU的单线程控制

  • 多线程,例如,每个GPU使用一个线程

  • 多进程,例如MPI

MCCL在深度学习框架中得到了很好的应用,其中AllReduce被大量用于神经网络训练。MCCL提供的多GPU多节点通信可以有效扩展神经网络训练。

2.1. 系统架构

曦云系列GPU MCCL的系统整体架构如图 2.1 所示:

../_images/image4.png

图 2.1 系统架构