万字长文】10 万卡 H100 集群的尽头……

万字长文】10 万卡 H100 集群的尽头……

以下文章来源于DETACHED UNCLE ,作者糊涂大叔at

DETACHED UNCLE.

潜居抱道舞经阁

GPT-4 在约 2 万块 A100 上训练 90-100 天,如果利用 10 万卡的 H100 集群,则仅仅需要 4 天时间。微软/OpenAI、Meta、xAI 都在集中建设 10 万卡 H100 集群,单是硬件投入就高达 40 亿美金,单集群就需要 150 MW 的功耗,每年的电力成本 1.239 亿美金,约占硬件投入成本的 3%。

10 万卡 H100 集群的尽头还远不是电力。在算力组网时,为了避免缴纳更多的英伟达税,越来越多的头部客户正在摒弃 Infiniband 方案,而选择以太网方案。除了在初始硬件投入就能节约 4 亿美金之外,每年还能进一步节约 400多万美金的电费。

全文 13000 字,建议先收藏,再细看。 要将 150 兆瓦 (MW) 转换为瓦 (W),请将兆瓦数乘以 100 万,因为 1 兆瓦等于 106 瓦

图片

有人认为,自 GPT-4 发布以来,LLM 的能力便一直停滞不前。之所以如此,是因为没有人能够大规模地提高专用于单个模型训练的算力。已发布的模型的体量与 GPT-4 大致相当(约 2x1025 FLOPs 的训练计算量),这是因为用于训练这些模型的算力规模大致相同。谷歌的 Gemini Ultra、Nvidia Nemotron 340B 和 Meta LLAMA-3 405B 等模型,所投入的训练算力( FLOPS )量级与 GPT-4 相近甚至更高,但因其使用的是相对劣等的架构,导致这些模型并未涌现出新的能力。

图片

 资料来源: SemiAnalysis预估

虽然 OpenAI 已经获得了越来越多的算力,但他们大多将其用于训练更小、过度训练(overtrained)、推理成本更低的模型,如 GPT-4 Turbo 和 GPT-4o。OpenAI 承认,他们最近才开始训练更高层级的大模型。

人工智能的下一步显然是利用海量视频、图像、音频和文本,来训练一个数万亿参数的多模态 Transformer 模型。虽然目前还没有人完成这项任务,但当前这个领域的竞争已经十分激烈。

多个大型 AI 实验室(包括但不限于 OpenAI/微软、xAI 和 Meta)都在竞相建立超过 10 万卡的 GPU 集群。这些单训练集群的服务器资本支出就超过了 40 亿美元,而且还受到数据中心功耗和电力不足的严重限制,因为 GPU 集群往往通过集中部署来利用芯片与芯片之间的高速网络。一个 10 万卡 GPU 集群需要超过 150MW 的功耗容量,并且每年耗费 1.59 TWh (one trillion watts)的电量,如果按 0.078 美元/千瓦时的标准费率来计算,每年电费高达 1.239 亿美元

图片

资料来源: SemiAnalysis, US EIA

现在我们开始深入讨论大型 AI 训练集群及其基础设施。

构建大型 AI 训练集群的复杂度不仅局限在超额资金的投入上。由于各种组件(尤其是网络连接)的故障率很高,因此想要实现高可用的大型 AI 训练集群就变得更加困难。我们还将介绍这些系统的电力挑战、可靠性、checkpoint 机制、网络拓扑选择、并行方案、机架布局和总材料清单。一年多以前,SemiAnalysis 就曾报道过英伟达 InfiniBand 方案的问题,该问题导致一些公司开始选择基于以太网的Spectrum-X 而非 InfiniBand 方案进行组网。今天,将介绍 Spectrum-X 的主要缺陷,这些缺陷会进一步驱使超大规模企业选择博通的 Tomahawk 5 方案(译者注:同为以太网方案)。

我们通过对标 GPT-4 的训练来了解一个 10 万卡 GPU 集群能提供多少计算能力。OpenAI 在约 2 万块 A100 上对 GPT-4 模型持续训练了90-100 天( 16浮点运算,2.15x1025 FLOPs),该集群的峰值吞吐为 6.28 BF16 ExaFLOP/秒。如果使用一个 10 万卡 H100 集群,集群的峰值吞吐可以飙升至 198/FP8 or 99/FP16 ExaFLOP/秒。与 2 万卡 A100 集群相比,AI 训练算力可提升 31.5 倍。

图片

资料来源: Nvidia, SemiAnalysis

MFU(Model FLOPs Utilization) 是用来衡量算力集群有效吞吐量和利用率的指标,该指标已经将运营费用和各种瓶颈(例如功耗限制、通信障碍、重新计算、滞后和低效内核等)考虑在内。AI 实验室已经在 H100 集群的万亿次参数训练中,8位浮点运算上实现了 35% 的 MFU、16 位浮点运算实现了高达 40% 的 MFU。使用8位浮点运算,在 10 万卡 H100 集群上只需 4 天即可完成 GPT-4 训练。该集群运行 100 天,可以实现有效的8位浮点运算算力约 6x1026 flops。需要注意的是,硬件的可靠降低有可能会导致 MFU 的大幅损失。

功耗挑战

10万 H100 集群所必需的 IT 功耗约为 150MW。虽然 GPU 本身的能耗仅为 700W,但在每台 H100 服务器中,CPU、网络接口卡(NIC)和电源装置(PSU)需要为每个 GPU 再消耗约 575W。除 H100 服务器外,AI集群还需要一系列存储服务器、网络交换机、CPU 节点、光模块和许多其他设备,这些设备的总能耗约占 IT 能耗的 10%。最大的国家实验室超级计算机 El Capitan 所必需的IT 功耗仅为 30 MW,政府超级计算机与工业超级计算机与之相比相形见绌。

目前面对的主要功耗挑战是,没有任何一座数据中心大楼具备新增约 150MW 功耗设备的能力。当人们提到 10 万卡 GPU 集群时,通常指的是在一片园区内部署,而不是单栋建筑内部署。由于缺乏其他选择,xAI 甚至将田纳西州孟菲斯市的一家旧工厂改造成了智算中心。

这些集群通过光模块互联,而光模块的成本与覆盖范围成正比。 通常,"多模" SR 和 AOC 光模块能支持约 50 米的传输距离,而长距离"单模" DR 和 FR 光模块可以可靠地传输约 500 米至约 2 千米的信号,但其成本是“多模”光模块的 2.5 倍。此外,园区级 "相干" 800G 光模块的传输距离也能超过 2 千米,但其价格要高出 10 倍以上。

图片

资料来源: SemiAnalysis

H100 的小型集群通常只使用“多模”光模块,通过一到两层的交换机网络实现 400G 带宽的 GPU 互联。如果是大型 GPU 集群,则必须增加更多层的网络交换机,相应的,光设备的成本也会变得非常昂贵。此类集群的网络拓扑结构将因首选供应商、当前和未来的工作量以及资本支出的差别而大不相同。一般来说,每栋大楼都将包含一个或多个计算节点,它们之间用较便宜的铜缆和多模光模块进行连接。然后,它们将使用较长距离的光模块来实现岛(island)际的互连。

下图展示的是 4 个计算岛的互联方式,在计算岛内具备高速带宽,而计算岛外的带宽较低。要在同一个地点提供 150 MW的算力设施非常困难,但我们正在跟踪超过 15 个智算中心的建设情况,例如微软、Meta、谷歌、亚马逊、Bytedance、X.AI、甲骨文等,这些智算中心将具备上述算力(AI服务器及网络)的能力。 

图片

资料来源: SemiAnalysis

不同的客户会从数据传输基础设施、成本、可维护性、电力、当前和未来的工作量等不同维度来选择差异化的网络拓扑结构。因此,有些客户会选择博通的Tomahawk 5 交换机,有些客户坚持使用 Infiniband,而有些客户则选择英伟达 Spectrum-X。下面我们将深入探讨其中的原因。

(译者注:Tomahawk 5 是博通公司(Broadcom)推出的一款以太网交换机芯片,它具有极高的数据吞吐量,速率高达 51.2 Tbps,是业界首款达到这一速度的交换机芯片。这款芯片专为超大规模和云客户设计,能够显著提高端口密度,同时与上一代芯片相比降低功耗。Tomahawk 5 支持多种端口配置,包括单芯片支持 64 端口 800Gbps、128 端口 400Gbps 或 256 端口 200Gbps 的交换机。

Spectrum-X 是 NVIDIA 推出的一款专为 AI 打造的以太网网络平台。它通过结合 NVIDIA Spectrum-4 以太网交换机和 NVIDIA BlueField®-3 DPU,实现了显著的 AI 性能和能效提升,为多租户环境中的 AI 工作负载提供了一致、可预测的性能 。Spectrum-X 网络平台还提供了 NVIDIA 加速软件和软件开发套件(SDK),使开发者能够构建软件定义的云原生 AI 应用 。)

吃果冻不吐果冻皮

专注于AI工程化(LLM、MLOps、LLMOps、RAG、Agent)落地。

148篇原创内容

公众号

并行设计

要了解网络设计、拓扑结构、可靠性问题和 checkpoint 机制,我们首先要快速复习一下万亿参数训练中使用的 3 种不同类型的并行性--数据并行(Data Parallelism)、张量并行(Tensor Parallelism)和流水线并行(Pipeline Parallelism)。我们在此对并行性进行了全面解释。

数据并行是最简单的并行形式,其中每个 GPU 都拥有模型权重的完整副本,并接收不同的数据子集。这种并行方式的通信水平最低,因为每个 GPU 之间只需对梯度进行加总。数据并行的局限在于:只有在每个 GPU 都有足够内存来存储整个模型的权重、前向传播的中间结果和优化器状态时才能起作用。对于像 GPT-4 这样拥有 1.8 万亿参数量的模型,仅模型权重和优化器的训练就需要多达 10.8TB 的内存。(译者注:单块 H100 GPU 的内存为 80GB。)

图片

资料来源: ColossalAI

张量并行技术可以克服内存限制。在张量并行技术中,模型权重沿着隐藏维度进行分割,并分布在多个 GPU 上。其中,(模型)每一层的中间计算结果,包括自注意力机制(self-attention)、前馈神经网络(feed forward network)和层归一化(layer normalizations)等,需要GPU之间频繁通信来实现交换。这就需要高带宽,尤是极低的延迟。实际上,工作域中的每一块 GPU 都在每一层上与其他 GPU 协同工作,就好像所有 GPU 组成了一块巨型的 GPU 一样。张量并行通过增加张量并行的数量(ranks)的方式来降低对单个 GPU 内存的需求。例如,目前在 NVLink 上通常使用 8 个张量并行,因此每个 GPU 使用的内存将变为原来的 1/8。

图片

资料来源: Accelerating Pytorch Training

要克服每个 GPU 没有足够内存来适配模型权重和优化器的难题,另一种技术是使用流水线并行。利用流水线并行技术,每个 GPU 只拥有模型的部分层,并只负责对这些层的计算任务,并将计算结果传递给下一个 GPU。这种方式通过增加流水线并行的层级来降低对单个 GPU 内存的需求。流水线并行对通信量的要求很高,但没有张量并行那么高。

图片

资料来源: ColossalAI

为了最大限度地提高模型算力利用率(MFU),公司通常会将三种并行技术结合使用,形成 3D 并行。在 H100 服务器内的 GPU 之间使用张量并行,然后在同一个计算岛内的服务器节点之间使用流水线并行。由于数据并行的通信量最小,且岛与岛之间的互联速度较慢,因此岛与岛之间使用数据并行。

图片

资料来源: Optimus-CC

网络设计注意事项

网络设计时需要考虑到 GPU 并行设计的方式。如果在胖树拓扑(fat-tree topology)中,每块 GPU 都以最大带宽连接到其他 GPU,那么通信成本将会变得非常高昂。因为这需要 4 层交换网络才能实现,而每增加一层网络,中间就需要更多的光学器件,组网成本就会飙升。

因此,在大规模 GPU 集群部署时,往往不会采用全胖树拓扑。取之可行的方法是,构建(小规模的)全胖树拓扑结构的计算岛,同时以较低的网络带宽实现岛间互联。可以实现的方式有很多种,大多数公司都会在顶层网络选择 "带宽过载(oversubscribe)"的模式。例如,Meta 在上一代的 3.2 万卡 GPU 集群中,设计了 8 个具备全速带宽的计算岛,计算岛之上的一层交换机网络的带宽过载比为7:1。岛际互联的网络速度要比岛内网速慢 7 倍。

图片

资料来源: Meta

GPU 部署涉及多个网络,包括前端网络、后端网络和扩展网络(NVLink)。一般情况下,需要在不同的网络中运行不同的并行方案。对于张量并行方式而言,NVLink 网络可能是唯一速度足够快、能够满足带宽要求的网络。一般来说,后端网络可以轻松处理大多数其他类型的并行方式,但如果出现了带宽过载,通常只能采用数据并行的方式。

(译者注:(1)GPU服务器内选择NVLink的原因是张量并行对高带宽的要求,数据并行方式对网络带宽要求最低,用于岛际互联。

(2)前端网络(Frontend Network):前端网络通常指的是连接计算节点和输入/输出(I/O)系统的网络,负责处理数据的输入和输出。它管理着计算节点与存储系统之间的通信,确保数据可以快速加载到 GPU 或其他处理器中,以及从它们那里输出结果。前端网络可能需要处理大量的数据传输,尤其是在涉及到大规模数据集或多模态数据(如图像和视频)的训练任务时。

(3)后端网络(Backend Network):后端网络则是指计算节点之间的内部通信网络,它负责节点之间的数据交换和同步。对于 GPU 集群来说,后端网络可能用于处理并行计算中的不同 GPU 之间的通信,例如在执行张量并行性或数据并行性时,GPU 之间需要交换中间结果或梯度信息。后端网络通常要求有较低的延迟和较高的带宽,以便高效地支持复杂的计算任务和快速的数据交换。)

另外,还有些设计案例选择不在上层的交换机网络中设置带宽过载机制,而是通过将后端网络迁移到前端网络来实现(backend network into frontend networking)。

InfiniBand 前端以太网混合结构

一家头部公司曾在多个 InfiniBand 组建的计算岛上之上使用前端以太网进行组网训练。这样可以降低前端网络的成本,而且可以利用建筑物和区域路由之间现成的园区数据中心网络进行通信。

图片

资料来源: SemiAnalysis

不幸的是,由于采用了 MoE 等稀疏技术,模型规模的增长速度变快,前端网络需要处理的通信量也随之增加。在模型规模与前端网络要求之间必须要谨慎权衡,否则最终会导致前端网络的成本接近后端网络成本,因为前端网络的带宽需求(因处理通信量的需求)会逐渐增加,以至于最终可与后端网络的带宽相匹敌。

(译者注:在机器学习和深度学习中,模型稀疏技术通过只更新模型的一部分参数来减少计算量和内存需求,从而允许模型扩展到非常大的规模,同时仍然保持训练的可行性。)

值得一提的是,谷歌在多 TPU 节点训练运行中只使用前端网络。被称为 ICI 的 "计算网络 "最多只能扩展到 8960 块芯片,每个 64 TPU 水冷机架都需要昂贵的 800G 光路交换机进行连接。不同于 GPU 集群的前端网络,由于 ICI 只能扩展到一定规模,所以谷歌必须不停增强其前端网络来弥补这一不足。

图片

资料来源: Google at MLSys24

当在训练过程中使用前端网络时,必须在岛际之间执行网络拓扑感知的全局数据汇总操作 (all-reduce) 。首先,每个节点或岛将在节点内的 InfiniBand 或 ICI 网络中执行局部的 reduce-scatter,这将使每个 GPU/TPU 拥有梯度的一部分总和。接下来,将使用前端以太网网络在每个主机之间执行跨节点的数据汇总,最后每个节点将执行节点层面的全局收集 (all-gather)。

前端网络还负责加载数据。随着我们转向多模态的图像和视频数据,对前端网络互联的要求将呈指数级增长。在这种情况下,前端网络带宽将在加载大型视频文件和执行 all-reductions 操作之间被争夺。此外,不规律的存储网络拥塞现象的存在,会导致整个all-reduces 的过程变慢和无法进行预测建模,从而带来更多的 straggler 问题(译者注:专业名词,指网络的计算效率会因拥塞而显著降低)。

可替代的方式是使用 4 层 InfiniBand 网络,以 7:1 的过载比配置 4 个计算节点池,每个节点池有 24,576 块 H100,采用无拥塞的 3 层网络系统。与仅使用前端网络的方案相比,这为将来提升带宽提供了很大的灵活性,只需要在A建筑的交换机和B建筑的交换机之间增加更多的光纤和光模块,这要比在集群的每个机箱中进行全面的前端网络的网卡升级要容易的多,例如从 100G 升级到 200G 网卡。

图片

资料来源:SemiAnalysis

这种网络模式更加稳定,因为前端网络可以只专注于加载数据和 checkpointing,而后端网络可以只专注于 GPU 与 GPU 之间的通信。这也有助于解决上述提到的 stragglers 问题。但遗憾的是,由于需要额外的交换机和光模块,4 层 Infiniband 网络的成本极高。

轨道优化(Rail Optimized)vs 中间机架Middle of Rack设计

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

图片

资料来源: Nvidia

轨道优化技术让每台 H100 服务器连接到 8 个不同的叶交换机(而不是全部连接到同一个机架中间的交换机)上,这样每个 GPU 只需通过 1 个交换跃点(switch hop)就能与更远的 GPU 通信。这样就能在现实世界中提高 "All-to-All" 的集体性能。在 mixture of experts(MoE)并行中,就大量使用了All-to-All 的集体通信。

图片

资料来源: Crusoe

轨道优化设计的缺点是AI服务器中的 8 块 GPU 都必须要连接到不同距离的叶交换机上,而不是更靠近服务的中间机架上。当交换机位于同一机架时,可以使用无源直连电缆(DAC)和有源电缆(AEC),但在轨道优化设计中,交换机不一定位于同一机架上,因此必须使用光学器件。此外,叶交换机到脊交换机的距离可能大于 50 米,因此还必须使用单模光模块。

通过使用无轨道优化的中间机架设计,可以用更廉价的铜缆取代 98,304 个连接 GPU 和叶交换机的光模块,从而可以在 GPU网络中实现 25-33% 的铜缆覆盖。从下面的机架图中可以看到,每个 GPU 与叶交换机的连接不再是先连接到电缆托架、再从侧面穿过 9 个机架连接到专用的导轨优化叶交换机上,而是选择将叶交换机放在机架中间,从而让每个 GPU 都能使用 DAC 铜缆。

图片

无轨道优化的中间机架设计,资料来源:SemiAnalysis

吃果冻不吐果冻皮

专注于AI工程化(LLM、MLOps、LLMOps、RAG、Agent)落地。

148篇原创内容

公众号

与光缆相比,DAC 铜缆运行温度更低、能耗更低、成本更低。由于 DAC 电缆运行温度更低、能耗更低、可靠性更高,这促成了更少的flapping(网络链路间歇性瘫痪)和故障,而这正是所有使用光学器件的高速互连网路所面临的主要问题。一个Quantum-2 IB脊交换机,在使用 DAC 铜缆时的耗电量为 747 瓦;而在使用多模光模块时,能耗会增加到 1,500 瓦。

图片

基于轨道优化的ERO,资料来源:SemiAnalysis

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

图片

基于轨道优化的水冷ERO设计,资料来源: SemiAnalysis

可靠性可恢复性

在模型训练的前沿技术中,可靠性是超大规模集群运行最重要的担忧之一。最常见的可靠性问题包括 GPU HBM ECC 错误、GPU 驱动器卡死、光模块故障、网卡过热以及计算节点不断的的宕机或出错等

为了缩短故障恢复的平均时间并保障训练的持续性,智算中心必须同步部署热备用节点和冷备用组件。当发生故障时,最好的办法不是停止训练,而是立马换上已经开启的备用节点继续训练。大部分服务器的宕机都可以通过简单的服务器重启来修复。

但简单的重启并不能解决所有问题,在很多情况下,需要数据中心的技术人员进行现场诊断并更换设备。在最好的情况下,数据中心技术人员只需几个小时就能修复损坏的 GPU 服务器,但在许多情况下,损坏的节点可能需要几天时间才能重新投入训练运行。损坏的节点和备用热节点是指那些并没有为模型运行做出贡献但理论上可以提供算力能力的GPU。(译者注:智算中心在建设时,一般会配置一定比例的备用 GPU。)

在训练模型时,为防止出现 HBM ECC 等错误,需要对 CPU 内存或 NAND SSD进行频繁的 Checkpointing 检查。当错误发生时,必须快速从较慢的内存层重新加载出模型权重和优化器状态,然后重新开始训练。训练容错技术(如 Oobleck)可用于提供用户级的应用驱动方法来处理 GPU 和网络故障。

遗憾的是,频繁的 checkpointing 和训练容错技术会损害系统的整体 MFU(算力利用率)。集群需要不断地暂停以将当前权重保存到持久内存或 CPU 内存中。此外,从检查点重新加载工作时,通常每 100 次迭代才会自动保存一次,这意味着你可能会丢失 99 步有用的工作。在一个 10 万卡集群上,如果每次迭代耗时 2 秒,在迭代 99 次时发生故障,那么最终会损失 229 GPU 天的工作量。

故障恢复的另一种方法是让备用节点通过后端网络从其它 GPU 内存中进行 RDMA 复制(译者注:内存重建)。由于后端 GPU 网络的速度可接近 400Gbps,每个 GPU 有 80GB 的 HBM 内存,因此复制模型权重大约只需 1.6 秒。采用这种方法,最多只损失 1 次迭代(因为更多 GPU 内存将拥有最新的权重副本),因此最后只会损失 4.15 GPU 天的工作量。( 包括 1 次迭代的 2.3 个 GPU 天的工作量+从其他 GPU 内存 RDMA 复制模型权重的 1.85 个 GPU 天的工作量)

大多数领先的AI实验室都采用了这一技术,但许多小型公司仍坚持使用繁重、缓慢、低效的 checkpointing 技术(因为简单)。通过内存重构实现故障恢复,可为大型训练运行的 MFU 增加多个百分点。

图片

资料来源: Meta

Infiniband/RoCE 链路故障是最常见的问题之一。即使每个网卡到叶交换机链路的平均故障时间为 5 年,由于光模块数量较多,在一个全新的工作集群上发生第一次作业故障也只需要 26.28 分钟。如果不通过内存重建进行故障恢复,那么在 10 万卡 GPU 集群中,大量的时间会浪费在因光学器件故障而导致的重启训练上,甚至可能比推进模型训练本身所花费的时间更多。

图片

资料来源: SemiAnalysis

由于每个 GPU 都直接通过 PCIe 交换机连接到 ConnectX-7 网卡,因此在网络架构层面是不能容错的,因此网络故障都必须在用户的训练代码中处理,这就直接增加了代码库的复杂性,这也是英伟达(NVIDIA)和 AMD 当前在 GPU 网络结构方面面临的主要挑战之一。即使一个网卡出现故障,与该网卡相连的 GPU 也没有其他路径与其它 GPU 通信。由于当前的 LLM 在服务器内使用张量并行的设计方式,即使一个网卡、一个光模块或一个块 GPU 出现故障,整个服务器都会瘫痪。

为了使网络可重新配置,使服务器不再如此脆弱,人们正在进行大量的研究工作。这项工作至关重要,因为现状意味着整个 GB200 NVL72 会因为一块 GPU 或一个光模块的故障而瘫痪。一个价值数百万美元的 72 个 GPU 机架的瘫痪要比一个价值几十万美元的 8 块 GPU 服务器的瘫痪更具灾难性。

Nvidia 已经注意到这一重大问题,并为可靠性、可用性和可维护性(RAS)添加了一个专用引擎。我们相信,RAS 引擎会分析芯片级数据,如温度、ECC 重试恢复次数、时钟速度和电压,以预测芯片何时可能发生故障,并向数据中心技术人员发出警报。这将使他们能够进行主动维护,如使用更高的风扇转速以保持可靠性,在稍后的维护窗口将服务器停用以进行进一步的物理检查,等等。此外,在开始训练任务之前,每个芯片的 RAS 引擎都会执行全面的自检,例如,通过运行已知结果的矩阵乘法,以检测静默数据损坏(SDC)。

Cedar-7

微软、Openai 等客户的另一项成本优化措施是在每台服务器上使用 Cedar Fever-7 网络模块取代 8 个 PCIe 连接的 ConnectX-7 网卡。使用 Cedar Fever 模块的主要好处之一是可以在服务器端而不仅仅是交换机端使用双端口 2x400G 光模块,这样每个 H100 服务器连接到叶交换机的光模块数量就从 8 个减少到 4 个,只需使用 4 个 OSFP 机架,而不是 8 个 OSFP 机架,从 GPU 连接到叶交换机的光模块总数也从 98,304 个减少到 49,152 个。

图片

资料来源: Nvidia

由于 GPU 到叶交换机的链路减少了一半,这也有助于缩短首次任务失败的预计时间。我们估计,每条双端口 2x400G 链路的平均故障时间为 4 年(单端口 400G 链路为 5 年),这将使首次工作故障的预计时间提升至 42.05 分钟,远远优于不使用 Cedar-7 模块时的 26.28 分钟。

图片

资料来源: ServeTheHome

吃果冻不吐果冻皮

专注于AI工程化(LLM、MLOps、LLMOps、RAG、Agent)落地。

148篇原创内容

公众号

英伟达的 Spectrum-X 以太网方案

已经有一个 10 万卡的 H100 集群正在部署,采用英伟达 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 处于非常不利的地位。

(采用 128 个 400G 端口的交换机)完成 10 万卡集群的互联只需要 3 层交换机网络而不是 4 层。4 层交换机网络意味着比 3 层交换机网络要多出 1.33 倍的光模块。由于(InfiniBand方案的) Quantum-2 交换机在处理数据时使用较低的端口基数,在一个 10 万卡 H100 集群中能够连接的 GPU 数量最多只能达到 65,536 个 。名为 Quantum-X800 的下一代 InfiniBand 交换机通过 144 个 800G 端口解决了这一问题,不过从 "144 "这个数字可以看出,该交换机是为 NVL72 和 NVL36 系统设计的,预计不会在 B200 或 B100 集群中大量使用。尽管使用 Spectrum-X 能够通过避免构建4层交换机网络来节约部分成本,但不幸的是,客户仍然需要从 Nvidia LinkX 产品线购买高价光模块 ,因为其他光模块可能无法使用或无法通过 Nvidia 的验证。

与其他供应商相比,Spectrum-X 的主要优势在于其会优先得到 NCCL、Jensen 等 NVIDIA 库的支持,从而促使客户争先成为其新产品线的首批客户之一。相比之下, 采用(博通的)Tomahawk 5 芯片的以太网方案,为了实现最大吞吐,需要内部工程师做大量的工作以适配NCCL 等算子库。

图片

资料来源: SemiAnalysis

在 GPU 集群中使用以太网方案而非 InfiniBand 方案的另一个缺点是,以太网方案目前不支持 SHARP 在网计算(network reductions)。在网计算是通过在网络交换机内设置张量内核来完成每个 GPU 的求和运算。理论上 SHARP 的网络带宽增加了 2 倍,因为它将每个 GPU 的发送和写入次数减少了 2 倍。

图片

资料来源: Nvidia

Spectrum-X 方案的另一个缺点是,在第一代 400G Spectrum-X 的方案中,Nvidia 使用了 Bluefield3 (智能网卡) 代替 ConnectX-7 作为临时过渡方案,而要在未来几代产品中,ConnectX-8 才会与 800G Spectrum-X 完美适配。Bluefield-3 和 ConnectX-7 显卡之间的价格差距约为$300 ASP(平均销售价格),且 Bluefield-3 的能耗比 ConnectX-7 要高出 50 瓦,导致每台服务器都需要 400 瓦的额外电力,从而降低了整个训练服务器的能量利用率(intelligence per picojoule)。与采用完全相同网络架构的博通 Tomahawk 5 部署方案相比,如果将 Spectrum X 方案部署到智算中心中,10万块 GPU 集群需要额外消耗 5MW 的电力。(译者注:相当于每年额外支出 413 万美金的电费。)

博通 Tomahawk 5 以太网方案

为了避免缴纳巨额的“英伟达税”,许多客户都选择部署基于博通 Tomahawk 5 交换机的以太网方案。博通 Tomahawk 5 交换机拥有与 Spectrum-X SN5600 交换机相同的端口数(128 个 400G 端口),如果公司拥有优秀的网络工程师,还可以通过工程调优来实现与之相媲美的网络性能。此外,客户还可以从世界上任何一家供应商购买通用的光模块和铜缆来适配或混合使用。

大多数客户都选择直接与 ODM 厂商合作,例如基于博通 ASIC 芯片制造交换机的 Celestica 公司、 制造光模块的 Innolight 和 Eoptolink 公司等。Tomahawk 5 方案的交换机成本和通用光模块成本要比英伟达的 InfiniBand 便宜很多,甚至比英伟达的 Spectrum-X 还要便宜。

但问题是,客户需要有足够的工程能力来为 Tomahawk 5 适配及优化英伟达的 NCCL 通信库,NCCL 通信库仅针对 Nvidia Spectrum-X 和 Nvidia InfiniBand 进行了优化。当然,如果客户有 40 亿美元来购买一个 10 万卡集群,一般也有足够的工程能力来适配 NCCL通信库并编写优化程序。Nvidia 的软件能力总是走在最前沿,但我们预期每个超大规模集群都能进行类似的优化,并放弃 InfiniBand。

图片

资料来源: SemiAnalysis

现在,我们开始讨论 4 种不同的 10 万卡 GPU 集群的组网方案,涉及的网络材料清单及交换机和收发器成本,并讨论不同组网方案的优劣势,最后给出一个为减少光学器件而优化的 GPU 集群的物理平面设计。

材料清单

每个 10万卡 H100 集群的资本支出总额约为 40 亿美元,但会根据组网方案的不同而有所变化。这里提出了 4 种不同的组网方案:

  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 层博通 Tomahawk 5 以太网网络,32,768 个 GPU 岛,轨道优化,7:1 带宽过载

图片

资料来源: SemiAnalysis

不同的公司会采用这四种不同类型的网络拓扑结构,经过比较,4 层 InfiniBand 网络的成本是其他方案的 1.3-1.6 倍。这就是为什么没有人真正会选择大型 InfiniBand 网络的原因。虽然 InfiniBand 可以实现(the handicap option #3),但它严重影响了并行方案的灵活性。

Spectrum X 方案可以提供更大的计算岛、更多的岛间带宽,同时具备相近的成本,但它也带来了巨大的代价,即与最佳方案相比需要更多的电力。

基于博通 Tomahawk 5 的 32k 岛和顶层 7:1 的带宽过载比的方案是最具成本效益的方案,这也是多家公司正在建设类似网络的原因。由于无需支付“英伟达税”,所以在单位投入成本(TCO)下可提供最高的网络性能,而且它比 Spectrum X 更早投入市场,并已进入像 Meta 这样的头部公司。

平面布局Floor Plan

优化机架布局和平面布局非常重要,这样可以使用尽可能多的铜缆和多模光纤(以节约成本)。下面是使用轨道优化的 Spectrum-X / Tomahawk 5 的 32k 岛平面图。正如您所看到的,在某些行中,叶交换机并没有部署在同一排。这是为了能更多使用 50 米距离内的多模光纤,因为如果将多模光模块都放在行的末端,那么中间的脊交换机显然就不在 50 米的距离之内。 

图片

资料来源: SemiAnalysis

以上为4节点的机架设计。这符合微软的标准数据中心的物理设计。

图片

资料来源:SemiAnalysis,注:到目前为止,该 100k 集群的 4 栋建筑中仅有 3 栋已建成

在这个微软开发集群中,每个机架支持高达 40kW 的电力密度,每个机架能够容纳四个 H100 节点。该基础设施采用了独特的布线设置,其中铜缆(尤其是每排末端的黑色电缆)用于机架内交换机之间的连接。而从 H100 服务器到叶交换机的连接则使用多模 AOC 光纤,可通过蓝色电缆识别。

图片

资料来源: Microsoft

总而言之,英伟达公司将成为10 万卡 H100 集群的头号赢家,因为他们占据了主要的市场份额。在我们的预测模型中,我们按 SKU 和公司出货量来细分 GPU 和 ASIC芯片产品,预计未来,博通将主导所有的超大规模集群的算力网络,其网络收入将继续飙升。Nvidia仍将继续保持网络业务的增长,因为许多新建云、主权国家和企业还是会选择Nvidia的参考设计。

  • 23
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
MySQL多数据源是指在一个应用程序中同时使用多个不同的MySQL数据库来存储和管理数据的技术。它可以帮助开发人员更灵活地处理各种数据库操作,提高程序的性能和可扩展性。下面是一个完整的MySQL多数据源教程。 一、设置数据库连接信息 1. 在应用程序的配置文件中,创建多个数据库连接的配置项。例如,可以为每个数据源创建一个配置项,分别命名为db1、db2等。 2. 在配置项中,设置每个数据源的连接信息,包括数据库地址、用户名、密码等。 二、创建数据源管理器 1. 创建一个数据源管理器类,用于管理多个数据源。该类需要实现数据源的动态切换和获取。 2. 使用Java的线程安全的数据结构,如ConcurrentHashMap来存储数据源信息。将配置文件中的数据库连接信息加载到数据结构中。 3. 实现方法来切换不同的数据源,通过传入数据源的名称来切换到对应的数据库。 三、实现数据源切换 1. 在应用程序中,根据业务需求选择需要使用的数据源。可以通过调用数据源管理器的方法来切换数据源。 2. 在DAO层的代码中,根据当前使用的数据源名称,选择对应的数据源进行数据库操作。 四、使用多数据源进行数据库操作 1. 在DAO层的代码中,区分不同的数据源,并将数据库操作的代码包装在对应的数据源中。 2. 在业务层的代码中,调用DAO层的方法来进行数据库操作。不同的数据源会自动切换。 五、处理事务 1. 如果需要在一个事务中操作多个数据源,可以使用分布式事务的方式来处理。 2. 可以使用开源的分布式事务框架,如Atomikos、Bitronix等来实现多数据源的事务管理。 六、监控和维护 1. 使用监控工具来监控多个数据源的使用情况,包括连接数、查询次数等。 2. 定期对数据库进行维护,包括索引优化、数据清理等工作,以保证数据库的性能和稳定性。 通过以上步骤,我们可以实现MySQL多数据源的配置和使用。使用多数据源可以更好地管理和处理不同的数据库操作,在提高程序性能和可扩展性的同时,也提供了更灵活的数据操作方式。同时,需要注意合理选择和配置数据源,以及监控和维护数据库,以保证系统的运行效率和数据的安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI生成曾小健

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值