通信世界网消息(CWW)近年来,大语言模型(LLM)的发展备受瞩目,模型参数规模迈向万亿,模型泛化能力增强,可同时处理语言、文字、图像、视频等多种任务。LLM的发展驱动了底层智算基础设施的升级,传统单机8卡的设备形态在支撑模型快速迭代时遭遇瓶颈。本文从智算集群的关键技术之一——GPU卡间互联技术出发,剖析大模型训练和推理过程中对GPU卡间互联架构、带宽和传输效率的需求,并提出GPU卡间开放互联协议体系——OISA。
大模型需要大算力,大算力需要强互联
近年来,大语言模型的发展因其庞大的参数规模、复杂的计算需求以及不断提升的模型能力备受瞩目。据报道,GPT-4的参数规模达到1.8万亿,在多种复杂任务的处理上超过了1750亿参数的GPT-3。与此同时,国内外已有多个大模型参数突破万亿大关,并朝着更高数量级迈进。在此过程中,模型架构向稀疏化发展,引入混合专家结构(Mixture of Experts, MoE),MoE通过将大模型分解为多个“专家”子网络,并按需动态调用这些“专家”,来达到以少量的算力资源获得更高模型能力的效果。
LLM的参数规模和对算力需求的增长速度远远超出了单个GPU算力提升的速度,叠加摩尔定律放缓等因素,使得构建超大规模的GPU集群成为必然。当前国内外大型科技公司都在构建万卡甚至超万卡集群,并不断探索优化网络架构和并行化策略等技术,以期最大限度地提高GPU集群的计算效率,最大程度地压缩大模型开发和训练的时间。
智算万卡集群中存在两种互连域(如图1所示),一是GPU南向的Scale-up互联域(Scale-up Domain,SUD),GPU南向互联(也称之为GPU卡间互联)架构通常将4张或8张GPU在单台服务器内实现高带宽低时延互联,为模型的张量并行(Tensor Parallel,TP)提供高效的数据通路,带宽通常为几百GB/s或几千GB/s,时延为百纳秒级。第二个是GPU北向的Scale-out互联域(Scale-out Domain,SOD),这种互联域构建了服务器之间的通信网络(因此也称为机间互联),通常通过IB/RDMA网卡以Clos网络架构进行连接。机间网络为流水线并行(Pipeline Parallel,PP)和数据并行(Data Parallel, DP)提供高效的数据传输,带宽通常为几百Gbps或上千Gbps。
图1 Scale-out和Scale-up
万亿参数的模型规模和MoE的模型结构,对传统的3D并行策略(TP+PP+DP)提出了新要求,在提升张量并行(TP)流量的基础上引入专家并行(EP),引发了大量的GPU卡间AlltoAll通信,为此我们需要构建更大规模的GPU Scale-up互联域,搭建更大带宽、更低时延的GPU卡间互联网络,以实现更高效、更快速的模型训练和推理效率。
GPU卡间互联需求深入分析
模型训练的并行化策略,是驱动GPU卡间互联的关键因素
大模型训练过程中,GPU间的并行化策略是进行大模型训练的基础以及提升训练效率的关键。并行化策略的核心在于将复杂的计算任务分解为多个子任务,并同时在多个GPU卡或智算服务器上执行。这种策略不仅能够显著缩短训练总时长,还能在一定程度上降低能耗。为了实现有效的并行计算,GPU之间的高效互联变得尤为重要,以确保数据能够在GPU之间快速、准确地传递交换。当前,业界熟知的并行化策略包括数据并行(DP)、张量并行(TP)、流水线并行(PP)等。
数据并行(DP)是一种广泛应用的并行计算策略,通过多个GPU协同工作共同处理大规模的输入数据集。具体来说,数据并行是将输入数据分割成多个小批次,并将这些小批次分配到不同的GPU上,每个GPU处理不同的数据子集。每个GPU都会维护一个模型的副本,在本地执行前向和反向传播过程。在每次训练迭代(一次Iteration)结束后,各个GPU通过AllReduce操作同步它们的优化器状态,合并梯度信息,并更新全局优化器状态。为了最小化通信开销,AllReduce操作可以与反向传播过程重叠执行,从而实现计算与通信的并行。但通常来说大模型的参数量往往超过单个GPU的显存容量,使得单个GPU上无法加载整个模型,为此,需要引入张量并行(TP)和流水线并行(PP)。
张量并行(TP)与数据并行(DP)不同,需要将模型的结构横向分割到多个GPU上,每个GPU只负责模型的一部分。每一部分的模型计算完成后,需要一轮AllReduce操作来同步不同GPU上的梯度信息。张量并行解决了模型无法在单个GPU上运行的问题,但也带来的一个挑战,由于每一轮计算(Batch)之后都需要收集和汇总来自不同GPU的梯度和激活值,张量并行会产生大量GPU卡间通信需求。因此,为了确保张量并行策略的有效性,必须对通信模式进行仔细设计和优化,优化目标是在短周期内迅速将GPU卡间带宽占满,以减少通信开销并提高整体的训练效率。
流水线并行(PP)则是将模型纵向分解为不同阶段,以Transformer模型为例,它将Transformer模型的不同层分配到不同的GPU(或GPU组)上,每个GPU(或每组GPU)负责模型的一个特定阶段,最终形成一个连续的计算流水线。这样,不同层的训练可以同时进行,再通过流水线的方式按序完成整个模型的前向和反向传播过程。由于每个阶段必须等待前一个阶段的输出才能开始工作,流水线并行也会来在不小的通信开销。
以上三种并行策略是千亿参数模型的标配,当模型升级到万亿参数级别,需要引入专家并行策略(Expert Parallel,EP)。专家并行策略是将不同的“专家”部署到不同的GPU上,不同的“专家”将根据门控网络的设置对其“专业领域”数据进行计算。“专家”之间对梯度和激活值的交互带来了卡间大量的AlltoAll通信需求,其特点是规模大、频次高、带宽大且时延低。由于模型的不断变大,专家并行策略引发了对传统单机8卡设备形态的变革,业界开始寻求更加高效的智算设备。
万亿参数以上超大模型对智算服务器形态提出更高要求
通过对超大模型并行训练策略的分析,我们看到智算服务器的发展趋势,将是不断提高TP和EP的效率,通过在服务器内部提升GPU卡间的互联规模和互联带宽,实现数据尽可能在服务器内部得到充分计算。因此,研制突破单机8卡形态的超级服务器,利用智算服务器内的SUD能力,减少GPU卡间通信时间成为演进的主要目标之一。
此外,MoE算法对于分布式训练的成功也至关重要。这种通信机制需要确保模型训练的一致性和效率,特别是在超级集群环境下,TP和EP通信成为主流,这要求我们在设计和实施互联策略时,必须考虑到通信流量可能存在的变化,以及如何在保证通信效率的同时,维持模型训练的稳定性和可靠性。
大规模的GPU互联需要基于Switch芯片构建交换拓扑
为了适应GPU互联规模和互联带宽同步增长的趋势,我们需要重新思考GPU南向互联的拓扑结构。当前,除Nvidia之外,其他GPU芯片仍然采用直连拓扑,这种拓扑架构在支持百卡级别的互联规模时显得力不从心。因此,引入基于Switch芯片的交换拓扑成为一条重要的技术路线(如图2)。此外,当前推理任务的部署通常局限于2卡、4卡或8卡之间,交换拓扑的引入也将进一步释放GPU卡间点对点的带宽潜力,提升推理业务的处理效率。
图2 直连拓扑和交换拓扑
交换拓扑的引入虽然能够提供更高的带宽和更好的扩展性,但也可能带来其它问题。首先,交换拓扑可能引发产业格局的变化。通常来讲,GPU企业擅长计算,对于交换领域(包括通信协议、流控和重传机制等)的理解并不透彻,也难以承担一个交换芯片的研发风险。同样,传统交换芯片厂家,掌握服务器之间的路由协议(如RDMA、TCP、IP等),但对于GPU南向的数据处理需求,也不尽了解。这也是为何目前行业只有英伟达能提供基于交换拓扑的产品。交换拓扑,尤其是开放交换拓扑将推动GPU卡间互联的交换芯片升级成为整个系统最关键的组件,成为不同GPU突破单机8卡向超节点升级的核心。其次,交换拓扑对于整个系统来说,将带来更高的延迟和更复杂的管理问题。因此,一方面交换芯片的设计优化及其重要,其性能和效率将直接影响着整个系统的运行;另一方面,协议栈和通信机制的设计也会面临很大挑战。我们需要保证在流量控制和拥塞控制的前提下,实现低时延的数据传输,以满足多样化的AI应用需求。第三,由于互联拓扑的改变,GPU企业需要仔细评估对上层业务的影响,并进行相应软件的开发,包括优化GPU内存管理、计算与通信的重叠处理,并为特定场景定制通信和计算策略等,才能确保整个系统的可实施性。
中国移动原创提出OISA协议体系
为了应对上述GPU卡间互联的多重挑战,中国移动原创提出了全向智感互联架构(Omni-directional Intelligent Sensing Express Architecture,OISA,音“欧萨”),旨在打造一个高效、智能、灵活且开放的GPU卡间互联体系,该架构致力于支持大模型训练、推理、高性能计算等数据密集型的AI应用。OISA采用了全向连接设计,确保大规模GPU之间对等通信;引入智能感知设计,通过定义流量感知标签,在优化数据传输效率条件下增加对链路的遥测和可视化能力。
当前,OISA协议采用了统一报文格式、多语义融合、多层次流控和重传以及集合通信加速等四大关键技术,实现高速、低时延、无损和高可靠的GPU通信。OISA秉承开放性原则,致力于打造一个和谐共生的互联生态,兼容不同GPU产品的互联需求,同时鼓励并支持产业伙伴积极参与OISA协议的制定和研发,确保OISA在多变的技术环境中保持长期的适用性和竞争力。