AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


构建10万张H100的大模型训练集群!
发布日期:2024-06-24 04:34:05 浏览次数: 2383 来源:包包算法笔记


有些人认为自从GPT-4发布以来,AI的能力就停滞不前了。这可能没毛病,但只是因为没有人能够一直大幅增加单一模型的计算量。每个发布的模型的计算量都大致处于GPT-4水平(约2e25 FLOP的训练计算量)。在谷歌的Gemini Ultra、Nvidia Nemotron 340B和Meta LLAMA 3 的案例中,分配的FLOPS与GPT-4相当甚至更高,但是使用了较差的架构,导致这些模型未能突破GPT4的效果。

尽管OpenAI获得了更多的计算能力,但他们主要将其用于带来更小的、过度训练的、更便宜的推理模型,如GPT-4 Turbo和GPT-4o。OpenAI承认他们只是最近才开始训练下一个级别的模型。

AI的下一步显然是训练一个具有数万亿参数的多模态变换器,使用大量的视频、图像、音频和文本。尚无人完成此任务,但成为第一个完成者的竞赛中活动频繁。

包括但不限于OpenAI/Microsoft、xAI和Meta的多个大型AI实验室正在竞相构建超过10万个GPU的GPU集群。这些单独的训练集群仅服务器资本支出就超过40亿美元,但它们也受到数据中心容量和电源的严重限制,因为GPU通常需要被放置在一起以实现高速芯片到芯片的网络连接。一个10万个GPU的集群将需要超过150MW的数据中心容量,并在一年内消耗1.59太瓦时的电力,按照标准费率0.078美元/千瓦时计算,成本为1239万美元。

今天我们将深入探讨大型训练AI集群及其周围的基础设施。构建这些集群比仅仅投入资金解决问题要复杂得多。由于各种组件的高故障率,尤其是网络,实现高利用率更加困难。我们还将讨论电力挑战、可靠性、检查点、网络拓扑选项、并行方案、机架布局以及这些系统的总材料清单。一年多前,我们报道了Nvidia的InfiniBand问题,这导致一些公司选择Spectrum-X以太网而不是InfiniBand。我们还将介绍Spectrum-X的主要缺陷,这使得超大规模计算公司选择了Broadcom的Tomahawk 5。

为了说明一个10万个GPU集群可以提供多少计算能力,OpenAI的GPT-4训练BF16 FLOPS约为2.15e25 FLOP(2150万ExaFLOP),使用了大约2万个A100,历时90至100天。该集群的峰值吞吐量仅为6.28 BF16 ExaFLOP/秒。在10万个H100集群上,这个数字将飙升至198/99 FP8/FP16 ExaFLOP/秒。与2万个A100集群相比,峰值理论AI训练FLOP增加了31.5倍。

在H100上,AI实验室在数万亿参数的训练运行中实现了高达35%的FP8模型FLOP利用率(MFU)和40%的FP16 MFU。作为回顾,MFU是在考虑开销和各种瓶颈(例如电源限制、通信不稳定、重新计算、落后者和低效内核)之后,峰值潜在FLOPS的有效吞吐量和利用率的度量。一个10万个H100集群使用FP8仅需四天即可训练GPT-4。在10万个H100集群的100天训练运行中,您可以实现约6e26(6亿ExaFLOP)的有效FP8模型FLOP。请注意,硬件的可靠性差显著降低了MFU。

能源挑战

一个10万个H100集群所需的关键IT功耗约为150MW。虽然GPU本身的功耗仅为700W,但在每个H100服务器内,CPU、网络接口卡(NIC)、电源供应单元(PSUs)每个GPU另外需要约575W。除了H100服务器外,AI集群还需要一系列存储服务器、网络交换机、CPU节点、光模块等,这些总共占IT功耗的另外10%。将150MW的电力与最大的国家实验室超级计算机El Capitan所需的30MW的IT电力进行比较,可以看出政府超级计算机与行业相比相形见绌。

数据中心的一个主要电力挑战是,目前没有单一的数据中心建筑有能力部署新的约150MW。当人们提到10万个GPU集群时,通常他们指的是在单一的校园内,而不是建筑物内。对电力的需求如此迫切,以至于X.AI甚至将田纳西州孟菲斯的一个旧工厂改造成数据中心,因为缺乏其他选择。

这些集群使用光模块进行网络连接,光模块的成本与传输距离成比例。长距离的“单模”DR和FR光模块可以可靠地传输信号约500米到2公里,但成本可能是“多模”SR和AOC光模块的2.5倍,后者仅支持约50米的传输距离。此外,校园级的“相干”800G光模块的传输距离超过2公里,尽管价格是10倍以上。

小型H100集群通常通过仅使用多模光模块在400G速率下将每个GPU连接到其他GPU,通过一两层交换机实现。对于大型GPU集群,需要增加更多层的交换,光器件的成本变得非常昂贵。这样一个集群的网络拓扑将根据首选供应商、当前和未来的工作负载以及资本支出大不相同。

每个建筑通常包含一个或多个计算“岛屿”,它们通过较便宜的铜缆或多模光模块连接。然后,它们使用长距离光模块以在“岛屿”之间进行互连。下图显示了4个计算“岛屿”,这些“岛屿”内部带宽高,但“岛屿”外部带宽较低。

不同的客户基于多种因素选择不同的网络拓扑,如数据传输基础设施、成本、可维护性、电力、当前和未来的工作负载等。因此,一些客户选择基于Broadcom Tomahawk 5的交换机,其他客户坚持使用Infiniband,而其他客户选择NVIDIA Spectrum-X。我们将在下面深入探讨原因。

Parallelism Refresher

为了理解网络设计、拓扑、可靠性问题和检查点策略,我们首先将对万亿参数训练中使用的三种并行性类型进行快速回顾 - 数据并行性、张量并行性和流水线并行性。我们在这里有并行性的全面解释,包括专家并行性。

数据并行性是最简单的并行性形式,其中每个GPU持有模型权重的完整副本,每个GPU(等级)接收不同的数据子集。这种类型的并行性通信需求最低,因为只需要在每个GPU之间汇总梯度(all reduce)。不幸的是,数据并行性只有在每个GPU有足够的内存来存储整个模型权重、激活和优化器状态时才有效。对于像GPT-4这样的1.8万亿参数模型,仅模型权重和优化器状态在训练中就可能需要高达10.8TB的内存。

为了克服这些内存限制,使用张量并行性。在张量并行性中,每一层的工作和模型权重分布在多个GPU上,通常分布在隐藏维度上。中间工作通过在自注意力、前馈网络和每一层的层归一化中多次进行设备间的all-reductions进行交换。这需要高带宽,特别是非常低的延迟。实际上,域中的每个GPU在每一层上都与其他GPU一起工作,就像它们都是一个巨大的GPU一样。张量并行性通过张量并行性等级的数量减少了每个GPU使用的总内存。例如,现在通常在NVLink上使用8个张量并行性等级,这将减少每个GPU使用的内存8倍。

为了克服每个GPU没有足够的内存来适应模型权重和优化器状态的挑战,使用流水线并行性。通过流水线并行性,每个GPU只有一部分层,并且只对该层进行计算,并将输出传递给下一个GPU。这种技术通过流水线并行性等级的数量减少了所需的内存量。流水线并行性有大量的通信量需求,但不像张量并行性那么重。

为了最大化模型FLOP利用率(MFU),公司通常结合所有三种并行性形式形成3D并行性。然后,他们将张量并行性应用于H100服务器内的GPU,然后在同一个岛屿内的节点之间使用流水线并行性。由于数据并行性具有最低的通信量,岛屿之间的网络速度较慢,因此在岛屿之间使用数据并行性。

像FSDP这样的整体技术在小GPU尺寸的非常大的模型中很常见,它不起作用。它实际上与流水线并行性不兼容。

网络设计注意事项

网络是考虑到并行性方案而设计的。如果每个GPU都以最大带宽连接到其他GPU的胖树拓扑,那么成本将是巨大的,因为需要4层交换。每增加一层网络,光器件的成本就会飙升。

因此,没有人为大型GPU集群部署完整的胖树架构。相反,他们依赖于拥有完整胖树架构的计算“岛屿”,并在这些岛屿之间使用较小的带宽。有多种方法可以做到这一点,但大多数公司选择“超额订阅”顶层网络。例如,请参阅Meta上一代GPU集群架构,高达32,000个。总共有8个岛屿,它们之间有完整的胖带宽,然后在顶部有另一层交换,其超额订阅为7:1。岛屿之间的网络比岛屿内的网络慢7倍。

GPU部署有多个网络,前端、后端和扩展(NVLink)。在某些情况下,您将在每个网络上运行不同的并行性方案。NVLink网络可能是唯一一个足够快以满足张量并行性带宽要求的网络。您的后端通常可以轻松处理大多数其他类型的并行性,但如果有超额订阅,通常只能使用数据并行性。

此外,一些人甚至没有在顶层超额订阅带宽的岛屿。相反,他们从后端网络转移到前端网络进行岛屿之间的通信。

混合 InfiniBand and 前端网络Fabric

一家主要公司在多个InfiniBand岛屿上使用前端以太网进行训练。这是因为前端网络的成本要低得多,并且可以利用现有的数据中心园区网络在建筑物和区域路由之间。

不幸的是,由于像MoE这样的稀疏技术,模型尺寸增长得更快,前端网络需要处理的通信量也在增长。这种权衡必须仔细优化,否则您最终会得到两个成本相同的网络,因为前端网络带宽最终会变得如此之大,以至于可能与后端网络带宽相匹配。

需要注意的是,谷歌专门为其多TPU pod训练运行使用前端网络。他们的“计算织物”称为ICI,最多只能扩展到8960个芯片,使用昂贵的800G光器件和光路交换机连接每个64 TPU水冷架。因此,谷歌必须通过使TPU前端网络比大多数GPU前端网络更强大来进行补偿。

当在训练期间使用前端网络时,必须在岛屿之间进行网络拓扑感知的全局all-reduce。首先,每个pod或岛屿将在pod InfiniBand或ICI网络内执行本地reduce-scatter,这将使每个GPU/TPU具有梯度的一个子部分的总和。接下来,将使用前端以太网网络在每个主机等级之间执行跨pod all-reduce,然后最后每个pod将执行pod级all-gather。

前端网络还负责加载数据。随着我们向多模态图像和视频训练数据的转变,前端网络需求将呈指数级增长。在这种情况下,前端网络带宽将在加载大型视频文件和执行all reductions之间进行斗争。此外,如果您有不规则的存储网络流量,您的落后者问题将增加,这会导致您的所有all-reduces变慢,并且无法进行可预测的建模。

另一种选择是使用4级InfiniBand网络,超额订阅7:1,有4个pod,每个pod有24,576 H100s,具有非阻塞3级系统。与使用前端网络相比,这允许更大的灵活性,以应对未来的带宽增长,因为将更多的光纤光学器件从建筑A的交换机添加到建筑B的另一个交换机要比在集群中的每个机箱中进行完整的前端网络NIC升级从100G到200G等要容易得多。

这创造了一个更稳定的网络模式,因为您的前端网络可以专注于加载数据和检查点,您的后端网络可以专注于GPU到GPU的通信。这也有助于解决落后者问题。但不幸的是,由于需要所有的附加开关和光器件,4级Infiniband网络非常昂贵。

轨道优化 vs 机架中部设计

为了提高可维护性并增加铜网络(<3米)和多模网络(<50米)的使用,一些客户选择放弃NVIDIA推荐的轨道优化设计,而是选择机架中部设计。

轨道优化是一种技术,使每个H100服务器连接到8个不同的叶交换机(而不是全部连接到同一个机架中部交换机),以便每个GPU只需1个交换机跳转就可以与更远的GPU通信。这允许真实世界中的所有集体性能提升。所有到所有集体通信在专家混合(MoE)专家并行性中大量使用。

轨道优化设计的缺点是,您必须连接到不同距离的不同叶交换机,而不是一个靠近服务器中所有8个GPU的机架中部交换机。当交换机可以放置在同一个机架中时,可以使用被动直连电缆(DAC)和有源电缆(AEC),但在轨道优化设计中,交换机不一定在同一个机架中,必须使用光器件。此外,叶到脊柱的距离可能大于50米的距离,迫使使用单模光器件。

通过使用非轨道优化设计,您可以用便宜的直连铜替换连接GPU到叶交换机的98,304个光器件,使您的GPU织物的25-33%是铜。正如您从下面的机架图中看到的,而不是每个GPU到叶交换机的连接上升到电缆托盘,然后横向9个机架到专用的轨道优化叶交换机架,叶交换机现在在机架的中间,允许每个GPU使用DAC铜缆。

DAC铜缆运行更凉爽,使用的功率更少,并且比光器件便宜得多。由于DAC电缆运行更凉爽,使用的功率更少,更可靠,这导致较少的闪烁(网络链接间歇性地下降)和故障,这是使用光器件的所有高速互连的主要问题。使用DAC铜缆的Quantum-2 IB脊柱交换机使用747瓦特。当使用多模光器件时,功耗增加到高达1500瓦特。

此外,对于数据中心技术人员来说,轨道优化设计的初始布线非常耗时,因为每个链接的末端高达50米远,不在同一个机架上。与机架中部设计相比,您在机架中部有叶交换机,就像连接到叶交换机的所有GPU一样。在机架中部设计中,您甚至可以在集成工厂测试计算节点到叶交换机的链接,因为它们都在同一个机架内。

可靠性和恢复

可靠性是这些大型集群最重要的运营问题之一,由于当前前沿训练技术的同步性质。最常见的可靠性问题是GPU HBM ECC错误、GPU驱动程序卡住、光器件故障、NIC过热等。节点不断下线或出现错误。

为了保持故障恢复的平均时间低并继续训练,数据中心必须在现场保持热备用节点和冷备用组件。当发生故障时,与其停止整个训练运行,最好是更换一个已经打开的工作备用节点,并继续训练。这些服务器的许多停机时间仅仅是电源循环/重新启动节点并修复出现的任何问题。

然而,简单的重新启动并不能解决每个问题,而且在许多情况下,它需要数据中心技术人员亲自诊断和更换设备。在最好的情况下,数据中心技术人员需要多个小时来修复一个损坏的GPU服务器,但在许多情况下,可能需要几天才能将一个损坏的节点重新带入训练运行。损坏的节点和备用热节点是GPU,尽管理论上有FLOPS可以提供,但它们并没有积极参与模型。

当模型被训练时,需要频繁地将模型检查点到CPU内存或NAND SSD,以防发生HBM ECC等错误。当发生错误时,您必须从较慢的存储器层重新加载模型和优化器的权重,并重新启动训练。可以使用诸如Oobleck之类的容错训练技术,以提供用户级应用程序驱动的方法来处理GPU和网络故障。

不幸的是,频繁的检查点和容错训练技术损害了系统的整体MFU。集群需要不断暂停,以将其当前权重保存到持久性内存或CPU内存中。此外,当您从检查点重新加载时,您通常每100次迭代只保存一次。这意味着您最多只能丢失99个有用的工作步骤。在10万个集群上,如果每次迭代需要2秒钟,您将因在第99次迭代时发生故障而损失高达229个GPU天的工作。

另一种故障恢复方法是让您的备用节点仅通过后端织物上的RDMA从其他GPU复制。由于后端GPU织物大约为400Gbps,每个GPU有80GB的HBM内存,复制权重大约需要1.6秒。通过这种方法,您最多只会丢失1个步骤(因为更多的GPU HBM将拥有最新的权重副本),所以这将是仅2.3个GPU天的计算量+另外1.85个GPU天从其他GPU HBM内存复制权重。

大多数领先的AI实验室已经实现了这一点,但许多较小的公司仍然坚持使用所有故障都从检查点重新启动的沉重、缓慢、低效的技术,因为它们简单。通过内存重建实现故障恢复可以为大型训练运行增加多个百分点的MFU。

最常见的问题之一是Infiniband/RoCE链路故障。即使每个NIC到叶交换机链路的平均故障时间率为5年,由于光器件的数量很大,一个全新的、正常工作的集群上的第一次作业故障只需要26.28分钟。如果没有通过内存重建的故障恢复,由于光器件故障,10万个GPU集群中将花费更多的时间重新启动训练运行,而不是推进模型。

由于每个GPU直接连接到ConnectX-7 NIC(通过PCIe开关),因此在网络架构级别没有容错,因此故障必须在用户训练代码中处理,直接增加了代码库的复杂性。这是NVIDIA和AMD当前GPU网络织物的主要挑战之一,即使一个NIC失败,那个GPU就没有其他路径可以与其他GPU通信。由于当前LLM在节点内使用张量并行性的方式,即使一个NIC、一个收发器或一个GPU失败,整个服务器就被认为是下线的。

正在进行大量工作使网络可重新配置,并且不使节点如此脆弱。这项工作至关重要,因为现状意味着整个GB200 NVL72将因1个GPU故障或1个光故障而下线。一个价值数百万美元的72 GPU机架下线比一个价值几十万美元的8 GPU服务器要灾难得多。

Nvidia已经注意到这个主要问题,并增加了一个专用的可靠性、可用性和可维护性(RAS)引擎。我们相信RAS引擎分析芯片级数据,例如温度、恢复的ECC重试次数、时钟速度、电压,以预测芯片可能的故障时间并警告数据中心技术人员。这将允许他们进行主动维护,例如使用更高的风扇速度配置文件来保持可靠性,在以后的维护窗口中将服务器从服务中取出进行进一步的物理检查。此外,在开始训练工作之前,每个芯片的RAS引擎将执行全面的自检,例如运行具有已知结果的矩阵乘法,以检测静默数据损坏(SDC)。

Cedar-7

一些客户如Microsoft/Openai正在做的另一种成本优化是,每个服务器使用Cedar Fever-7网络模块,而不是使用8个PCIe外形的ConnectX-7网络卡。使用Cedar Fever模块的一个主要好处是,它只允许使用4个OSFP笼子而不是8个OSFP笼子,从而允许在计算节点端也使用双端口2x400G光器件,而不仅仅是交换端。这将连接到叶交换机的光器件数量从每个H100节点的8个光器件减少到4个光器件。连接GPU到叶交换机的总计算节点端光器件数量从98,304减少到49,152。

由于GPU到叶交换机的链接减半,这也有助于首次作业故障的估计时间。我们估计每个双端口2x400G链接的故障平均时间是4年(与单端口400G链接的5年相比),这将首次作业故障的估计时间带到42.05分钟,这比没有Cedar-7模块的26.28分钟要好得多。

Spectrum-X NVIDIA

目前有一个10万个H100集群正在部署,并将在今年年底投入运营,它正在使用NVIDIA Spectrum-X以太网。

去年我们报道了Spectrum-X在大型网络中相比InfiniBand拥有的多种优势。即使在性能和可靠性优势之外,Spectrum-X还拥有巨大的成本优势。Spectrum-X以太网的优势在于每个SN5600交换机有128个400G端口,而InfiniBand NDR Quantum-2交换机只有64个400G端口。请注意,Broadcom的Tomahawk 5交换机ASIC也支持128个400G端口,这使得当前一代的InfiniBand处于巨大劣势。

一个完全互连的10万个集群可以是3级而不是4级。拥有4级而不是3级意味着需要1.33倍的光器件。由于Quantum-2交换机的更低的radix,一个10万个集群上完全互连的GPU的最大数量限制为65,536 H100s。下一代InfiniBand交换机称为Quantum-X800通过拥有144个800G端口来解决这个问题,尽管从数字“144”可以看出,这是为NVL72和NVL36系统设计的,预计不会在B200或B100集群中大量使用。即使使用Spectrum-X可以节省不需要4级的开销,但不幸的劣势是您仍然需要购买Nvidia LinkX产品线的高价光器件,因为其他光器件可能无法工作或未经过Nvidia验证。

Spectrum-X比其他供应商的主要优势是Spectrum-X得到NVIDIA库(如NCCL)的一流支持,而Jensen将您推到他们新产品线的分配队列的前面,与Tomahawk 5芯片相比,您需要大量的内部工程努力来优化您的网络与NCCL,以实现最大吞吐量。

使用以太网而不是InfiniBand作为您的GPU织物的一个不幸的劣势是,以太网目前不支持SHARP的网络内归约。网络内归约通过让网络交换机运行计算来执行每个GPU的求和。SHARP的理论网络带宽增加了2倍,因为它将每个GPU必须执行的发送和写入数量减少了2倍。

Spectrum-X的另一个劣势是,对于第一代400G Spectrum-X,Nvidia使用Bluefield3而不是ConnectX-7作为权宜之计。对于未来的几代,我们预计ConnectX-8将与800G Spectrum-X很好地配合使用。Bluefield-3和ConnectX-7卡之间的价格差异约为300美元ASP的超大规模体积,另一个劣势是该卡比ConnectX-7多使用50瓦特。因此,每个节点需要额外的400W功率,降低了整体训练服务器的“每皮焦耳智能”。

Broadcom Tomahawk 5

为了避免支付巨额的Nvidia税,很多客户正在部署基于Broadcom Tomahawk 5的交换机。每个基于Tomahawk 5的交换机与Spectrum-X SN5600交换机具有相同数量的端口,为128个400G端口,并且如果您的公司拥有良好的网络工程师,可以实现类似的性能。此外,您可以从世界上任何供应商购买任何通用光器件和铜缆,并进行混合和匹配。

大多数客户直接与使用Broadcom基于交换机ASIC的原始设计制造商(ODM)如Celestica合作,以及像Innolight和Eoptolink这样的公司进行光器件合作。根据交换机成本和通用光器件成本,Tomahawk 5比Nvidia InfiniBand便宜得多,与Nvidia Spectrum-X相比也便宜。

这的不幸之处在于,您需要有足够的工程能力来修补和优化Tomahawk 5的NCCL通信集合。开箱即用,NCCL通信集合仅针对Nvidia Spectrum-X和Nvidia InfiniBand进行了优化。好消息是,如果您有40亿美元用于10万个集群,您有足够的工程能力来修补NCCL并编写优化程序。当然,软件很难,Nvidia总是在最前沿,但通常我们期望每个超大规模计算公司进行这些优化,并从InfiniBand转移。

我们现在将讨论4种不同的10万个GPU集群网络设计的物料清单,与它们相关的交换机和光器件成本,展示不同网络设计的优势,以及一个针对减少光器件优化的GPU集群的物理平面图。


53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询