100000个H100集群:电源、网络拓扑、以太网与InfiniBand、可靠性、故障、检查点

发布于: 雪球转发:0回复:0喜欢:4

有一个阵营认为,自GPT-4发布以来,人工智能能力一直停滞不前。这通常是正确的,但这只是因为没有人能够大规模增加专用于单个模型的计算量。已发布的每个模型都大致为GPT-4级别(训练计算的~2e25FLOP)。这是因为专用于这些模型的训练计算也处于大致相同的水平。在谷歌的Gemini Ultra、Nvidia Nemotron 340B和Meta LLAMA 3 405B的情况下,与GPT-4相比,专用的FLOPS具有相似的规模,甚至更高,但使用了较差的架构,导致这些型号无法解锁新功能。

我把一些结论放在(猩球)“刘翔科技研究”。随着跟踪的推进,观点的修正也是持续进行的。然而,敢于亮出观点就是态度,真诚欢迎各位读者参与进来一起讨论。我平时也会不定期对一些最新科技动向做解读。帮助读者透过现象看本质、真正理解事物的底层逻辑,从而 研究发现机会,行动创造价值,积累在平时。

虽然OpenAI已经获得了更多的计算,但他们主要致力于为GPT-4 Turbo和GPT-4o等推理模型带来更小、过度训练、更便宜的结果。OpenAI承认,他们最近才刚刚开始训练下一层模型。

人工智能的下一步显然是训练一个拥有大量视频、图像、音频和文本的数万亿参数多模式转换器。目前还没有人完成这项任务,但在争夺第一名的竞赛中有一系列活动。

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

构建这些集群比仅仅在问题上投入资金要复杂得多。由于各种组件(尤其是网络)的高故障率,使用它们实现高利用率甚至更加困难。我们还将介绍这些系统的电源挑战、可靠性、检查点、网络拓扑选项、并行方案、机架布局和总材料清单。一年多前,报道了英伟达的InfiniBand问题,这导致一些公司选择Spectrum-X以太网而不是InfiniBand。我们还将介绍Spectrum-X的主要缺陷,该缺陷具有与博通的战斧5配套的超标量。

为了准确地说明100000 GPU集群可以提供多少计算,OpenAI为GPT-4训练的BF16 FLOP约为2.15e25 FLOP(2150万ExaFLOP),在约20000个A100上训练90到100天。该集群的峰值吞吐量只有6.28 BF16 ExaFLOP/秒。在100k H100集群上,这一数字将飙升至198/99 FP8/FP16 ExaFLOP/秒。与20k A100集群相比,这是峰值理论人工智能训练FLOP的31.5倍。

在H100上,人工智能实验室在万亿参数训练运行中实现了高达35%的FP8型号FLOP利用率(MFU)和40%的FP16 MFU。概括一下,MFU是在考虑了开销和各种瓶颈(如功率限制、通信不稳定、重新计算、掉队和低效内核)后,对峰值潜在FLOPS的有效吞吐量和利用率的衡量。使用FP8训练GPT-4,100000 H100集群只需要四天时间。在为期100天的100k H100集群训练中,您可以获得约6e26(6亿ExaFLOP)的有效FP8 Model FLOP。请注意,硬件的低可靠性显著降低了MFU

电力挑战

100k H100集群所需的关键IT功率约为150MW。虽然GPU本身只有700W,但在每个H100服务器、CPU、网络接口卡(NIC)和电源单元(PSU)中,每个GPU的功率还约为575W。除了H100服务器之外,人工智能集群还需要存储服务器、网络交换机、CPU节点、光学收发器和许多其他项目的集合,这些项目加起来又占IT能力的约10%。从最大的国家实验室超级计算功率~150MW的角度来看,El Capitan只需要30MW的关键IT功率。与工业相比,政府的超级计算机相形见绌。

一个主要的电力挑战是,目前没有一座数据中心建筑具备新的约150MW部署的容量。当人们提到10万个GPU集群时,通常指的是在一个校园内,而不是建筑内。电力搜索是如此可怕,由于缺乏其他选择,X.AI甚至将田纳西州孟菲斯的一家旧工厂改建为数据中心。

这些集群与光收发器联网,光收发器的成本与覆盖范围呈滑动比例。远程“单模”DR和FR收发器可以可靠地传输约500米至约2公里的信号,但成本是仅支持约50米范围的“多模”SR和AOC收发器的2.5倍。此外,园区级“相干”800G收发器的射程也超过2公里,尽管价格高出10倍以上

H100的小型集群通常仅通过一两层交换机将400G的每个GPU连接到仅具有多模收发器的其他GPU。对于大型GPU集群,必须添加更多的切换层,并且光学器件变得过于昂贵。此类集群的网络拓扑结构将因首选供应商、当前和未来的工作负载以及资本支出而大不相同。

每栋建筑通常都会包含一个或多个计算机吊舱,这些吊舱通过更便宜的铜线或多模式收发器连接。然后,他们将使用远程收发器,以便在计算的“孤岛”之间进行互连。下图显示了4个计算岛,它们在岛内具有高带宽,但在岛外具有较低带宽。155MW在一个地点交付具有挑战性,但我们正在跟踪超过15个微软Meta谷歌亚马逊、字节跳动、X.AI、甲骨文等数据中心扩建项目,这些项目将为人工智能服务器和网络提供如此大的空间。

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

并行刷新器

为了理解网络设计、拓扑、可靠性问题和检查点策略,我们将首先快速复习万亿参数训练中使用的3种不同类型的并行性——数据并行性、张量并行性和管道并行性。我们在这里对平行性有一个全面的解释。

数据并行是最简单的并行形式,其中每个GPU保存模型权重的整个副本,并且每个GPU(秩)接收数据的不同子集。这种类型的并行性具有最低级别的通信,因为只需要在每个GPU之间对梯度求和(全部减少)。不幸的是,只有当每个GPU都有足够的内存来存储整个模型权重、激活和优化器状态时,数据并行才有效。对于像GPT-4这样的1.8万亿参数模型,仅模型权重和优化器状态就可以占用10.8兆字节的内存进行训练。

为了克服这些内存约束,使用了张量并行性。在张量并行中,每一层的工作和模型权重都分布在多个GPU上,通常分布在隐藏维度上。中间工作通过设备之间的所有减少进行多次交换,包括自我关注、前馈网络和每层的层规范化。这需要高带宽,尤其需要非常低的延迟。实际上,域中的每个GPU在每一层上都与其他GPU协同工作,就好像有一个巨大的GPU一样。张量并行度将每个GPU使用的总内存减少张量并行度等级的数量。例如,目前在NVLink中使用8个张量并行度等级是很常见的,因此这将使每个GPU使用的内存减少8个。

克服每个GPU没有足够的内存来适应模型权重和优化器状态的挑战的另一种技术是使用流水线并行性。使用管道并行性,每个GPU只有一个子集的层,并且只为该层进行计算,并将输出传递给下一个GPU。此技术减少了流水线并行度列数所需的内存量。流水线并行性对通信量的要求很高,但没有张量并行性那么高。

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

像FSDP这样的整体技术在小GPU世界尺寸的非常大的模型中很常见,但它不起作用。它实际上也与FSDP不兼容。

网络设计注意事项

网络的设计考虑到了并行方案。如果每个GPU都以最大带宽连接到胖树拓扑中的其他GPU,那么成本将过高,因为需要4层切换。由于每增加一层网络都需要介于两者之间的光学器件,因此光学器件的成本将飙升。

因此,没有人为大型GPU集群部署完整的树形架构。相反,他们依赖于制造具有完整树架构的计算岛,这些岛之间的带宽较小。有多种方法可以做到这一点,但大多数公司都选择“超额认购”网络的顶层。例如,请参阅Meta的上一代GPU集群架构(最高可达32000个)。总共有8个岛,它们之间有完整的带宽,然后是顶部的另一层切换,订阅量为7:1。岛屿之间的网络连接比岛屿内部的网络连接慢7倍。

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

此外,有些人甚至没有在顶层超额订阅带宽的岛屿。相反,他们使用从后端网络转移到前端网络的方式。

混合InfiniBand和前端以太网结构

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

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

需要注意的是,谷歌专门使用前端网络进行多TPU吊舱训练。他们被称为ICI的“计算结构”最多只能扩展到8960个芯片,每个64个TPU水冷机架都配有昂贵的800G光学器件和光学电路开关。因此,谷歌必须通过使TPU前端网络比大多数GPU前端网络更强大来进行补偿。

当在训练过程中使用前端网络时,必须进行具有网络拓扑意识的全局岛间所有减少。首先,每个吊舱或岛将在吊舱InfiniBand或ICI网络内执行局部减少散射,这将使每个GPU/TPU具有梯度的一个子部分的总和。接下来,将使用前端以太网网络在每个主机等级之间执行跨pod的all reduce,然后最后每个pod将执行pod级别的all collection。

前端网络还负责加载数据。随着我们向多模式图像和视频训练数据迈进,前端网络需求将呈指数级增长。在这种情况下,前端网络带宽将在加载大型视频文件和进行所有缩减之间进行斗争。此外,你的掉队者问题会增加,就好像有不规则的存储网络流量一样,这会导致你的整个减少速度减慢,无法进行预测建模。

替代方案是4层InfiniBand网络,具有7:1的超额订阅,具有4个吊舱,每个吊舱具有24576个H100,具有非阻塞3层系统。与使用前端网络相比,这为未来带宽的增加提供了更大的灵活性,因为与在集群的每个机箱中进行完整的前端网络NIC升级以将其从100G升级到200G等相比,将更多的光纤收发器从a栋的交换机添加到B栋的另一个交换机要容易得多。

这创建了一个更稳定的网络模式,因为您的前端网络可以只专注于加载数据和检查点,而后端网络可以只关注GPU到GPU的通信。这也有助于解决掉队者问题。但不幸的是,由于需要所有额外的交换机和收发器,4层Infiniband网络非常昂贵。

轨道(走线槽)优化与机架中间

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

轨道优化是一种让每个H100服务器连接到8个不同的叶交换机(而不是全部连接到同一个机架中间交换机)的技术,这样每个GPU只需1个交换机跳就可以与更远的GPU通信。这使得现实世界中所有人的集体绩效都有所提高。所有人对所有人的集体交流在混合专家(MoE)专家并行中大量使用。

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

通过使用非轨道优化设计,您可以用廉价的直接连接铜取代将GPU连接到叶交换机的98304个光学收发器,从而使您的GPU结构中有25-33%是铜。正如您从下面的机架图中看到的那样,不是每个GPU到叶交换机的连接都向上到达电缆托架,然后横向9个机架到专用轨道优化的叶交换机机架,而是叶交换机现在位于机架的中间,允许每个GPU使用DAC铜线。

DAC铜线运行温度更低,耗电更少,而且与光学器件相比便宜得多。由于DAC电缆运行得更凉爽,功耗更低,可靠性更高,这会减少摆动(网络链路间歇性断开)和故障,这是所有使用光学器件的高速互连的主要问题。Quantum-2 IB主干交换机在使用DAC铜电缆时使用747瓦。当使用多模光学收发器时,功耗最高可增加到1500瓦

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

可靠性和恢复

由于当前前沿训练技术的同步性,可靠性是这些巨型集群最重要的作战问题之一。最常见的可靠性问题是GPU HBM ECC错误、GPU驱动程序卡滞、光学收发器故障、NIC过热等。节点不断停机或出现错误。

为了保持较低的故障恢复平均时间和持续的培训,数据中心必须在现场保留热备盘节点和冷备盘组件。当发生故障时,与其停止整个训练运行,不如换入一个已启动的工作备用节点,继续训练。这些服务器的许多停机时间只是对节点进行电源循环/重新启动,然后修复出现的任何问题。

然而,简单的重启并不能解决所有问题,在许多情况下,它需要数据中心技术人员进行物理诊断和更换设备。在最好的情况下,数据中心技术人员需要数小时才能修复损坏的GPU服务器,但在许多情况下,可能需要数天时间才能将损坏的节点恢复到训练运行中。坏节点和备用热节点是GPU,尽管理论上有FLOPS要交付,但它们对模型没有积极的贡献。

在训练模型时,需要频繁地将模型检查点指向CPU内存或NAND SSD,以防出现HBM ECC等错误。发生错误时,必须从较慢的内存层重新加载模型和优化器的权重,然后重新开始训练。容错训练技术,如Oobleck,可用于提供用户级应用程序驱动的方法来处理GPU和网络故障。

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

故障恢复的另一种方法是让备用节点通过后端结构从其他GPU进行RDMA复制。由于后端GPU结构约为400Gbps,并且每个GPU有80GB的HBM内存,因此复制权重大约需要1.6秒。使用这种方法,最多只会损失1步(因为更多的GPU HBM将具有权重的最新副本),因此只有2.3 GPU天的计算量+另外1.85 GPU天的RDMA从其他GPU HBM内存复制权重。

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

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

由于每个GPU都直接连接到ConnectX-7 NIC(通过PCIe交换机),因此在网络架构级别没有容错能力,因此必须在用户训练代码处处理故障,这直接增加了代码库的复杂性。这是NVIDIAAMD当前GPU网络结构的主要挑战之一,即使一个NIC出现故障,该GPU也没有其他路径可以与其他GPU通信。由于当前LLM在节点内使用张量并行性的方式,即使一个NIC、一个收发器或一个GPU出现故障,也会认为整个服务器已停机。

为了使网络能够重新配置,使节点不那么脆弱,我们正在做很多工作。这项工作至关重要,因为现状意味着整个GB200 NVL72将只出现1个GPU故障或1个光学故障。一个价值数百万美元的72 GPU机架的故障远比价值几十万美元的8 GPU服务器更具灾难性。

英伟达注意到了这个主要问题,并添加了一个用于可靠性、可用性和可维护性(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连接到叶交换机的计算节点端收发器总数从98304减少到49152。

由于GPU到叶交换机的链接被切成两半,这也有助于估计第一个作业失败的时间。我们估计,每个双端口2x400G链路的平均故障时间为4年(而单端口400G链路为5年),这将使第一次作业故障的估计时间达到42.05分钟,这比没有Cedar-7模块的26.28分钟要好得多。

Spectrum-X NVIDIA

去年,介绍了Spectrum-X在大型网络中相对于InfiniBand的各种优势。即使在性能和可靠性优势之外,Spectrum-X也具有巨大的成本优势。Spectrum-X以太网是每个SN5600交换机有128个400G端口,而InfiniBand NDR Quantum-2交换机只有64个400G的端口。请注意,博通的战斧5交换机ASIC还支持128个400G端口,这使当前一代的InfiniBand处于很大的劣势。

一个完全互连的100k集群可以是3层,而不是4层。具有4层而不是3层意味着需要1.33倍以上的收发器。由于Quantum-2交换机的基数较低,100k集群上完全互连的GPU的最大数量限制为65536个H100。下一代名为Quantum-X800的InfiniBand交换机通过拥有144个800G端口解决了这一问题,尽管从数字“144”可以看出,这是为与NVL72和NVL36系统一起使用而设计的,预计不会在B200或B100集群中使用太多。尽管不必使用Spectrum-X进行4层操作可以节省成本,但不幸的是,您仍然需要从Nvidia LinkX产品线购买高标记的收发器,因为其他收发器可能无法工作或未经Nvidia验证。

与其他供应商相比,Spectrum-X的主要优势在于,Spectrum-X得到了NCCL等NVIDIA库的一流支持,Jensen将您推上分配队列,成为其新产品线的首批客户之一。与战斧5芯片相比,您需要大量的内部工程努力来优化NCCL网络,以实现最大吞吐量。

在GPU结构中使用以太网而不是InfiniBand的一个不幸缺点是,以太网目前不支持网络缩减中的SHARP。在网络中,通过让网络交换机运行这些计算来执行每个GPU的求和,从而减少工作量。SHARP的理论网络带宽增加了2倍,因为它将每个GPU必须执行的发送和写入次数减少了2倍。

Spectrum-X的另一个缺点是,对于第一代400G Spectrum-X,英伟达使用Bluefield3而不是ConnectX-7作为带阻解决方案。对于未来几代,我们希望ConnectX-8能与800G Spectrum-X完美配合。对于超大容量,Bluefield-3和ConnectX-7卡之间的价格差约为300 ASP,另一个缺点是与ConnectX-7相比,该卡多用50瓦。因此,对于每个节点,需要400W的额外功率,从而降低了整个训练服务器的“每皮焦耳的智能”。与具有完全相同网络架构的Broadcom Tomahawk 5部署相比,您放入Spectrum X的数据中心现在需要额外5MW的100000 GPU部署。

博通战斧5

为了避免支付巨额的英伟达税,许多客户都在部署基于博通战斧5的交换机。每个基于战斧5的交换机都有与Spectrum-X SN5600交换机相同的端口数量,128个400G端口,如果您的公司拥有优秀的网络工程师,则可以实现类似的性能。此外,您可以从世界上任何供应商处购买任何通用收发器和铜线,并进行混搭。

大多数客户直接与Celestica等ODM合作,生产使用基于Broadcom的交换机ASIC的交换机,与Innolight和Eoptolink等公司合作生产收发器。基于交换机成本和通用收发器成本,战斧5与英伟达InfiniBand相比要便宜得多,与英伟达Spectrum-X相比也更便宜。

不幸的是,你需要有足够的工程能力来修补和优化战斧5的NCCL通信集体。开箱即用,NCCL通信集体仅针对Nvidia Spectrum-X和Nvidia InfiniBand进行了优化。好消息是,如果你有40亿美元用于10万个集群,你就有足够的工程能力来修补NCCL并编写优化。当然,软件很难,英伟达总是处于流血的边缘,但通常我们希望每个超大型机都能进行这些优化,并放弃InfiniBand。