炸裂!GPU互联大升级,算力暴涨,跨境电商要变天?
大模型训练离不开集合通信,高效训练离不开多种并行策略的混合使用。常见策略包括数据并行、流水并行、张量并行、序列并行和专家并行。这些并行策略在超大规模并行训练中扮演着关键角色,尤其是在计算密集型和通信密集型场景下。
数据并行模式下,每个GPU运行相同的模型代码,数据集被拆分分配给不同的GPU进行训练。每轮迭代完成后,需通过all-reduce操作进行同步。为优化这一过程,一种方法是将all-reduce操作拆分为reduce-scatter和all-gather两部分,降低通信开销,提升训练效率。
模型并行中,每个GPU负责模型的一部分参数和计算。流水并行通过按层切分实现,张量并行则通过分解模型的张量实现。例如,多头自注意力(MHA)适合张量并行,Q、K、V矩阵按列切分,每个头的计算独立分配到不同的GPU上。流水并行将输入的batch size切分为多个mini-batch,通过划分为多个阶段并行计算,以此来掩盖计算过程中的“气泡”时间。
序列并行是张量并行的补充,针对那些需要全局统计信息且不能按Tensor维度拆分的部分,序列并行按照序列进行切分,进一步分摊计算,减少每个GPU的显存占用。
专家并行通过选择性地激活一部分参数来处理不同的数据,从而解决模型规模增大带来的训练成本问题。专家并行的思路是将不同的专家分配到不同的GPU上,减少内存消耗,提高训练效率。计算前,Token需通过All-to-All通信发送给不同的Experts所在的GPU进行运算。
新媒网跨境了解到,不同的并行模式都离不开集合通信技术,大模型的分布式训练也因此与集合通信密不可分。
为了更好地扩大规模,实际训练中常采用多种模式混合并行,集合通信贯穿模型训练的每一个环节。
谈及集合通信,消息传递平台MPI是绕不开的话题。MPI是一种标准和规范,真正的实现存在于开源实现库中,例如openMPI。
MPI简介
程序一旦运行,便会成为独立的进程。进程拥有独立的执行环境,是操作系统中独立存在的可执行的基本程序单位。进程间相互独立,但可以相互交换信息。消息传递便是指这些信息在进程间的相互交换,是实现进程间通信的唯一方式。
最基本的消息传递操作包括发送消息send、接受消息receive、进程同步barrier、归约reduction等。
MPI程序通常包含变量定义、MPI环境初始化、执行进程间通信和退出MPI环境等步骤。MPI系统的通信方式都建立在点对点通信之上,包括阻塞式和非阻塞式点对点通信。OpenMPI中,实现了多种集合通信算法,如Allreduce, AlltoAll, AllGather等,且每种算法都有不同的实现方式。
例如,MPI实现了多种AllReduce算法,包括传统的reduce+broadcast方式、butterfly方式、Ring AllReduce以及Segmented Ring方式。
Allreduce算法的多样实现方便在不同情况下采用不同的实现方式,加快集合通信的计算速度。
常见集合通信算子
MPI_Scatter与MPI_Bcast的区别在于,后者将相同的信息发送给所有进程,而前者将一段array的不同部分发送给所有进程。
当数据分布在所有进程中时,MPI_Allgather是将所有的数据聚合到每个进程中。而MPI_Allreduce是将所有的数据执行规约(sum、min 等)后分发到每个进程中。
RingAllreduce是一种基于环拓扑结构的Allreduce操作,每个参与的进程只与其两个邻居通信。数据在环中的每个节点之间传递,通过一系列的归约和数据交换操作来聚合数据。
AlltoAll操作允许每个进程与所有其他进程交换数据,但与Allgather不同的是,AlltoAll通常涉及每个进程向每个其他进程发送和接收不同的数据,允许更灵活的数据重新分配。
Allgather操作后,每个进程拥有完整的数据集;AlltoAll操作后,每个进程可能拥有不同的数据集,取决于发送和接收的数据。
NCCL的出现
MPI在2009年算法已经成熟,但英伟达在2015年发布了Nccl。一方面是因为MPI基本没有考虑过GPU系统架构,MPI设计中各个工作节点基本视为等同,并没有考虑节点间latency和带宽的不同。另一方面,GPU异构性明显,不同设备性能差异大,需要重新设计策略来考虑异构场景下的硬件性能。Nccl因此应运而生,更贴合GPU硬件。最初,NCCL1.x只能在单机内部进行通信,多机间的通信仍依赖MPI,但从NCCL2.0开始,它已支持多机间通信。
NCCL的特点
NCCL是专为NVIDIA GPU设计的通信库,充分利用了NVIDIA硬件的特性:
- NVLink互连:优化了通过NVLink进行的GPU间通信。
- GPU直接通信:允许GPU之间直接交换数据,减少通信延迟。
- CUDA集成:与CUDA紧密集成,便于开发者在CUDA程序中使用NCCL进行高效的数据传输和同步。
- 自适应拓扑:能够自动检测并适应不同的硬件拓扑。
在异构计算环境中,CPU、GPU、网络和其他加速器需要高效协同工作。NCCL在这种环境中展现出显著的性能优势:
- 跨平台支持:不仅支持NVIDIA GPU,还能够与CPU和其他硬件平台协同工作,提供跨平台的通信解决方案。
- 可扩展性:设计用于大规模并行计算,支持数千个GPU的集群,对于处理大规模数据集和模型至关重要。
- 低延迟和高吞吐量:优化了数据传输路径,减少通信延迟,同时提供高吞吐量的数据处理能力。
- 容错性:在异构环境中,硬件故障是常见问题。NCCL提供容错机制,确保计算任务在出现硬件故障时仍能继续执行。
NCCL是专为NVIDIA GPU设计的集合通信库,与MPI类似,它支持多种高效的集体通信操作,如广播、归约、全收集等。GPU之间的通信可以通过GPU共享内存、GPU Direct P2P和NVLink等方式实现。
- GPU共享内存:数据传输需经过CPU的主机内存,可能导致较高的通信延迟和性能开销。
- GPU Direct P2P:允许同一节点上的GPU直接相互通信,无需通过CPU的主机内存,减少数据传输延迟。
- NVLink:提供比传统PCIe更高的带宽和更低的延迟,GPU之间的数据传输不再通过PCIe总线,而是直接通过NVLink连接。
NCCL基本架构
NCCL的架构与MPI基本一致,每个进程称为一个“rank”,每个rank都有唯一的标识符,即rank ID。这些rank的集合构成一个“communicator”,定义了一组可以相互通信的进程。每个设备上都需要创建一个NCCL Communicator对象。
新媒网跨境获悉,NCCL通过ncclCommInitRank()和ncclCommInitAll()等函数来初始化communicator。在创建communicator之前,root rank需要使用ncclGetUniqueId()生成一个唯一的ID,并广播给所有参与通信的进程。
initTransportsRank函数是NCCL初始化过程中的关键步骤,负责检测设备和拓扑结构、计算通信结构和建立设备连接等任务,最终可以建立包含GPU的XML树结构。用户可通过设置环境变量NCCL_TOPO_DUMP_FILE来输出XML文件,查看机器的拓扑结构。
当然,也可以通过 Nvidia-smi topo -m 来查看单机内的拓扑结构。
以下是V100的拓扑网络示例:
GPU通信并非仅构造硬件或软件,而是软硬件一体优化的结果。
GPU拓扑结构
在机内互联方面,下图为单机8卡A100的拓扑构图,揭示了节点上的CPU NUMA Socket、PCIe Root Complex以及通过NvSwitch实现全互联的8个A100 GPU卡。
虽然GPU发展迅速,但GPU外设仍以Pcle连接到以CPU为中心的互联体系中。PCIe的带宽已落后于NVLink。
在机间互联方面,在DGX A100系列中,每个节点上的8张GPU通过NVLink和NVSwitch互联,机间直接用200G IB HDR网络互联。随着NVIDIA DGX H100的推出,NVIDIA将机内的NVSwitch技术扩展到了交换机上,创造了名为NVLink Switch22的创新产品,支持多达256个GPU。
新媒网跨境认为IB网络最高也就200GB/s的带宽,而Nvlink可以达到900GB/s的带宽,实现Nvlink完全替代IB可以说一直在路上。
最新发布的NVIDIA GB200 NVL72中,引入了第五代NVLink,可在单个NVLink域中连接多达576个GPU,总带宽超过1 PB/s。
拓扑优化
NCCL 2.12中引入的PXN拓扑优化,可以加速一倍的机间数据传输效率。PXN利用节点内GPU之间的NVIDIA NVSwitch连接,首先将数据包移动到与目的地相同轨道的本机的GPU上,然后在不跨越轨道的情况下通过L3交换机将其发送到目的地机的GPU上,实现消息聚合和网络流量优化。
NCCL通信算法
NCCL通过智能地利用网络拓扑结构,为多GPU环境选择最佳的通信策略。库不仅支持传统的RING、TREE、COLLNET等通信算法,还引入了更多先进的算法,这些算法的细节可以在源码中的ncclTopoTuneModel方法中找到。
Ring算法通过构建环形网络,使得每个GPU仅与其直接相邻的两个邻居进行数据交换。Tree算法利用二叉树特性,提供比ring算法更低的延迟。CollNet算法建立在SHArP基础上,专为与InfiniBand网络配合使用而设计,将计算任务卸载到网络交换机,减少GPU之间的直接通信需求。
NCCL实现了自动化的选择机制,预估算法不同拓扑下的通信时间,并通过下载nccl-test来进行不同算法的性能测试。
在数据中心和超级计算领域,网络互联技术的每一次飞跃都至关重要。从以太网到InfiniBand,再到NVIDIA的NVLink和NVLink Network,每一次技术演进都标志着对更快、更高效通信方式的追求。
二十五年前,InfiniBand联盟IBTA试图取代PCI、以太网等成为统一的互联方案,但互联网泡沫使其野心并未实现。十年前,Intel主导的PCIe标准限制了GPU等PCIe设备间的直接数据传输,NVIDIA推出了NVLink技术,允许GPU之间直接互联。
如今,随着生成式AI的兴起,Meta的LLama3模型采用RoCEv2和IB网络技术,国内华为和阿里也在探索Ethernet的潜力。NVIDIA也在探索构建下一代以NVLink为核心的互联技术。
新媒网跨境预测,网络互联技术将持续演进,为数据中心和超级计算带来更高效的通信方式。
最后欢迎点击以下链接购买和 Zomi 联合出版的 AI系统:原理与架构
新媒网(公号: 新媒网跨境发布),是一个专业的跨境电商、游戏、支付、贸易和广告社区平台,为百万跨境人传递最新的海外淘金精准资讯情报。

Amazon Kindle Paperwhite 16GB (newest model) – Our fastest Kindle ever, with new 7" glare-free display and weeks of battery life – Black
$ 135.99

Blink Mini 2 (newest model) — Home Security & Pet Camera with HD video, color night view, motion detection, two-way audio, and built-in spotlight — 1 camera (White)
$ 39.99

Ring Rechargeable Quick Release Battery Pack
$ 33.42

Blink Video Doorbell (newest model) – Head-to-toe HD view, two-year battery life, and simple setup. Sync Module Core included – System (Black)
$ 69.99

Amazon Echo Dot (newest model), Vibrant sounding Alexa speaker, Great for bedrooms, dining rooms and offices, Charcoal
$ 49.99

评论(0)