本文为Semianalysis2024年6月17日的文章,翻译过来以飨读者。
原文题目为:10万卡H100集群:电力、网络拓扑、以太网与InfiniBand、可靠性、故障、检查点。
前沿模型扩展挑战和要求,通过内存重构进行故障恢复,机架布局。
有一种观点认为,自从GPT-4发布以来,人工智能的能力已经停滞不前。这种观点总体上是正确的,但这仅仅是因为没有人能够将大量的计算资源集中在单一模型上。每个发布的模型大致上都处于GPT-4水平(约2e25 FLOP的训练计算量)。这是因为这些模型的训练计算量也大致相同。在谷歌的Gemini Ultra、Nvidia的Nemotron 340B和Meta的LLAMA 3 405B的案例中,所使用的FLOPS与GPT-4相比,数量级相近甚至更高,但由于采用了较差的架构,导致这些模型未能解锁新功能。
Source: SemiAnalysis Estimates
尽管OpenAI获得了更多的计算资源,但他们主要将其用于训练更小、训练过度、推理成本更低的模型,如GPT-4 Turbo和GPT-4o。OpenAI承认,他们最近才开始训练下一代模型。
人工智能的下一个显而易见的趋势是使用海量的视频、图像、音频和文本数据,训练数万亿参数的多模态Transformer模型。目前还没有机构完成这项任务,但各家都在竞赛,争取首个完成这样的模型训练。
多个大型AI实验室,包括但不限于OpenAI/Microsoft、xAI和Meta,正在竞相建立拥有超过100,000个GPU的GPU集群。这些单个训练集群仅服务器资本支出就超过40亿美元,但它们也受到数据中心容量和电力的严重限制,因为GPU通常需要在同一地点进行高速芯片间网络连接。一个拥有100,000个GPU的集群将需要超过150兆瓦的数据中心容量,并在一年内消耗1.59太瓦时电力,按标准电价$0.078/kWh计算,成本高达1.239亿美元/ 年。
Source: SemiAnalysis, US EIA
今天我们将深入探讨大型AI训练集群及其相关基础设施。构建这些集群远比仅仅投入资金复杂得多。由于各种组件(尤其是网络)的高故障率,实现这些集群的高利用率更加困难。我们还将讨论电力挑战、可靠性、检查点、网络拓扑选项、并行方案、机架布局以及这些系统的总物料清单。一年前,我们探讨了Nvidia的InfiniBand问题,这导致一些公司选择Spectrum-X以太网而不是InfiniBand。我们还将讨论Spectrum-X的主要缺陷,这使得超大规模数据中心选择了Broadcom的Tomahawk 5。
为了说明一个拥有100,000个GPU的集群能提供多少计算能力,OpenAI的GPT-4训练BF16 FLOPS大约是2.15e25 FLOP(2150万ExaFLOP),使用了大约20,000个A100 GPU,持续了90到100天。那个集群的BF16峰值吞吐量仅为6.28 ExaFLOP/秒。在一个拥有10万个H100 GPU的集群中,这个数字将飙升到198/99 FP8/FP16 ExaFLOP/秒。与拥有2万个A100 GPU的集群相比,这是峰值理论AI训练FLOPs的31.5倍增长。
Source: Nvidia, SemiAnalysis
在使用 H100 进行 AI 训练时,AI 实验室在训练万亿参数模型时可实现高达 35% 的 FP8 模型浮点运算利用率(MFU)和 40% 的 FP16 MFU。简而言之,MFU 是在考虑功率限制、通信问题、重复计算、滞后和低效内核等各种瓶颈后,有效吞吐量和峰值潜在浮点运算能力的利用率的度量。使用 FP8 的情况下,100,000卡H100 集群仅需四天即可训练 GPT-4。对于在 100,000 H100 集群上训练 100 天的训练任务,可以实现约6e26(600 万 ExaFLOP)的有效FP8模型浮点运算。请注意,硬件的可靠性较差会显著降低 MFU。
功率挑战(Power Challenges)
100,000卡H100 集群所需的关键 IT 功率约为150MW。虽然每个 GPU 本身只有700W,但在每个H100服务器中,CPU、网络接口卡(NIC)、电源模块(PSU)等每个 GPU 额外消耗约575W。除了H100 服务器,AI集群还需要一系列存储服务器、网络交换机、CPU节点、光学收发器等,这些一起占用另外约10%的IT 功率。要了解150MW的功率有多大,可以对比一下国家级超级计算机El Capitan,其关键 IT 功率仅为 30MW。政府超级计算机与行业相比显得相形见绌。
一个主要的功率挑战是,目前没有单一数据中心建筑能够容纳新的约 150MW的部署。当人们提到100,000GPU集群时,通常是指在一个园区内,而不是一栋建筑。由于缺乏其他选择,X.AI甚至在田纳西州孟菲斯改造了一座旧工厂作为数据中心。
这些集群使用光学收发器进行联网,这些收发器的成本与传输距离成比例。长距离的“单模”DR和FR 收发器可以可靠地传输信号约500米到2公里,但成本是“多模”SR和AOC 收发器(只支持最多50米传输距离)的 2.5倍。此外,校园级“相干”800G收发器的传输距离超过2公里,成本则高出10倍以上。

小型H100集群通常通过多模收发器和一两层交换机连接每个GPU和其他 GPU。对于大型GPU集群,需要增加更多层的交换,光学器件变得极其昂贵。此类集群的网络拓扑结构因首选供应商、当前和未来的工作负载以及资本支出而异。
每栋建筑通常包含一个或多个通过更便宜的铜线或多模收发器连接的计算单元。然后使用长距离收发器在“计算岛”之间互联。下图显示了4个计算岛,岛内带宽高,但岛外带宽较低。要在一个地点提供155MW的功率具有挑战性,但我们正在跟踪超过 15 个数据中心建设项目,包括微软、Meta、Google、Amazon、字节跳动、X.AI、Oracle 等,这些项目将为 AI 服务器和网络提供足够的空间。
Source: SemiAnalysis
不同客户根据数据传输基础设施、成本、可维护性、电力、当前和未来的工作负载等因素选择不同的网络拓扑结构。因此,一些客户选择使用 Broadcom Tomahawk 5交换机,另一些客户坚持使用InfiniBand,还有一些选择 NVIDIA Spectrum-X。下面我们将深入探讨原因。
并行计算概述(Parallelism Refresher)
为了理解网络设计、拓扑、可靠性问题和检查点策略,我们首先回顾一下万亿参数训练中使用的三种不同类型的并行性——数据并行、张量并行和流水线并行。我们这里有一个并行性全面解释,包括专家并行。
数据并行是最简单的并行形式,每个GPU持有整个模型权重的副本,每个 GPU(Rank)接收不同的子集数据。此类型并行性通信量最低,因为只需要在每个GPU之间求和梯度(All Reduce)。不幸的是,数据并行仅在每个 GPU 有足够的内存存储整个模型权重、激活状态和优化器状态时才有效。对于像 GPT-4 这样有 1.8 万亿参数的模型,仅模型权重和优化器状态就可能需要高达 10.8TB 的内存进行训练。
Source: ColossalAI
为了克服这些内存限制,使用张量并行性。在张量并行性中,每一层的工作和模型权重分布在多个GPU上,通常分布在隐藏维度上。中间工作通过在自注意力、前馈网络和每一层的层归一化中多次进行设备间的all-reductions进行交换。这需要高带宽,特别是非常低的延迟。实际上,域中的每个GPU在每一层上都与其他GPU一起工作,就像它们都是一个巨大的GPU一样。张量并行性通过张量并行性等级的数量减少了每个GPU使用的总内存。例如,现在通常在NVLink上使用8个张量并行性等级,这将减少每个GPU使用的内存8倍。
Source: Accelerating Pytorch Training
为了克服每个GPU没有足够的内存来适应模型权重和优化器状态的挑战,使用流水线并行性。通过流水线并行性,每个GPU只有一部分层,并且只对该层进行计算,并将输出传递给下一个GPU。这种技术通过流水线并行性等级的数量减少了所需的内存量。流水线并行性有大量的通信量需求,但不像张量并行性那么重。
Source: ColossalAI
为了最大化模型FLOP运算利用率(MFU),公司通常将三种并行性结合起来形成三维并行性。然后在H100服务器内的GPU之间应用张量并行性,在同一岛内的节点之间使用流水线并行性。由于数据并行性通信量最低,岛之间的网络速度较慢,因此岛之间使用数据并行性。
Source: Optimus-CC
像FSDP这样的整体技术在小GPU尺寸的非常大的模型中很常见,它不起作用。它实际上与流水线并行性不兼容。
网络设计注意事项(Network Design Considerations)
网络设计时需考虑并行方案。如果每个GPU以最大带宽连接到每个其他 GPU,采用胖树拓扑结构,那么成本会极其高昂,因为需要四层交换。每增加一层网络,光学器件成本会飙升。
因此,没有人会为大型GPU集群部署完全的胖树架构。相反,他们依赖于计算岛,这些岛内拥有完全的胖树架构,而岛之间带宽较低。有多种方法可以实现,但大多数公司选择在网络的最顶层“过度订阅”。例如,参见 Meta上一代GPU集群架构,支持多达32,000个GPU。有8个总岛,岛内有完全的胖带宽,顶层再有一层交换,过度订阅率为7:1。岛之间的网络速度比岛内慢7倍。
Source: Meta
GPU部署有多个网络,包括前端、后端和扩展(NVLink)。在某些情况下,每个网络运行不同的并行方案。NVLink 网络可能是唯一能满足张量并行性带宽要求的网络。后端网络通常可以轻松处理大多数其他类型的并行性,但如果有过度订阅,则通常仅能处理数据并行性。
此外,一些人甚至没有在顶层过度订阅带宽的计算岛。相反,他们将后端网络转移到前端网络进行岛间通信。
混合 InfiniBand 和前端以太网结构(Hybrid InfiniBand and Frontend Ethernet Fabric)
一家主要公司使用前端以太网跨多个 InfiniBand 岛进行训练。这是因为前端网络的成本更低,可以利用现有数据中心校园网络进行建筑间和区域路由。
Source: SemiAnalysis
不幸的是,由于稀疏技术(如 MoE)的使用,模型大小增长更快,前端网络需要处理的通信量也增长。这种权衡必须仔细优化,否则你可能会拥有两张成本相同的网络,因为前端网络带宽最终会增长到与后端网络带宽相当的程度。
需要注意的是,Google独家使用前端网络进行多 TPU pod 训练运行。他们的“计算结构”称为ICI,最多可扩展到8960个芯片,通过昂贵的800G光学器件和光学电路开关连接每64个TPU水冷机架。因此,Google必须通过使TPU前端网络比大多数GPU前端网络更强大来补偿。
Source: Google at MLSys24
当训练过程中使用前端网络时,必须在岛屿之间进行网络拓扑感知的全局All-Reduce。首先,每个pod或岛屿将通过pod内部的InfiniBand或ICI网络执行局部reduce-scatter,这将使每个GPU/TPU拥有梯度子部分的总和。接下来,通过前端以太网网络在每个主机排名之间执行跨pod的All-Reduce,最后每个pod将执行pod级别的all-gather。
前端网络还负责加载数据。随着我们朝着多模态图像和视频训练数据的方向发展,前端网络的需求将呈指数增长。在这种情况下,前端网络带宽将在加载大型视频文件和执行所有reduce之间竞争。此外,拖尾问题会增加,如果存储网络流量不规则,会导致整个All-Reduce减速,并且无法进行预测性建模。
另一种选择是使用4级InfiniBand网络,超额订阅7:1,有4个pod,每个pod有24,576 H100s,具有非阻塞3级系统。与使用前端网络相比,这允许更大的灵活性,以应对未来的带宽增长,因为将更多的光纤光学器件从建筑A的交换机添加到建筑B的另一个交换机要比在集群中的每个机箱中进行完整的前端网络NIC升级从100G到200G等要容易得多。
Source: SemiAnalysis
这样可以创建更稳定的网络模式,因为前端网络可以专注于加载数据和检查点,而后端网络则专注于GPU到GPU的通信。这也有助于解决拖尾问题。但不幸的是,四层InfiniBand网络非常昂贵,因为需要额外的交换机和收发器。
轨道优化与中间机架设计(Rail Optimized vs Middle of Rack)
为了提高可维护性并增加铜缆网络(<3米)和多模网络(<50米)的使用,一些客户选择放弃NVIDIA推荐的轨道优化设计,转而采用中间机架设计。
Source: Nvidia
轨道优化是一种技术,使每个H100服务器连接到8个不同的叶交换机(而不是全部连接到同一个中间机架交换机),这样每个GPU可以通过仅1次交换机跳跃与更远的GPU通信。这允许增加实际的全对全集合通信性能。全对全集合通信在专家并行(MoE)中被大量使用。
Source: Crusoe
轨道优化设计的缺点是必须连接到不同距离的叶交换机,而不是与所有8个GPU在服务器中都靠近的一个中间机架交换机。当交换机可以放置在同一机架中时,可以使用被动直连电缆(DAC)和主动电缆(AEC),但在轨道优化设计中,由于交换机不一定在同一机架中,因此必须使用光纤。此外,叶到脊距离可能超过50米,迫使使用单模光学收发器。
通过使用非轨道优化设计,可以用廉价的直接连接铜缆取代连接GPU到叶交换机的98,304个光学收发器,从而使25-33%的GPU结构成为铜缆。正如下图所示,与每个GPU到叶交换机的连接上到电缆托盘再横向到一个专门的轨道优化叶交换机机架相比,叶交换机现在位于机架的中间,使每个GPU可以使用DAC铜缆。
Non-rail optimized middle of rack, Source: SemiAnalysis
DAC铜缆运行更凉爽,使用更少的电力,并且比光纤便宜。由于DAC电缆运行更凉爽,使用更少的电力,并且更可靠,这导致更少的网络抖动(网络连接间歇性中断)和故障,这是所有高速互连使用光纤时的一个主要问题。Quantum-2 IB脊交换机使用DAC铜缆时功耗为747瓦特。使用多模光纤收发器时,功耗增加到1,500瓦特。
Rail optimized end of row, Source: SemiAnalysis
此外,轨道优化设计的初始布线对数据中心技术人员来说非常耗时,因为每个链接的两端相距50米且不在同一个机架中。相比之下,中间机架设计中,叶交换机与所有连接到叶交换机的GPU在同一机架中。在中间机架设计中,您甚至可以在集成工厂测试计算节点到叶交换机的链接,因为它们都在同一机架中。
可靠性与恢复(Reliability and Recovery)
可靠性是这些巨型集群的最重要的运营关注点之一,因为当前前沿训练技术的同步性。最常见的可靠性问题是GPU HBM ECC错误、GPU驱动程序卡住、光学收发器故障、NIC过热等。节点经常宕机或抛出错误。
为了保持低故障恢复平均时间并继续训练,数据中心必须在现场保留热备用节点和冷备用组件。当发生故障时,最好换上一个已经开机的备用节点并继续训练,而不是停止整个训练运行。对于这些服务器来说,很多停机时间只是重新启动节点并修复出现的问题。
尽管如此,简单的重新启动并不能解决所有问题,在许多情况下需要数据中心技术人员进行物理诊断和更换设备。在最好的情况下,数据中心技术人员修复损坏的GPU服务器需要数小时,但在许多情况下,可能需要数天才能将损坏的节点重新带入训练运行。损坏的节点和备用热节点是没有积极参与模型计算的GPU,尽管理论上它们有浮点运算能力可以提供。
随着模型的训练,需要频繁地将模型检查点存储到CPU内存或NAND SSD中,以防止发生HBM ECC等错误。当发生错误时,必须从较慢的内存层重新加载模型和优化器的权重并重新启动训练。可以使用容错训练技术,例如Oobleck,提供用户级应用程序驱动的方法来处理GPU和网络故障。
不幸的是,频繁的检查点存储和容错训练技术会影响系统的总体计算利用率(MFU)。集群需要不断暂停以将当前权重保存到持久内存或CPU内存。此外,当从检查点重新加载时,通常每100次迭代只保存一次。这意味着您最多可以丢失99步的有效工作。在一个10万集群中,如果每次迭代需要2秒钟,那么在第99次迭代时发生故障时,最多会损失229个GPU天的工作量。
另一种故障恢复方法是让备用节点通过后端结构从其他GPU进行RDMA复制。由于后端GPU结构大约为400Gbps,每个GPU有80GB的HBM内存,复制权重大约需要1.6秒。使用这种方法,最多只会丢失1步(因为更多的GPU HBM会有最新的权重副本),所以只会损失2.3个GPU天的计算量,加上从其他GPU HBM内存进行RDMA复制权重需要的另外1.85个GPU天。
大多数领先的AI实验室已经实现了这一点,但许多小型公司仍然坚持使用检查点重启这种重、慢、低效的技术来处理所有故障,因为这种方法简单。通过内存重构实现故障恢复,可以为大型训练运行增加多个百分点的计算利用率。
Source: Meta
最常遇到的问题之一是InfiniBand/RoCE链路故障。即使每个NIC到叶交换机的链接平均故障时间为5年,由于高数量的收发器,在一个全新工作集群中,第一次作业失败只需要26.28分钟。如果没有通过内存重构进行故障恢复,在10万个GPU集群中,由于光学故障,将花费更多时间重新启动训练运行,而不是推进模型。
Source: SemiAnalysis
由于每个GPU直接连接到一个ConnectX-7 NIC(通过PCIe交换机),在网络架构层面没有容错性,因此必须在用户训练代码中处理故障,直接增加代码库的复杂性。这是NVIDIA和AMD当前GPU网络结构的主要挑战之一,如果一个NIC、一个收发器或一个GPU发生故障,那么整个服务器就会被认为宕机。
有很多工作正在进行,以使网络可重构并且节点不那么脆弱。这项工作非常重要,因为现状意味着只要一个GPU或一个光纤故障,整个GB200 NVL72就会宕机。一个拥有数百万美元的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个。
Source: Nvidia
由于GPU到叶交换机的链接减少了一半,这也有助于提高第一次作业失败的估计时间。我们估计每个双端口2x400G链接的平均故障时间为4年(相比之下单端口400G链接为5年),这将使第一次作业失败的估计时间提高到42.05分钟,这比没有Cedar-7模块的26.28分钟要好得多。
Source: ServeTheHome
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层相比,4层意味着需要1.33倍的收发器数量。由于Quantum-2交换机的低径向性,完全互连的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实现最大吞吐量。
Source: SemiAnalysis
使用以太网而不是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美元,并且Bluefield-3卡比ConnectX-7卡多使用50瓦的电力。因此,每个节点需要额外的400瓦电力,降低了整个训练服务器的“每皮焦耳智能”效率。将Spectrum X放入数据中心需要额外的5MW功率用于10万个GPU部署,而使用相同网络架构的Broadcom Tomahawk 5部署则不需要。
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。
Source: SemiAnalysis
我们将讨论4种不同的10万个GPU集群网络设计的物料清单、与其相关的交换机和收发器成本,展示不同网络设计的优势,并提供一个优化以减少光纤的GPU集群的物理平面图。

