MCCL 概览
摩尔线程集合通信库(MCCL)可实现针对摩尔线程 GPU 和网络进行性能优化的多 GPU 和多节点通信基元。MCCL 提供了 AllReduce、Broadcast、Reduce、AllGather、ReduceScatter 以及点对点 send/receive 等原语,这些原语均经过优化,可通过节点内的 PCIe 和 MTLink 高速互联以及节点间的 InfiniBand 网络实现高带宽和低延迟。
MCCL 支持节点内和跨节点通信,可以实现拓扑的自动检测,计算最优路径,最终实现 GPUs 之间的高效传输。
MCCL 特性
- 拓扑感知:自动检测 GPU 拓扑,计算最优通信路径
- 高带宽低延迟:针对 PCIe、MTLink、InfiniBand 优化
- 多种原语:AllReduce、Broadcast、Reduce、AllGather、ReduceScatter、P2P Send/Receive
- 易于集成:简单的 C API,遵循 MPI 集体通信规范
- stream 集成:接受
MUSA stream参数,与 MUSA 编程模型直接集成 - 多编程模型:支持单线程多卡、多线程(每 GPU 一线程)、多进程(MPI)
MCCL 框架

图 1 MCCL 框架图
节点内通信
节点内 GPU 之间进行数据传输,主要的物理介质是 PCIe 和 MTLink,涉及到的主要技术有 GPUDirect P2P。GPUDirect P2P 避免数据通过 CPU 进行中转,降低延时,同时可以利用 GPU 高速互联的带宽。

图 2 PCIe 的 P2P 示意图