自GPT-4发布以来,全球AI能力的发展势头有放缓的迹象。
但这并不意味着Scaling Law失效,也不是因为训练数据不够,而是结结实实地遇到了算力瓶颈。
具体来说,GPT-4的训练算力约2e25 FLOP,近期发布的几个大模型,比如Google的Gemini Ultra、Nvidia Nemotron 340B以及Meta Llama3 405B背后使用的训练算力大致与GPT-4相当,没有质的提升,因此无法解锁模型的新能力。
为了成为AI时代的造物主,OpenAI/微软、xAI、Meta等科技巨头都在竞相建立一个由10万块H100构成的超级AI算力集群。
要想实现这个目标,光有钱是远远不够的,这里面涉及到能源挑战、网络拓扑结构、可靠性保障、并行方案、机架布局等众多技术难题。
这些技术难题是人类通向AGI路上的阻碍,同时也孕育着巨大的投资机会。
近日SemiAnalysis发布了一篇重磅深度报告,题为《100,000 H100 Clusters: Power, Network Topology, Ethernet vs InfiniBand, Reliability, Failures, Checkpointing》,对此话题展开分析,含金量很高。
下面我给大家解读一下这篇大报告。
在正式展开之前,我先把主要结论列出来:
GPU数量决定了AI公司的生死线。当前AI公司第一梯队的门票是3.2万卡集群,明年第一梯队的门票可能会提升到10万卡(H100)集群。
一个10万张H100构成的AI集群功耗约为150MW,资本开支超过40亿美金,每年电费高达1.2亿美金。
为了满足下一代万亿参数多模态大模型训练,需要精巧的网络拓扑结构设计,综合使用数据并行、张量并行、流水线并行等技术进行分布式训练。
为了避免缴纳巨额的Nvidia Tax,越来越多的Hyperscaler开始选择博通的Tomahawk 5来搭建自己的超级AI集群,而非Nvidia的Spectrum-X,未来博通的网络收入或将继续飙升。
下面我们正式开始。
一、AI Infra的现状:一边铺设铁轨,一边快速行驶
AI Infra已经成为下一代大模型诞生的重要瓶颈。
有人形容OpenAI内部的状态就像是一列开拓新大陆的火车,科学家负责让火车高速行驶,Infra工程师负责在前面修铁路,铁路铺设和火车行驶是齐头并进的。
根据测算,单个超级AI集群的资本支出超过40亿美金,功耗高达150 MW,每年耗能1.59 TWh。如果按0.078美元/kWh的标准费率测算,每年电费就得1.24亿美金。
虽然造价极其昂贵,全球科技巨头还是趋之若鹜。
为了说明10万卡构成的超级AI算力集群可以提供多少计算能力,我们来测算一下。
OpenAI在大约2万块A100上对GPT-4进行了90天的训练,BF16 FLOPS约为2.15e25 FLOP。
该集群的峰值吞吐量为6.28 BF16 ExaFLOP/秒。
在一个10万块H100构成的超级集群上,这一数字将飙升至198 FP16 ExaFLOP/秒,增加了31.5倍。
使用H100训练万亿参数模型,可以实现高达35%的FP8 MFU和40%的FP16 MFU。
MFU(Model FLOPs Utilization)是衡量模型训练过程中,GPU实际运算能力与其理论峰值的比值。这个指标反映的是训练大模型时硬件资源的实际运算能力。
在10万块H100集群上训练100天,可以实现约6e26的有效FP8 FLOP。
也就是说,只需要4天就可以完成GPT-4的训练。
二、AI背后的能源挑战
算力瓶颈的背后,有着“能源”和“工程能力”这两座大山。
一个由10万块H100构成的集群所需的功率约为150MW。而迄今为止最大的国家超级计算机El Capitan只需要30MW的功率,只有其1/5。
这150MW具体可以分为H100 Server内部的功耗,以及H100 Server外部的配套设备功耗。
H100 Server内部,每块GPU自身功耗约为700W,为每块GPU配套的CPU、NIC(Network Interface Card)、PSU(Power Supply Units)大约需要575W的功耗。
H100 Server外部,AI集群还囊括了存储服务器、网络交换机、光收发器等许多其他设备,约占总功耗的10%。
目前世界上还没有任何一座数据中心有能力部署150MW的AI集群。x.AI甚至将田纳西州孟菲斯市的一家旧工厂改造成了数据中心。
这些AI集群通过光通信进行互联,而光通信的成本与传输距离成正比。
多模SR和AOC收发器的最长传输距离约为50米。
长距离单模DR和FR收发器的传输距离为500米~2000米,但其成本是前者的2.5倍。
园区级800G相干光收发器的传输距离可以超过2000米,但成本要高出10倍以上。
较小规模的H100集群,通常做法是通过1-2层交换机,把所有GPU以400G多模光收发器进行互联。
对于大规模H100集群,需要增加更多层交换机,光学设备的成本也会变得非常昂贵。不同的网络拓扑结构会带来截然不同的资本开支。
每栋数据中心大楼可以称为一个计算岛(compute island),里面包含多个“计算仓”(compute pod),这些计算仓之间用廉价的铜缆互联。随后多个“计算岛”(compute island)之间通过长距离的光通信进行互联。
目前要在一个数据中心内集中提供150MW功率是相当困难的,因此网络拓扑结构的设计变得尤为重要。
有些AI公司选择Broadcom Tomahawk 5,有些选择Infiniband,也有一些选择英伟达的Spectrum-X。下面我们来探讨其中的原因,并比较这些方案的优劣势。
三、AI Infra的核心:网络拓扑与并行设计
要深入理解网络拓扑结构,首先要搞懂3种不同类型的并行设计方法,即数据并行、张量并行、流水线并行。
1. 数据并行(Data Parallelism)
数据并行是最简单的并行形式,每块GPU都拥有模型权重的完整副本,并接受不同的训练数据子集。
这种并行方式的通信要求最低,因为GPU之间只需要传递梯度数据。
但是,数据并行要求每块GPU都有足够的内存来存储整个模型的权重。这对于像GPT-4这样拥有1.8万亿参数的模型而言,意味着高达10.8 TB的内存占用。
2. 张量并行(Tensor Parallelism)
为了克服数据并行带来的内存限制,人们发明了张量并行技术。
张量并行将模型每一层的工作和权重分布在多个GPU上,通常沿着隐藏维度进行分割。这意味着每个GPU只处理模型的一部分,而不是整个模型。
在张量并行中,GPU之间需要频繁通信,以交换中间计算结果,从外面看起来就像是一块巨型GPU一样。因此,张量并行需要高带宽和低延迟的网络连接。
通过张量并行,可以有效减少每块GPU的内存要求。比如使用8个张量并行等级进行NVLink连接时,每块GPU使用的内存可以减少8倍。
3. 流水线并行(Pipeline Parallelism)
另一个克服GPU内存限制的方法是流水线并行技术。
流水线并行的核心思想是将模型的不同层分配给不同的GPU,每块GPU只负责一部分层的计算。
当一块GPU完成层的前向、反向传播运算后,可以将中间结果传递给下一块GPU,自己则可以立即开始计算下一个数据批次。
使用流水线并行技术可以减少每个GPU所需的内存容量,因为每个GPU只存储模型的一部分层。
但它增加了GPU之间的通信量,每个GPU完成计算后,需要将数据传递给下一个GPU,这就要求有高效的网络连接来支持数据的快速传输。
流水线并行对通信量的要求很高,但没有张量并行那么高。
4. 3D并行(3D Parallelism)
为了最大限度提高模型FLOP利用率(MFU),Hyperscaler通常会将三种并行技术结合起来,形成3D并行。
具体做法如下:首先在H100 Server内的GPU之间使用张量并行,然后在同一个计算岛内的节点之间使用流水线并行,最后在不同计算岛之间使用数据并行。
四、Hyperscalers的AI集群设计方案
在理解了并行方案设计之后,我们一起来看下各家Hyperscalers超级AI算力集群的具体方案。
首先来看Meta的设计。如下图所示,这是一个包含32000块GPU的计算集群,共有8个计算岛。
每个计算岛内的GPU通过高带宽连接,而岛与岛之间则通过顶层交换机连接。
顶层交换机的带宽被故意设计为低于连接到下层交换机的总带宽,这种设计称为“Oversubscribe”,即带宽超额订阅。
带宽超额订阅会导致岛屿之间的通信速度降低,但在实际应用中,通常不会对性能产生太大影响,因为不是所有的服务器都会在同一时间使用最大带宽进行通信。
通过在顶层交换机上实施带宽超额订阅,平衡了性能和成本之间的关系。尽管这种设计可能会限制岛屿之间的通信带宽,但通过有效的网络管理,可以确保整个集群的运行效率,同时降低建设和维护成本。
相比Meta而言,Google则是设计了一种专门用于支持大规模TPU计算集群的网络架构,称为ICI(Inter Chiplet Interconnect)。
ICI网络能够支持最多8960块TPU芯片,每个64 TPU水冷机架之间需要通过昂贵的800G进行连接,在训练中只使用前端网络。
由于ICI网络只能扩展到一定的规模,而不是像GPU集群那样可以通过增加更多的网络层级来扩展,Google必须通过不断加强TPU前端网络来弥补这一点。
五、AI Infra的可靠性炼狱
可靠性是AI集群面临的一个重要挑战。
在大模型的训练过程中,GPU节点会不断宕机或报错。常见的报错有GPU HBM ECC Error、GPU驱动器卡死、光收发器故障、网卡过热等。
为了保障模型训练的持续性,降低平均故障恢复时间,数据中心必须保留热备节点。
当发生故障时,千万不要停止训练,而应该直接换上工作备用节点继续训练。
大多数情况下,对节点进行重启就可以解决问题。但在有些情况下,需要技术人员介入,对设备进行物理诊断和更换。
有时技术人员只需几小时就能修复损坏的GPU,但更多情况下,损坏的节点需要几天时间才能重新投入训练。
在训练模型时,我们需要经常将模型的Checkpoint保存到CPU内存或NAND SSD中,以防出现HBM ECC等错误。
当出现报错时,必须从较慢的内存层重新加载模型权重,然后重新开始训练。
但是频繁的进行Checkpointing会损害系统的整体MFU。集群需要不断暂停,对当前权重进行备份保存。
通常来说,每100次迭代会Checkpointing一次,这意味着你最多可能丢失99步有用的训练。
在一个10万卡集群上,如果每次迭代耗时2秒,那么在迭代到99次时发生故障的话,你会损失掉229 GPU天的工作量。
六、诸神之战:博通Tomahawk 5 vs 英伟达Spectrum-X
当前建设10万张H100的超级AI算力集群,可以选择的网络方案主要有三种,分别是Broadcom Tomahawk 5,Nvidia Infiniband,以及Nvidia Spectrum-X。下面我们来详细比较这三种方案的优劣。
在大型AI集群中,Spectrum-X相比InfiniBand具有显著优势,包括性能优势、可靠性优势以及成本优势。
Spectrum-X以太网每个SN5600交换机有128个400G端口,而InfiniBand NDR Quantum-2交换机只有64个400G端口。
需要注意的是,Broadcom的Tomahawk 5交换机ASIC也支持128个400G端口,这使得目前的InfiniBand处于非常不利的地位。
与Tomahawk相比,Spectrum-X的主要优势在于它得到了NCCL等Nvidia库的一流支持,而使用Tomahawk 5时,需要进行大量的内部工程设计,以实现最大吞吐量。
为了避免缴纳巨额的Nvidia Tax,越来越多的Hyperscaler开始选择部署Broadcom Tomahawk 5方案。
每台基于Tomahawk 5的交换机的端口数与Spectrum-X SN5600交换机相同,都是128个400G端口,性能相近。
大多数客户直接与ODM合作,比如交换机方面用Celestica,收发器方面用Innolight、Eoptolink。因此Tomahawk 5的成本远低于Nvidia InfiniBand,也比Nvidia Spectrum-X便宜。
但是要想让Tomahawk 5达到和Nvidia Spectrum-X类似的表现,你需要有足够的工程能力,为Tomahawk 5优化NCCL通信集群。
Nvidia为Spectrum-X和InfiniBand提供了开箱即用的NCCL通信集合,但它不适用于Boardcom的Tomahawk 5。
Jensen一直称Nvidia为一家软件公司,软件生态为其提供了深厚的护城河。但现在越来越多的AI公司尝试弥补自身的工程能力,避免缴纳巨额的Nvidia Tax。
七、BOM成本测算:10万卡AI集群需要多少Capex
定性分析完之后,我们来尝试进行定量测算。
以下详细测算了4种10万块H100构成的AI集群的设计方案的BOM成本。
这4种方案分别如下:
方案1:4层InfiniBand网络,32768个GPU岛,轨道优化,7:1 oversubscription
方案2:3层SpectrumX网络,32768个GPU岛,轨道优化,7:1 oversubscription
方案3:3层InfiniBand网络,24576个GPU岛,非轨道优化,节点内前端网络
方案4:3层Broadcom Tomahawk 5以太网网络,32,768个GPU岛,轨道优化,7:1 oversubscription
不难发现,一个10万块H100超级AI算力集群的Capex约为40亿美金。根据所选网络类型的不同,资本开支略有不同。
比较这4种方案,4层InfiniBand网络的成本是其他方案的1.3-1.6倍,这就是为什么没有人愿意选择大型InfiniBand网络的原因。
相比InfiniBand,Spectrum X提供了更大规模的计算岛、更高的岛间带宽,但它也带来了巨大的代价,即更高的功率需求。