深度了解10 万卡 H100 集群有多难搭?


如火如荼的 AI 竞争中,算力之战同样热火朝天。
包括但不限于 OpenAI、微软、xAI 和 Meta 在内的多个头部公司都在争相建立超过 10 万卡的GPU 集群,在这个规模上,仅仅是服务器的成本就超过 40 亿美元,还要受到数据中心容量和电力不足等多项因素的限制。
我们可以做一个简单的估算,一个 10 万卡集群每年耗电量约为 1.59 太瓦时(terawatt·h,即 10e9 千瓦时),按照美国电力的标准费率 0.78 美元 / 千瓦时,每年的用电成本就达到了1.24 亿美元。

100k H100 GPU Cluster - Annual Electricity Costs
RegionTariff(USD/kWh)Annual Cost $M
USA - Average$0.083$131.9
USA - North Dakota$0.074

$117.6

USA - Utah$ 0.068$108.0
USA - Arizona$0.078$123.9
USA - ND Wind PPA$0.033$52.4
USA - Solar PPA (CAISO)$0.033$52.4

为了说明 10 万个 GPU 集群的强大计算能力,OpenAI 在训练 GPT-4 时使用了大约 2.15e25 BF16 FLOP(21.5 百万亿 ExaFLOP),在大约 2 万个 A100 上进行了 90 到 100 天的训练,峰值吞吐量只有 6.28 ExaFLOPS。
若使用 10 万个 H100 代替 A100,峰值将飙升至 198/99 FP8/FP16 ExaFLOPS,增加了31.5 倍。
在 H100 上,AI 实验室在训练万亿参数模型时,FP8 模型 FLOP 利用率(MFU)最高可达35%,FP16 MFU 则为 40%。
MFU 全称为 model full utilization,是衡量潜在 FLOP 的有效吞吐量和利用率峰值的指标,考虑了功率限制、通信不稳定、重新计算、滞后和低效内核等各种瓶颈。
使用 FP8,一个 10 万卡 H100 的集群只需 4 天就能训练 GPT-4。如果进行 100 天的训练,你可以实现大约 6e26(600 百万亿 ExaFLOP)的有效 FP8 FLOP。不过,硬件的低可靠性会显著降低 MFU。

Total Cluster ExaFLOPs
AI Data Type100k H10020k A100Improvement
INT8197.912.615.8x
FP8197.96.331.5x
BF16/FP1698.96.315.7x
TF3249.53.115.8x

很多人认为,AI 的三大基础设施:数据、算法、算力中,门槛最低的就是算力。只要有钱有资源,买到足够多的芯片,算力短缺就不是问题。
但是,SemiAnalysis 最近的一篇文章指出,事实绝非如此。构建算力集群,绝对比一掷千金要复杂得多。
GPT-4 发布以来,似乎还没有出现下一代能力更强的 LLM,很重要的原因就是几乎没有组织能够大规模增加专用于单个模型的计算量。
Gemini Ultra、Nemotron 340B 和 Llama 3 这些模型与 GPT-4 的训练计算量相近(约为2e25 FLOP),甚至更高,但使用了较差的集群架构,导致它们无法进一步释放能力。

电力挑战

10 万卡集群所需的关键 IT 部件的总功率约为 150MW,相比之下,美国最大的国家实验室超算 El Capitan 的关键 IT 功率只有 30MW,约为五分之一,可谓是相形见绌。在如此庞大的功率中,GPU 本身的耗电实际上只有不到一半。
根据官方参数,每张 H100 的功率为 700W,但服务器上还有 CPU、网卡(NIC)、供电单元(power supply unit)等设备,功率约为 575W。除了 H100 服务器,集群中还需要部署一系列的存储服务器、网络交换机、CPU 节点、光纤收发器和许多其他设备,约占 IT 功耗的 10%。
目前没有任何一座数据中心的大楼有能力部署 150MW 功率的设备。因此,已建成的 10 万GPU 集群通常是分布在一整个园区中,而非单座大楼。
由于可用的数据中心有限,xAI 甚至选择将田纳西州孟菲斯的一家旧工厂改造为数据中心。因为服务器分布在整个园区而非单栋大楼内,联网成本就会无形增高,因为光纤收发器的成本与传输距离成正比。
多模SR 和 AOC 收发器仅支持最长约 50m 的传输距离,显然不可用。长距离「单模」DR和 FR 收发器能可靠地在 500m~2km 范围内传输信号,但成本是前者的 2.5 倍。此外,园区级别的 800 相干光收发器的传输距离可以超过 2km,但价格更贵,要高出 10 倍以上。

H100 的小型集群通常只使用多模收发器,通过一层或两层的交换机,以 400G 的速度将每个GPU 连接在一起。如果是大型集群,则需要增加更多层的交换机,光纤设备也会极其昂贵。在大型集群的园区中,每栋大楼包含一个或多个 pod,由多模收发器(或者较为廉价的铜缆)相连,形成一个计算岛。每个计算岛之间再通过长距离收发器互连,岛内带宽较高,岛间带宽较低。

并行化方案 

数据并行

在较大参数的训练中,一般有 3 种不同类型的并行化——数据并行(data parallelism)、张量并行(tensor parallelism)与流水线并行(pipeline parallelism)。
数据并行是其中最简单的并行方式:每个 GPU 拥有模型权重的全部副本,并分别保存一部分数据。前向计算过程中每个 GPU 独自工作,梯度更新时将所有 GPU 计算出的梯度相加,再一起更
新,因此在三种方式中,数据并行对 GPU 间通信的要求最低。然而,这种方案要求每个 GPU 都有足够内存来存储整个模型的权重、激活函数和优化器状态。
像 GPT-4 这种级别的 LLM,参数规模可以达到 1.8 万亿,需要占据 10.8TB 内存,显然无法全部塞到一个 GPU 中。

张量并行

为了克服内存的限制,就有人提出了张量并行:神经网络中每一层的权重和计算都分布在多个GPU 上,一般会覆盖全部隐藏层。在每一层的自注意力、前馈网络和层归一化等操作中,都需要设备间进行多次归约。
可以想象成,在每一层的前向计算中,所有 GPU 都在协同工作,仿佛组成了一个巨型 GPU。目前在 NVLink 上通常使用 8 个张量并行等级,相当于每个 GPU 的内存消耗降低到了原来的八分之一。由于这种方式中设备间需要频繁通信,因此要求高带宽、低延迟的网络环境。

流水线并行 

除了张量并行,GPU 内存不足的另一种解决方案就是流水线并行。顾名思义,这种方案是将前向计算看成一个流水线,每个 GPU 负责其中一环,也就是网络中的一层或几层,完成计算后将结果传递给下一个 GPU。流水线并行对跨设备通信的要求也很高,但没有张量并行那么苛刻。 

为了最大限度地提高模型 FLOP 利用率,三种并行模式通常结合使用,形成 3D 并行。张量并行对通信要求最高,因此应用于同一服务器内的多个 GPU, 再在同一计算岛内的节点间使用管道并行。由于数据并行的通信量最小,而且岛与岛之间的联网速度较慢,因此跨计算岛时使用数据并行。

网络设计

拓扑结构

进行网络拓扑设计时需要同时考虑到所用的并行化方案。如果采用胖树拓扑结构(fat-tree topology),每两个 GPU 之间都用最大带宽相连,就需要 4层交换,成本十分高昂。
因此,没有大型 GPU 集群会部署全胖树架构。取而代之的方案是,制造具有全胖树架构的计算岛,同时减少岛间的带宽。比如,Meta 的上一代 GPU 集群架构使用了 3.2 万张芯片,总共有8个计算岛,岛与岛之间部署全速带宽,然后在顶部另加一个 7:1 的收敛比(oversubscription)的交换层,于是岛与岛之间的联网速度就是岛内的七分之一。

网络设备部署

GPU 部署有多种网络,包括前端网络、后端网络和扩展网络(NVLink),每个网络中运行不同的并行方案。对于张量并行的带宽要求而言, NVLink 网络可能是唯一足够快的网络。后端网络通常可以轻松处理大多数其他类型的并行,但如果存在「收敛比」,通常只能采用数据并行。此外,有些数据中心甚至没有在顶层设置「收敛比」带宽的孤岛。相反,他们将后端网络迁移到前端网络。
一家大型公司利用前端以太网在多个 InfiniBand 计算岛上进行训练。这是因为前端联网的成本要低得多,而且可以利用楼宇间现有的数据中心园区网络和区域路由。

遗憾的是,由于采用了 MoE 等稀疏技术,模型尺寸增长速度加快,前端网络需要处理的通信量也随之增加。这种权衡必须仔细优化,否则最终会出现两种方案网络成本趋同的情况,因为前端网络带宽最终会增长到与后端网络带宽相匹配的程度。
值得注意的是,谷歌在多 TPU pod 训练运行中只使用前端网络。他们被称为 ICI 的计算结构最多只能扩展到 8960 个芯片,每个包含 64 个 TPU 的水冷机架之间需要使用昂贵的800G 光纤和光路交换机进行连接。因此,谷歌必须使 TPU 前端网络比大多数 GPU 前端网络更强大,以弥补这一不足。

在训练过程中使用前端网络时,全局归约操作必须能够依据各计算岛之间的网络拓扑结构。首先每个 pod 或计算岛将在内部的 InfiniBand 或 ICI 网络中执行局部的规约-分散操作,使每个GPU/TPU 拥有梯度的一部分总和。
接下来,将使用前端以太网络在每个主机等级之间执行跨 pod 归约,最后每个 pod 将执行 pod级全收集。前端网络还负责加载数据。随着多模态图像和视频训练数据的发展,对前端网络的要求将呈指数级增长。在这种情况下,加载大型视频文件和归约这两种操作之间将争夺前端网络带宽。此外,由于存储网络流量不规则,会导致整个归约过程变慢,无法进行预测建模,增加了滞后问题。
另一种方法是使用 4 层 InfiniBand 网络, 采用 7:1 的收敛比,4 个 pod, 每个 pod 有 24576个 H100,采用无阻塞 3 层系统。与使用前端网络相比,这为将来增加带宽提供了更大的灵活性,因为与升级集群中每个机箱的前端网络网卡相比,在两个大楼的交换机之间添加更多光纤收发器要容易得多。

这样可以创建一个更稳定的网络模式,因为前端网络可以只专注于加载数据和检查点,而后端网络可以只专注于 GPU 间通信。但遗憾的是,由于需要额外的交换机和收发器,4 层Infiniband 网络非常昂贵。

轨道优化与中间架

为了提高可维护性并增加铜缆网络(<3 米)和多模网络(<50 米)的使用,一些客户选择放弃英伟达推荐的轨道优化设计(rail optimized design),转而采用中间架设计(Middle of Rack design)。

轨道优化是一种技术,可让每台 H100 服务器连接到 8 个不同的叶交换机(而不是全部连接到同一个机架中的交换机),这样每个 GPU 只需跳一次交换机就能与更远的 GPU 通信 , 提高全对全集体通信(all-to-all collective communication)性能。比如在混合专家(MoE)并行中,就大量使用了全对全集体通信。
轨道优化设计的缺点则是,必须连接到不同距离的不同叶交换机,而不是将一个机架中间的交换机靠近服务器中的所有 8 个 GPU。当交换机位于同一机架时,可以使用无源直连电缆(DAC)和有源电缆(AEC),但在轨道优化设计中,交换机不一定位于同一机架,因此必须使用光学器件。此外,叶交换机到骨架交换机的距离可能大于 50 米,因此必须使用单模光收发器。如果采用非轨道优化设计,则可以用廉价的直连铜缆取代连接 GPU 和叶交换机的 98304 个光纤收发器,从而使您 GPU 链路中铜缆占比达到 25-33% 。

可靠性与恢复

由于当前的模型训练都是同步进行,可靠性就成为了巨型集群最重要的运行问题之一。最常见的可靠性问题包括 GPU HBM ECC 错误、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 日。
大多数领先的人工智能实验室都采用了这一技术,但许多小型公司仍坚持使用繁重、缓慢、低效的技术,即从检查点重新启动处理所有故障。通过内存重构实现故障恢复可为大型训练运行的 MFU 提升好几个百分点。

网络故障方面,最常见问题之一是 Infiniband/RoCE 链路故障。由于收发器数量较多,即使每个网卡到最底层交换机链路的平均故障率为 5 年,在一个全新的、正常运行的集群上发生第一次作业故障也只需要 26.28 分钟。
如果不通过内存重建进行故障恢复,那么在 10 万卡的 GPU 集群中,由于光纤故障而重新启动运行所花费的时间,将比模型实质进行计算所花费的时间更多。
由于每个 GPU 都直接连接到 ConnectX-7 网卡(通过 PCIe 交换机),在网络架构层面没有容错能力,因此故障必须在用户训练代码中处理,增加了代码库的复杂性。这是当前英伟达和 AMD 的 GPU 网络结构的主要挑战之一,即使一个网卡故障,该 GPU 无法与其他 GPU 通信。
由于大语言模型(LLM)在节点内使用张量并行,如果一个网卡、一个收发器或一个 GPU 故障,整个服务器就会宕机。目前有很多工作正在进行,以使网络可重配置,减少节点的脆弱性。这项工作至关重要,因为现状意味着整个 GB200 NVL72 仅因一个 GPU 或光学故障就会宕机。显然,一个价值数百万美元的 72 GPU 机架宕机比一个价值几十万美元的 8 GPU 服务器宕机更具灾难性。
英伟达已经注意到这个重大问题,并增加了一个专用的 RAS(可靠性、可用性和可维护性)引擎。其中,RAS 引擎通过分析芯片级数据,如温度、恢复的 ECC 重试次数、时钟速度、电压等指
标,来预测芯片可能的故障并提醒数据中心技术人员。
这将使技术人员能够进行主动维护,例如使用更高的风扇速度配置来保持可靠性,并在以后的维护窗口期中将服务器从运行队列中撤出进行进一步的物理检查。此外,在开始训练任务之前,每个芯片的 RAS 引擎将执行全面的自检,例如运行已知结果的矩阵乘法以检测静默数据损坏(SDC)。

成本优化

Cedar-7

一些客户如微软和 OpenAI 正在使用 Cedar Fever-7 网络模块,而不是 8 个 PCIe 形式ConnectX-7 网络卡。
使用 Cedar Fever 模块的主要好处是,它仅需 4 个 OSFP 插槽而非 8 个,并允许在计算节点端使用双端口 2x400G 收发器。这将每个 H100 节点连接到叶交换机的收发器数量从 8 个减少到 4 个;计算节点端连接 GPU 到叶交换机的收发器总数从 98304 减少到 49152。

由于 GPU 到叶交换机的链接减少了一半,这也有助于延长首次作业失败的时间。根据估计,每个双端口 2x400G 链接的平均故障时间为 4 年(相比单端口 400G 链接的5年),这将使首次作业失败的估计时间从 26.28 分钟延长至 42.05 分钟。

Spectrum-X

InfiniBand 的优势在于,以太网并不支持 SHARP 网络内缩减。而 SHARP 能将每个 GPU 需要进行的发送和写入次数减少 2 倍,因此它的理论网络带宽也增加了 2 倍。但 InfiniBand NDR Quantum-2 交换机只有 64 个 400G 端口,而每个 Spectrum-X 以太网的SN5600 交换机有 128 个 400G 端口,Broadcom 的 Tomahawk 5 交换机 ASIC 也支持 128个 400G 端口。由于 Quantum-2 交换机的端口容量较低,在一个拥有 10 万节点的集群中,完全互联的 GPU数量最多只能达到65,536 个 H100。 
不过,下一代 InfiniBand 交换机——Quantum-X800,将通过 144 个 800G 端口解决这个问题,但从144这个数字可以看出,这是为 NVL72 和 NVL36 系统设计的,不太可能在B200 或 B100 集群中广泛使用。
Spectrum-X 的主要优势在于其得到了 NVIDIA 库如 NCCL 的一级支持——老黄会将你推到他们新产品线的首批客户队列中。
相比之下,如果你使用的是 Tomahawk 5 芯片,就需要大量的内部工程努力来优化网络以实现最大吞吐量。然而,如果采用 Spectrum-X,就必须加价购买 Nvidia LinkX 产品线中的收发器,因为其他收发器可能无法正常工作或者通不过英伟达的验证。
此外,英伟达在第一代 400G Spectrum-X 中,使用了 Bluefield-3 来代替 ConnectX-7 作为临时解决方案。(ConnectX-8 预计能够与 800G Spectrum-X 完美配合)在超大规模的数据中心中,Bluefield-3 和 ConnectX-7 的价格差异约为 300 美元 ASP,但前者要多耗电 50 瓦。因此,每个节点需要额外的 400 瓦功率,降低了整体训练服务器的每皮焦尔智能度。
现在,将 Spectrum-X 放入数据中心需要额外的 5MW 功率来部署 10 万个 GPU,而使用相同网络架构的 Broadcom Tomahawk 5 则不需要。

Tomahawk 5

为了避免给英伟达支付高昂的费用,许多客户选择部署基于 Broadcom Tomahawk 5 的交换机。每个基于 Tomahawk 5 的交换机与 Spectrum-X SN5600 交换机一样,拥有 128 个 400G 端口,如果公司有优秀的网络工程师,可以实现类似的性能。此外,你可以从任何供应商购买通用的收发器和铜缆,并进行混合使用。
大多数客户直接与 ODM 合作,如 Celestica 的交换机,以及与 Innolight 和 Eoptolink 的收发器。基于交换机和通用收发器的成本,Tomahawk 5 相比 Nvidia InfiniBand 便宜得多,相比Nvidia Spectrum-X 也更具成本效益。
不幸的是,你需要足够的工程能力来为 Tomahawk 5 修补和优化 NCCL 通信集群。毕竟,虽然后者开箱即用,但仅针对 Nvidia Spectrum-X 和 Nvidia InfiniBand 进行了优化。好消息是,如果你有 40 亿美元用于 10 万个集群,就应该也有足够的工程能力来修补 NCCL 并进行优化。当然,软件开发是困难的,但 Semianalysis 认为,每个超大规模数据中心都会进行优化并抛弃 InfiniBand。

物料清单

每 10 万个 H100 集群的总资本支出约为 40 亿美元,但具体金额会因所选择的网络类型而有所不同。
具体来说,可以分为四种:
1. 4 层 InfiniBand 网络,包含 32,768 个 GPU 集群,轨道优化,7:1 收敛比
2. 3 层 Spectrum X 网络,包含 32,768 个 GPU 集群,轨道优化,7:1 收敛比
3. 3 层 InfiniBand 网络,包含 24,576 个 GPU 集群,非轨道优化,用于前端网络的集群间连接 
4. 3 层 Broadcom Tomahawk 5 以太网网络,包含 32,768 个 GPU 集群,轨道优化,7:1 收敛比

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值