发布日期:2024-10-07 08:06 点击次数:154
(原标题:手把手教你搭建GPU算力中心)一路向西电影完整版
如若您但愿可以经常碰面,接待标星保藏哦~
开头:内容编译自semianalysis,谢谢。
AI Neoclouds 的崛起眩惑了统共计较行业的关注。从企业到初创公司,每个东说念主都在愚弄它们来探问 GPU 计较。即使是微软,尽管领有我方的数据中心建设和运营团队,每月也通过 AI Neoclouds 在 GPU 计较上虚耗约 2 亿好意思元。Nvidia 通过平直投资、多半分拨 GPU 以及在多样演斗殴行动中的嘉赞,预示着多个 AI Neoclouds 的快速增长。
AI Neocloud 被界说为一种新式云计较提供商,专注于提供 GPU 计较租借就业。这些纯正的 GPU 云为其客户提供顶端的性能和活泼性,但为其提供能源的经济性仍在不竭发展,因为阛阓正在了解其生意方式的运作神色。
在文中,咱们将揭秘 Neocloud 的运行层面,从制定集群物料清单 (BoM),到处理部署、资金和日常运营的复杂性。咱们将在 BoM 和集群架构方面提供几项要道提议。
巨东说念主与新兴企业
AI Neocloud 阛阓由四类主要提供商提供就业:传统超大规模提供商、Neocloud 巨头、新兴 Neocloud 以及经纪商/平台/团聚商。
AI Neocloud 阛阓规模遍及,是 GPU 需求最有益念念的增量驱动要素。总体而言,咱们以为 Neocloud 的增长将出奇总需求的三分之一。
提供 AI 云就业的传统超大规模提供商包括 Google Cloud (GCP)、Microsoft Azure、Amazon Web Services (AWS)、Oracle、腾讯、百度、阿里巴巴。比较之下,Meta、xAI、字节逾越和特斯拉尽管也领有刚毅的 GPU 集群和可不雅的产能扩展遐想,但咫尺并不提供 AI 就业,因此不属于这一类别。
传统超大规模企业给与多元化业务方式,因此老本成本最低,但其集成生态系统和数据湖以及现有企业客户群意味着其订价比其他企业高出好多。超大规模企业也倾向于从其云业务中得回高额利润,因此其订价远高于 AI 云的合理价钱。
与传统的超大规模企业不同,AI Neocloud Giants 确实只专注于 GPU 云就业。最大的企业咫尺或遐想在将来几年内,其通盘站点的总容量将远远出奇 10 万个 H100 当量,其中一些企业遐想为 OpenAI 提供数十万个 Blackwell GPU 。主要的三大 Neocloud Giants 是 Crusoe、Lambda Labs 和 Coreweave,后者是迄今为止最大的。与超大规模企业比较,它们的老本成本更高,但与新兴 AI Neoclouds 比较,它们泛泛好像以合理的速率更好地得回老本,这意味着 Neocloud Giants 的相对领有成本较低。
新兴 AI Neoclouds 包括咱们追踪的数十家云就业,这些云就业仍然领有小数容量,何况在运行数据中心基础设施方面相对枯竭教导。这些新贵泛泛具有较高的老本成本,亦然咱们今天将要点关注的类别。新兴 Neoclouds 中还包括许多属于 Sovereign AI 限度的区域参与者,Sovereign AI 是指任何专注于向好意思国或中国之外的次要塞区提供 AI 云就业的 AI Neocloud。
这些地区咫尺在 AI 时候方面远远落伍,包括欧洲、印度、中东、马来西亚等。特别是他们的客户泛泛但愿出于监管、阴事、数据安全或其他生意原因将他们的 GPU 计较撤废在好意思国或中国之外。固然大多数新兴 Neoclouds 要么领有不到 10,000 个 GPU,要么尚未部署 GPU,但其中许多都有相当自利自为的遐想,可能很快就会让其中一些插足与 Neocloud 巨头同样的定约。
终末,是牙东说念主、平台和团聚商,他们泛泛团聚需乞降供应,但时时老本较少,不肯平直承担 GPU 租借价钱风险,因此我方不领有任何 GPU。此类别中有两种主要的生意方式:平台方式提供访佛 Shopify 的平台,匡助 GPU 通盘者和数据中心代表他们营销和匹配计较资源;团聚商使用访佛亚马逊的阛阓方式,让 GPU 通盘者好像向不同的买家提供计较。
平台可以为想要领有 GPU 计较智力但又不具备部署或营销集群专科学问的主机提供 IaaS 基础设施以及树立和采购支撑。与亚马逊之类的阛阓团聚器比较,牙东说念主和平台泛泛需要更多的东说念主工斗争点,访佛于房地产牙东说念主,可以匡助您以来往价值的分红找到房屋。与任何经纪或阛阓就业一样,牙东说念主的收入分红对最终客户来说可能是不透明的。
另一种意念念的新兴生意方式是 VC 集群,即风险投资 (VC) 或访佛 VC 的实体为投资组合或其他附庸公司建立集群。著名的例子包括 Andromeda、AI2、Computefund.ai和Andreesen Horowitz 遐想的 GPU 集群。借助里面集群,这些 VC 可以提供相当活泼的计较租借选项——在短时辰内提供大型 512 或 1k GPU 集群,远低于其他 Neoclouds 为换取股权而收取的用度。他们还可以提供慷慨的租借条目,以进一步向投资组合或附庸公司歪斜。
如何构建 AI Neocloud
一、了解集群物料清单
让咱们从一个浮浅的框架出手。那么,您想启动 AI Neocloud 吗?您会若何作念?这是咱们的分步指南,从 BoM 出手,终末树立 Neocloud。
领略和定制 AI 集群报价和物料清单 (BoM) 是 Neocloud 部署中最坚苦的要素之一,正确处理可能会决定利润率上下或财务逆境。咱们提议从 CEO 到工程师和销售东说念主员的每个东说念主都了解其 BoM 中的每一项家具。
咫尺部署的大多数 Neocloud 集群都领有 2048 个或更少的 GPU。最常见的物理集群大小为 2048、1024、512 和 256 个 GPU,2048 个及以下 GPU 集群的部署成本随 GPU 数目线性增长。在本次分析中,咱们将要点分析 1024 个 GPU 部署,这是新兴 Neocloud 的共同点。
OEM 和 Nvidia 在报出 BoM 时当然会寻求涨价销售。BoM 泛泛细分为四类:计较机箱级、机架级、集群级和软件级。
二、计较机底盘物料清单
咱们将从最低的抽象层出手,即计较机箱物料清单 (BoM),这是集群中最鞭策的部分。默许的计较机箱 BoM 报价时时使用顶级组件 - Supermicro、戴尔等 OEM 发轫会报价接近顶级的 Intel Emerald Rapids CPU,以及配备 2TB RAM 和 30 TB 土产货 NVMe SSD 闪存的系统构建。
微调此引文是 AI Neocloud 最浮浅的优化方法。此优化的方法是采取中端英特尔 CPU,因为许多客户的责任负载不管如何都不会使用太多 CPU。LLM 检修是一项相当 GPU 密集型的责任负载,但对于 CPU 而言,责任负载强度相当低。CPU 主要运行浮浅任务,举例 PyTorch 和适度 GPU 的其他进度、运行化荟萃和存储调用,并可能运行编造机管束圭表。
总的来说,固然 AMD CPU 在大多数 CPU 任务上弘扬优异,但咱们提议使用英特尔 CPU,因为英特尔 CPU 更容易得回正确的 NCCL 性能、更容易进行编造化,而且举座体验罪状更少。
举例,在 AMD CPU 上,您需要使用 NCCL_IB_PCI_RELAXED_ORDERING 并尝试不同的 NUMA NPS 树立以完了可给与的性能。如若您遐想进行编造化,则需要将编造中枢正确固定到正确的 NUMA 区域,不然您的开垦到主机和主机到开垦的带宽和延伸将不睬想。明确地说,如若您熟识的话,这是可行的。
许多尺度家具都具有 2TB 的 CPU DDR5 RAM,但您的大多数客户不会使用那么多。RAM 是计较机底盘 BoM 中第四鞭策的部分。咱们提议将尺度的 2 TB RAM 左迁为仅 1 TB RAM。您的 Neocloud 的大多数客户不太可能商议 RAM 容量,因为他们的责任负载根柢不受 CPU RAM 放弃。
除了中枢机较组件之外,另一个潜在的成本省俭方法是删除尺度报价中的两个 NVIDIA Bluefield-3 DPU。这些 DPU 发轫是为传统 CPU 云开发的,并被宣传为一种成本省俭时候,可让它们出租更多 CPU 中枢,而不是让这些 CPU 中枢运行荟萃编造化。
然而您的 Neocloud 客户不管如何都不会使用太多 CPU 计较,因此如若您使用部分主机 CPU 中枢进行荟萃编造化,这并不坚苦。在许厚情况下,您不管如何都会将裸机就业器交给您的客户,从而排斥任何荟萃编造化的需要。此外,Bluefield-3 DPU 极度鞭策,以至于购买另一个 54 核 CPU 比购买 Bluefield-3 更低廉。实足跳过 Bluefield-3,使用尺度 ConnectX 动作前端。
概括探究前几项成本优化,咱们推断可精打细算 13600 好意思元,使一个计较节点(即一台就业器)的成本从 270000 好意思元降至 256400 好意思元,精打细算约 5%。在领有 128 个计较节点的 1024 H100 集群中,可精打细算 174 万好意思元。跟着数目不竭增多,此价钱会越来越低。
在典型的 BoM 中,每台 H100 计较就业器将配备八个 400Gbit/s ConnectX-7 NIC,从而使每台就业器的总带宽达到 3,200Gbit/s。一些 Neocloud 只采取了四个 NIC,这将使后端荟萃带宽减少 50%。
固然咱们以为这可能会为某些责任负载带来更好的总领有成人道能,但大多数 Neoclouds 的标的客户并不但愿每台计较就业器的 InfiniBand 带宽低于 8x400Gbit/s。因为这如实会影响责任负载性能。这是许多公司对 Google Cloud 反感的主要原因之一。Google Cloud 使用 Falcon/GRD 部署带有 8x200G 以太网的 H100。即使 Google 如实可以精打细算资金,在某些情况下这也会影响性能。
咫尺,咱们先跳过机架级别,转到集群级别 BoM,从荟萃出手,它是计较节点之后最大的集群成本驱动要素。
集群级别 - 荟萃物料清单
H100集群中有三种不同的荟萃:
前端荟萃(以太网)
后端荟萃(InfiniBand 或 RoCEv2 以太网)
带外管束荟萃
浮浅回归一下,前端荟萃只是一个普通的以太网荟萃,用于结合互联网、SLURM/Kubernetes 和荟萃存储,以加载检修数据和模子查验点。该荟萃泛泛以每 GPU 25-50Gb/s 的速率运行,因此在 HGX H100 就业器上,每台就业器的速率将达到 200-400Gbit/s。
比较之下,后端计较结构用于将 GPU-GPU 通讯从数十个机架扩展到数千个机架。该荟萃可以使用 Nvidia 的 InfiniBand 或 Nvidia 的 Spectrum-X 以太网,也可以使用来自 Broadcom 等交换机供应商的以太网,这些供应商包括 Artista、Cisco 和多样 OEM/ODM。与 Broadcom 以太网处置有遐想比较,Nvidia 提供的选项更鞭策。尽管以太网的每 TCO 性能,但咱们仍提议 Neoclouds 使用 InfiniBand 或 Spectrum X,因为它具有最好性能,何况最容易销售,因为客户将 InfiniBand 与最好性能推敲在统共。客户泛泛以为以太网“性能低得多”,尽管这并不反应现实。这主要源于 Neocloud 和客户必须进行工程优化才能优化 NCCL。咱们以前作念过这些,除非您领有优秀的工程东说念主才和时辰,不然这并障翳易。此外,许多东说念主以为 Nvidia 会为购买其荟萃处置有遐想的东说念主提供优先分拨。
终末,还有带外管束荟萃。它用于重新映像操作系统、监控节点健康现象(如电扇速率、温度、功耗等)。就业器、PDU、交换机、CDU 上的基板管束适度器 (BMC) 泛泛结合到此荟萃,以监控和适度就业器和多样其他 IT 开垦。
对于前端荟萃,Nvidia 和 OEM/系统集成商泛泛会在就业器上领有 2x200GbE 前端荟萃结合,并使用 Nvidia Spectrum Ethernet SN4600 交换机部署荟萃。然而,咱们提议不要这么作念,因为每台 HGX 就业器领有 400Gbit/s 的荟萃带宽远远出奇您的客户可能使用的荟萃带宽。客户将仅使用前端荟萃进行存储和互联网荟萃调用以及 SLURM 和 Kubernetes 的带内管束。由于前端荟萃不会用于延伸明锐和带宽密集型梯度,通盘这些都会减少集体通讯,因此每台就业器 400Gbit/s 会过度使用。因此,对于举座前端荟萃部署,咱们提议使用来自 Arista、Cisco 或多样 OEM/ODM 等供应商的通用以太网交换机,何况每台 HGX 就业器仅领有 2x100GbE。
下一个随手可取的遵守是带外管束荟萃。默许 BoM 包括 SN2201 Nvidia Spectrum 1GbE 交换机,但这些交换机的价钱极度高,对于像带外荟萃这么浮浅的东西来说,很难讲明其合感性。这极度于购买品牌 Advil 而不是通用布洛芬。使用任何通用带应答换机都会斥责带外荟萃成本,因此,咱们提议使用通用 1GbE 交换机。
优化后端荟萃
后端荟萃的采取变得愈加复杂,需要对高性能荟萃有更真切的了解,而新兴的 Neoclouds 公司惟恐可能枯竭这种了解。该荟萃将运行 All Reduce、All Gather、Reduce Scatter 的大规模突发,即您的集体通讯。由于这些集体的突发性,后端荟萃与传统云荟萃比较具有实足不同的流量方式。
发轫,咱们来谈谈 Nvidia 参考荟萃拓扑。参考拓扑是一个具有无防碍结合的两层 8 轨优化胖树。在无防碍胖树荟萃中,如若您随性将节点分红对,那么通盘对都应该好像同期以全带宽互相通讯。尽管在实践中,由于拥塞、不完善的自适当路由和额应答换机跳数的额外延伸,情况时时并非如斯。
当荟萃进行 8 轨优化时,来自 4 台就业器的通盘 32 个 GPU 不是结合到架顶 (ToR) 交换机,而是来自 32 台就业器的 8 个 GPU 索引中的每个 GPU 索引都有我方的交换机。举例,来自通盘 32 台就业器的通盘 GPU #0 都结合到叶交换机 #0,来自通盘 32 台就业器的通盘 GPU #1 都结合到叶交换机 #1,以此类推。
轨说念优化荟萃的主要上风是减少拥挤。如若来自归拢就业器的通盘 GPU 都结合到归拢个 ToR 交换机,当它们同期尝试将流量发送到荟萃中时,它们尝试使用同样链路遍历胖树荟萃的可能性会相当高,从而导致拥挤。用于 AI 检修的 GPU 应该会依期一次性发送数据,因为需要集体操作来交换梯度并更新新参数。
下图第一张图展示了一个 8 轨优化荟萃,其中有 8 个来自集体通讯的并行流用于结合 8 个不同的叶交换机,而第二张图展示了一个非轨优化遐想,其中就业器结合到 ToR 交换机。
Nvidia 参考架构还将集群离别为 4 个 pod(也称为可扩展单元或 SU),每个 pod 包含 32 个 HGX 就业器(256 个 H100)和 8 个轨说念。每个 GPU 索引恒久与 pod 内另一台就业器中的同样 GPU 索引相距一跳。这很坚苦,因为它可以减少骨干交换机上的荟萃流量,而骨干交换机很容易成为拥塞热门(即使在非防碍荟萃上亦然如斯)。
与普遍看法违抗,在多佃农环境(举例 GPU Neoclouds)中,优化轨说念并减少顶层流量/拥塞尤其坚苦,因为在这种环境中,您泛泛会有多个佃农/客户。在 8 轨说念优化荟萃中,每个责任负载的通盘 8 个流都是物理分离的,因此不会发生路由/交换冲突。在咱们行将推出的 Nvidia NCCL 和 AMD RCCL 集体真切探讨中,咱们将谈论轨说念优化成立的克己以及为什么拥塞可能是一个严重的问题,尤其是对于 AI Neoclouds 等多佃农环境。
恶运的是,拥塞问题无法通过 nccl-tests 松驰测量,而是需要现实寰球的并发责任负载才能了解嘈杂邻居/拥塞问题如何影响端到端责任负载辩说量。如若佃农之间莫得物理坚苦,嘈杂邻居将长久存在。鉴于咱们在拥塞问题上所看到的情况,咱们热烈提议给与某种体式的 8 轨优化拓扑。
轨说念优化拓扑的另一个克己是,由于大多数流量将在叶交换机土产货进行,因此可以逾额订阅荟萃的骨干层,这是一种架构优化,咱们将在本文后头谈论。
优化光纤与电气荟萃
使用光纤进行联网的优点是传输距离更长,但污点是增多了功率要求,何况光纤收发器的成本相当高,尤其是平直通过 Nvidia 购买时,而这对于 InfiniBand 荟萃来说基本上是必须的。优化物理荟萃拓扑和机架布局可以减少光纤收发器的使用,只在实践需要更长传输距离时才使用。
在 Nvidia 参考遐想中,叶交换机位于单独的荟萃机架上,而骨干交换机位于专用的荟萃机架上,这意味着需要使用 100% 的光学器件。
为此,可以探究使用一种荟萃拓扑结构,即无防碍机架顶部 (ToR) 遐想。大多数具有传统荟萃布景的东说念主都会立即认出这种遐想,因为它是传统荟萃中最常见的遐想,其中在机架中间或顶部有一个交换机,用于结合机架中的通盘就业器。由于 ToR 交换机与就业器之间的距离小于 3 米,咱们可以使用称为平直结合铜缆 (DAC) 的“廉价”无源铜缆将就业器结合到叶交换机。对于这种遐想,咱们提议将 InfiniBand 交换机放在中间,以斥责 DAC 电缆需要传输的距离。
从叶交换机到顶层骨干交换机,咱们都必须使用光纤。这很鞭策,但至少 50% 的结合咫尺将被更低廉的 DAC 铜缆取代。
恶运的是,对于这种遐想,您将无法完了 8 轨优化荟萃,因此,即使您的骨干层是无防碍的,您也泛泛会遭遇拥塞热门,因为咫尺有 8 个流跨越多个交换机级别,这意味着每个流都需要动态使用不同的旅途来幸免拥塞。在领有齐全自适当路由的梦想寰球中,ToR 将动作拓扑很好地责任,因为路由将恒久幸免拥塞道路。但在现实中,由于齐全的自适当路由并不存在,因此完了这种拓扑将严重损伤荟萃性能。
下图是咱们对这种无防碍机架顶部结构的模拟热图,其中浅蓝色示意由于拥塞导致带宽减少,深蓝色示意接近满线速率。如您所见,使用 ToR 拓扑可以达到线速率,但由于通盘 8 个流都插足一个交换机,因此仍然存在极度大的拥塞,由于拥塞,辩说量变得愈加不稳固,何况这些流的带宽更少。
尽管这种遐想的性能对于 Neoclouds 这么的多佃农环境来说并不是特别好,但成本精打细算掉是遍及的,精打细算了 34.8% 的后端 InfiniBand 结组成本。
编造模块化交换机
咫尺,如若咱们可以兼顾两全其好意思的上风,既能优化 8 轨的性能上风,又能精打细算 ToR 的成本,那会怎么?
这便是编造模块化交换机的作用所在。它具有与 Nvidia 参考遐想同样的逻辑拓扑,但由于奥秘的平面运筹帷幄和交换机位置运筹帷幄,可以使用从叶交换机到骨干交换机的铜线。
这里的基本念念想是将交换机机架平直扬弃在相互之间,这么骨干交换机位于中间机架,而叶交换机位于左机架和右机架,如下图所示。这么,叶交换机和骨干交换机之间的结合可以全部给与铜缆,而就业器和叶交换机之间的结合仍将使用光纤。
由于拓扑仍针对 8 轨进行优化,因此 8 个流中的每一流都将物理分离,从而显赫减少拥塞。
这种遐想应该能让咱们两全其好意思,然而这种拓扑结构有什么污点呢?
恶运的是,这些交换机到交换机的 DAC 铜缆时时迂曲半径较小,而且相当粗,导致气流受阻。咱们之前在分娩中看到过访佛的遐想,如若你能很好地管束电缆,这些问题就可以克服。这个问题也可以使用有源铜缆 (ACC) 来处置,这种铜缆确实和多模光纤一样细,搀和半径也很好。恶运的是,咱们传奇的一个潜在问题是 Nvidia 的 LinkX NDR ACC 电缆的罪状率不是很好。
使用这种无防碍编造模块化交换机遐想,与参考架构比较,咱们可以在后端荟萃上精打细算 24.9% 的成本,同期保持同样的性能。另一个遍及的克己是无源铜缆泛泛比光收发器更可靠。收发器故障率很高,激光器是故障的主要部件。这种高故障率带来了更换收发器零件、集群停机时辰和维修所需东说念主工方面的成本。
逾额订阅后端荟萃优化
咱们可以通过摧残无防碍荟萃的放弃,进一步优化成本。由于大多数流量在 8 轨优化遐想中位于 32 台就业器的 pod 土产货,何况由于 InfiniBand 具有实足好的自适当路由,因此您可以遐想从叶交换机到骨干的逾额订阅。即使集群将由仅运行一个责任负载的单个佃农使用,这也有克己。当使用 1024 个 GPU 时,您的单个模子副本长久不会大于 256 个 GPU。这意味着张量、众人和管说念并行性(时时需要更多的带宽)将在 32 台就业器的 pod 内运行。
该流量将停留在第一级交换机土产货,而带宽要求较低的数据并行、梯度和通盘缩减将发生在骨干交换机上。由于骨干层的带宽要求处于较低水平,何况 InfiniBand 具有实足好的自适当路由,因此您可以仅通过遐想进行订阅。
在 Meta 的 24k H100 集群上,他们在 pod 之间完了了 7:1 的逾额订阅,但咱们以为以更保守的逾额订阅进行遐想更有益念念,咱们提议对微型集群仅使用 2:1 的逾额订阅。
这种遐想的克己是,1024 个 H100 不需要 16 个骨干交换机,而只需要 8 个骨干交换机。当将 2:1 逾额认购与编造模块化交换机遐想相都集时,咱们可以在中间机架中装置更少的交换机。这意味着电缆管束要容易得多。另一个克己是您的叶交换机上有空端口,因此将来,当您的 pod 间流量较大时,您可以松驰添加更多骨干交换机并斥责逾额认购程度。
咱们推断,与参考架构比较,使用编造模块化交换机完了 2:1 逾额订阅可精打细算 31.6% 的成本,这比仅使用非防碍编造模块化交换机遐想时精打细算的 24.9% 有所改善。非防碍遐想的独一污点(除了成本较高)是您需要将客户合理地分拨到物理就业器,并幸免 pod 鸿沟之间的碎屑化。咱们信托,只须有一支有智力的团队,就可以松驰完了这一丝。
Nvidia 还通过 CS9500 系列为 NDR InfiniBand 提供了我方的物理模块化交换机。您可以使用此交换机创建同样的 8 轨优化胖树拓扑,何况如若自得,还可以进行逾额订阅。此模块化交换机最多可支撑 2048 个 400Gbit/s 外部端口,因此可扩展到结合最多 2048 个 H100。骨干交换机 ASIC 位于机架的背面,而叶交换机 ASIC 和 OSFP 笼位于机架的正面。骨干交换机 ASIC 通过访佛于 NVL72 背板的铜背板结合到叶交换机 ASIC。恶运的是,只提供液体冷却处置有遐想。
CS9500 的液体冷却要求是咱们提议为大多数 Neoclouds 部署编造模块化交换机而不是物理模块化交换机的原因。刻下 GB200 驱动的液体冷却就绪主机托管需求以及主机托管供应总体紧缩意味着新兴 Neoclouds 不会有太多价钱合理的容量。由于 Nvidia 的订价基于对最终用户的价值,何况由于这种物理模块化交换机可能对大型集群部署相当有价值(想想 O(10k) 到 O(100k)),咱们以为这比只是制造您我方的编造模块化交换诡秘虚耗更多。
恶运的是,使用 InfiniBand 的污点之一是,要领有一个可以的 REST 接口,您需要购买 UFM 管束许可证。调和结构管束器 (UFM) 是 Nvidia 提供的软件包,用于处理荟萃管束、性能优化和监控。提议在 2048 个 GPU 以下的集群中使用 UFM,对于更大规模的集群来说,这是一项硬性要求。UFM 许可证按每个 NIC 端点收费,这意味着对于 1024 个 GPU 集群,您需要购买 1024 个许可证。
购买 UFM 的另一种方法是使用怒放子网管束器,该管束器仅通过终局敕令行界面提供,但庆幸的是,您可以创建一个浮浅的 REST 就业器,该就业器包装敕令行并使用子进度 Python 库为您履行敕令。对于您的第一个集群,咱们提议只购买 UFM 许可证,但对于将来的集群,咱们提议 Neoclouds 探究这一丝以精打细算成本。
AI Neocloud 存储
咱们将谈论 H100 集群中下一个最鞭策的部分,即联网 NVMe 存储。这是通盘客户都想要的东西,何况实践上是运行 SLURM 的必要条件。存储部署基本上只须两个名目,即您的物理存储就业器和您的存储软件供应商许可证,举例 Weka 或 Vast Data 等。由于与 OEM 的渠说念配合相关,这些是最受接待的供应商。
为了完了高可用性,大多数存储软件供应商提议您部署至少 8 台存储就业器。事实上,大多数 Neocloud 仅部署最低轨则的 8 台存储就业器。使用 8 台存储就业器,您将在通盘存储就业器上以大块大小得回 250GByte/s 到 400GByte/s 的团聚存储带宽。这足以赋闲在 1024 台 H100 上运行的大多数合理或分歧理的 AI 责任负载。
由于存储的委派周期相当短,咱们提议您从 1024 H100 集群的总存储容量 2 PB 出手,因为如若您发现客户正在使用您部署的容量,您可以松驰扩展存储。咱们提议在您的存储部署中留出实足的端口、NVMe 驱动器托架、电源和机架空间,以便松驰扩展。大部分存储成本都在存储软件许可证中,而不是物理存储就业器本人。
尽管您的存储就业器可以在 InfiniBand 后端计较结构上运行,但尝试过的东说念主还是死亡了好多头发!此部署泛泛会将您的 IB NIC 绑定到 GPU 0,以充任您的存储 NIC。在强人存储基准测试中,这将提供很大的延伸和高带宽,但在现实寰球的责任负载中,这将导致您的 GPU 0 落伍,因为使用 IB NIC 进行存储会产生冲突。当存储集群中的磁盘发生故障时,将触发重建,这将在您的计较结构上形成多半的荟萃流量,从而形成更大的拥塞。您可以购买单独的专用存储结构,但这是过度的,因为您可以在前端荟萃上领有存储流量。
咱们提议将存储就业器和流量放在前端荟萃上。前端荟萃泛泛未得到充分愚弄,因为它主要用于互联网流量、SLURM/Kubernetes 管束和提真金不怕火容器映像。
更多荟萃管束和软件包
在带内管束方面,为了运行高可用性 UFM 和 CPU 管束节点,咱们提议部署至少三个 CPU 节点。在这三个节点中,两个节点需要 ConnectX NIC 来管束 InfiniBand 结构。第三个 CPU 节点将仅用于其他非 InfiniBand 管束任务。此外,还需要其他杂项 IT 开垦,举例物理防火墙、42U 机架、受监控的 PDU 等,但这些开垦的价钱不会显赫增多集群总老本开销成本。
在默许的 Superpod 参考架构中,Nvidia 极端 OEM 配结伙伴会试图向您出售一种名为“Nvidia AI Enterprise”或“Base Command Manager (BCM)”的家具,其提议零卖价为每 GPU 每年 4,500 好意思元。BCM 是一个提供 AI 责任流和集群管束的软件包,但由于大多数客户会赋闲我方的责任流需求,因此对于 Neocloud 企业来说,这不是一款有价值的软件,但销售代表仍会将其动作运行采购订单的一部分进行营销。这是咱们 SemiAnalysis Optimized Cluster BoM 的另一个遍及成本精打细算开头。
集群 BoM 老本开销摘抄:
参考架构与半分析优化架构
如下所示,使用 Nvidia Superpod 参考架构 (RA),集群的总成本达到每台计较就业器约 31.8 万好意思元(不包括存储),但使用 SemiAnalysis 优化架构和 2:1 逾额认购,总总成本仅为每台计较就业器 28.3 万好意思元(也不包括存储)。咱们通过谈判匡助 Neoclouds 进一步优化,尤其是在大型集群上进一步削减成本。
驱动圭表、用户体验和软件
如若您来傲气型科技公司或国度 HPC 实验室,那么用户需求就很浮浅。用户需要闲居运行的 GPU、荟萃、正确装置的驱动圭表、闲居运行的分享存储和调换圭表(举例 SLURM 或 Kubernetes)。关联词,现实情况是,绝大多数 Neocloud 都无法赋闲这些用户需求,从而导致用户体验欠安。
从运行 GPU 所需的 GPU 驱动圭表出手 - 咱们需要 cuda-drivers-5xx 和 fabricmanager-5xx 以及 cuda-toolkit-12-x。
Cuda-drivers-5xx 是 ubuntu/Linux 与 GPU 交互所需的内核空间 Nvidia 驱动圭表。接下来是 fabricmanager-5xx,这是一个肃肃成立节点内 NV 链路结构的软件包。如若莫得 fabricmanager-5xx 包,节点内的 8 个 GPU 将无法通过 NV 链路互相通讯。Cuda-toolkit-12-x 是包含通盘效户空间用具和 API 的用具包,举例 NVCC,它是将 CUDA C++ 代码编译为 PTX 汇编和 Nvidia 机器代码的编译器。
对于荟萃,需要在每个 GPU 就业器上装置 Mellanox OpenFabrics Enterprise Distribution (MLNX_OFED) 驱动圭表。此软件包是 ConnectX-7 InfiniBand NIC 的驱动圭表,用于履行 RDMA(而已平直内存探问)和 OS 内核旁路。为了让 GPU 平直与 NIC 通讯,您还需要GPUDirect RDMA,这是一个附加内核驱动圭表,包含在 cuda-drivers-5xx 中,但默许情况下未启用。如若莫得此驱动圭表,GPU 将需要在 CPU RAM 中缓冲讯息,然后这些讯息才能发送到 NIC。启用 GPUDirect RDMA 的敕令是“sudo modprobe nvidia-peermem”。为了进一步优化 GPU 与 NIC 的通讯,您需要下载一个名为 Nvidia HPC-X 的软件包。
如若莫得上述 GPUDirect RDMA 和 HPC-X 软件包,您的 GPU 只可以 80Gbit/s 的速率发送和给与流量,而每 GPU 的分解速率为 400Gbit/s。启用这些软件包后,您的点对点发送和给与速率应达到 391Gbit/s,而分解速率为 400Gbit/s。
接下来,用户需要一个调换和启动软件包。在 Neocloud 阛阓中,70% 的用户但愿 SLURM 可以开箱即用,另外 20% 的用户但愿 Kubernetes 可以开箱即用,终末 10% 的用户大多但愿装置我方的调换圭表。
对于 Neoclouds 来说,让 SLURM 或 Kubernetes 开箱即用相当坚苦,因为最终用户泛泛莫得装置这些类型的调换圭表的教导。这是因为来傲气型科技公司或国度/大学实验室布景的用户泛泛有挑升的东说念主员肃肃装置和操作这些 SLURM 软件。最终用户必须花 1-2 天时辰我方装置 SLURM,这笔用度是极度可不雅的,因为他们实践上是在为装置时代闲置的 GPU 集群付费。
终末,100% 的客户还必须好像在需要时手动将交互式终局(即 ssh)接入其 GPU 节点 - 托管 SLURM 可提供此功能。使用 SLURM,您可以运行“srun –gres=gpu=8 -w NODE_NAME –pty bash”以将交互式终局接入任何节点。
Crusoe 和 TogetherAI 等 Neocloud 是黄金尺度。由于它们开箱即用,装置了通盘必需的 InfiniBand 驱动圭表、GPU 驱动圭表和调换软件,因此它们可以收取比竞争敌手更高的用度,何况客户流失率更低。
得回最廉价值体验的下一个用户要求是领有一个简单的分享主目次和分享数据存储目次。通盘 GPU 节点和登录节点都将在 /home/$USER/ 和 /data 处装置分享存储。这实践上意味着,当最终用户可以在职何 GPU 节点中启动交互式终局时,该节点将具有同样的主目次和文献。这相当棒,因为这意味着分拨给用户的每个 GPU 节点都是可互换的,用户无需和蔼他们正在使用哪个 GPU 就业器。此外,在启动多节点检修功课时,用户的通盘代码都会自动出咫尺每个 GPU 节点上,因此用户无需通过 ssh (scp) 手动将代码复制到每个节点。
使用 Neocloud 存储时,用户对存储感到不振的主要原因是文献卷就地卸载以及用户遭遇多半小文献 (LOSF) 问题。处置就地卸载问题的方法是使用名为“ autofs ”的圭表,该圭表会自动保持分享文献系统处于挂载状态。
其次,LOSF 问题可以松驰幸免,因为只须当您决定推出我方的存储处置有遐想(如 NFS 就业器)而不是为 Weka 或 Vast 等存储软件供应商付费时,它才会成为问题。如若集群上存在 LOSF 问题,那么最终用户很快就会珍惜到集群上的 LOSF 问题,因为即使将 PyTorch 导入 Python 的时辰也会导致实足滞后。
下图是咱们在 Crusoe 集群上进行测试时生成的,展示了经过优化且不存在 LOSF 问题的集群存储处置有遐想应如何运行。如您所见,即使增多 GPU 数目,将 PyTorch 导入 Python 进度所需的时辰也保持相对镇定。
这与在未优化的分享存储上运行的集群有着一丈差九尺,在 Python 多节点检修运行中导入 PyTorch 所需的时辰激增,经常导致集群实足无法使用。请珍惜 Crusoe(黄金尺度)与另一个存在 LOSF 问题的集群之间的各异。
多佃农
除非统共客户(佃农)耐久租用统共物理集群,不然每个物理集群可能都会有多个并发客户。这意味着您需要坚苦前端以太网和后端 InfiniBand 荟萃,并在客户之间完了有储坚苦。每个客户泛泛会将每个 GPU 就业器动作一个举座来租用,这意味着在计较就业器上编造化并不是严格需要的,因为每个物理就业器只须一个客户。花时辰细分节点是不值得的。使用尺度 vLAN 可以松驰为前端以太网树立坚苦。在 vLAN 中,固然物理以太网结构是分享的,但每个客户的节点只可与分拨给归拢客户的其他节点通讯。
与以太网 vLAN 比较,InfiniBand 多佃农的树立和自动化并不那么容易,但学习弧线相当快。在 InfiniBand 寰球中,荟萃坚苦是使用分区密钥 (pKeys) 完了的 - 实践上与 vLAN 的见解同样。每个客户都通过 pKeys 得回我方寂然的 InfiniBand 荟萃,何况只须具有同样 pKeys 的节点才能互相通讯。
可以通过 UFM UI 模样板或使用UFM REST API松驰创建和附加 pKey 。对于许多工程师来说,这实践上可能比自动化以太网 vLAN 更容易,因为有一个易于使用的 InfiniBand pKeys POST/GET/DELETE API。
恶运的是,咱们从我方的测试教导中发现,一些 Neocloud 的 pkey 树立不正确,导致一个客户的用户好像看到 InfiniBand 荟萃上其他佃农的节点。咱们热烈提议客户切身考证他们的 InfiniBand 荟萃是否与其他客户正确坚苦。
对于存储而言,多佃农尤为坚苦。庆幸的是,存储管束也极度浮浅,因为 AI 领域的主要存储提供商 Weka 和 Vast 都支撑多佃农动作环节原则。
在 Weka 和 Vast 的数据软件中,您可以松驰创建佃农(在 Weka 中称为组织)并为每个存储卷树立探问适度战略,以便仅分拨给一个佃农。该软件提供了强有劲的保证,如若战略树立正确,则每个客户的用户只可探问他们我方的存储卷。
裸机或编造化
对于 H100 SXM,最小计较单元是一台就业器,这意味着每台就业器每次只可有一个客户。这意味着可以在保持安全性的同期进行裸机部署。裸机是可能的,而且如实很常见,但咱们如实看到使用编造机具有额外的克己,举例更长的平均还原时辰和更强的可靠性。
使用编造机时,如若客户正在使用的物理 GPU 就业器出现故障,那么 Neocloud 好像松驰地在热备用就业器上为客户搬动或启动新的编造机。
可以使用开源编造机管束圭表(举例 qemu-kvm)在 GPU VM 上创建编造机,它将启动您的 VM,在其中将 vCPU 固定到物理 CPU,并留住几个未固定的中枢来运行编造机管束圭表。
您还需要将 vLAN 以太网接口绑定到 GPU VM。使用通用编造机管束圭表创建 CPU VM 是一项浮浅的任务,如今大多数计较机科学毕业生都可以作念到。要将 VM 变成 GPU VM,您还需要对 GPU 和 InfiniBand NIC 进行 PCIe 纵贯。对于 Neoclouds 来说庆幸的是,NVIDIA 尚未找到一种方法来对其 GPU 和 NIC 上的 PCIe 纵贯收费。咱们还看到 Neoclouds 使用SR-IOV创建编造 InfiniBand NIC 并将其传递到编造机中,而不单是是物理 InfiniBand NIC,尽管使用 SR-IOV 并不是严格必要的。
您需要记取履行的另一个方法是通过 NCCL_TOPO_FILE 变量手动传递 /etc/nccl.conf 中的 NUMA 区域和 PCIe 拓扑文献,因为 NCCL 和 Nvidia 驱动圭表咫尺在该 GPU VM 内运行,因此无法自动检测 NUMA 区域和 PCIe 拓扑。如若莫得此方法,NCCL 性能将以应有带宽的 50% 运行。
与裸机比较,使用编造机的污点之一是,由于启用了IOMMU, CPU 到 GPU 的传输带宽和延伸会略慢。但咱们以为使用编造机是值得的,因为它对最终用户来说平均还原时辰更快,而且主机到开垦 (HtoH) 的传输泛泛与计较重迭,因此对最终用户来说甚而可能不会有显豁的影响。
由于 CPU RAM 为 1-2TB,开箱即用的 kvm-qemu 编造机管束圭表需要很永劫辰才能启动 VM。比较之下,使用 cloud-hypervisor 进行了优化,系统使用多个 pthreads 并行对内存进行预故障,从而将 1TB 的内存预故障时辰从 80 秒斥责到仅 6 秒。此优化由 Crusoe Cloud 创建,庆幸的是已上传。凭据咱们的测试,Crusoe 的 VM 好像在不到 90 秒的时辰内启动。
快速启动的坚苦克己是,当客户的 GPU 就业器不成幸免地出现故障时,Neocloud 操作员可以相当快速地将 VM 部署到其热备用节点并将其添加到客户的 SLURM 集群中,从而使客户好像相当快速地还原检修。
监控和常见罪状
在监控模样板方面,咱们至少提议通过 Grafana 和 Prothemeus 使用 Nvidia Datacenter Manager 模样板,以便用户追踪 GPU 温度、电源使用情况和行动XID 罪状。
此外,咱们还提议 Neoclouds 装置 ipmi-exporter 来监控举座电扇速率、温度和其他 BMC 主张。在运行 CPU 部署时,使用某种都集式模样板来流露通盘这些主张是尺度作念法。
监控的软件架构包括在每个 GPU 节点上装置一个 IPMI 导出器和 DCGM 导出器,然后在 CPU 管束节点上部署 Prometheus 握取器以与 GPU 导出器通讯并将数据存储在 InfluxDB 数据库中。接下来,Grafana Web 就业器可以结合到 Prometheus 以可视化荟萃的数据。
高档 NeoCloud 操作员还将领有一个 promtail 记载器,用于汇总每个就业器的会诊讯息 (dmesg) 日记。应实时象征的两个常见 dmesg 讯息是电缆被拔出以及 NIC 和/或收发器温渡过热。这些讯息中的任何一个都可能标明您有一个不稳固的 InfiniBand 链路,需要在客户出手流失之前实时处置。
遭遇的另一个常见罪状是 GPU 通过 dmesg 或 DCGM XID 罪状讲述根柢莫得罪状,但输出罪状的矩阵乘法扫尾。这些罪状称为静默数据损坏 (SDC)。深信 GPU 上是否有 SDC 的最浮浅方法是使用 Nvidia DCGMI 会诊级别 4 用具 (sudo dcgmi diag -r 4)。该用具将拿获 95% 的最常见 SDC,但恶运的是会错多余余 5% 的 SDC,导致相当漫长的调试过程和相当震怒的客户。
NCCL 死锁和停滞都诟谇经常见的问题,可能会导致检修功课停滞 30-35 分钟,然后 PyTorch 的 NCCL 看门狗会阻隔统共检修功课。咱们以为,如若 Neoclouds 添加我方的后台 NCCL 查验器来查验行动的 SLURM 功课并检察功课在往时 4 分钟内是否使用了出奇 150W 的电量,那么 Neoclouds 可以在此领域为客户增涨价值。如若用电量低于 150W,这可能意味着 NCCL 挂起何况存在某种死锁,机器东说念主可能会自动向客户发送电子邮件,提醒他们重新启动 SLURM 功课。
一些最常见的 InfiniBand UFM 罪状代码包括 110(象征罪状)、112(畅通中断)、329(畅通中断)、702(端口被视为不健康)和 918(象征位罪状告戒)。咱们泛泛提议用户在追踪 UFM 罪状时,如若遭遇上述任何罪状代码,应立即推敲工程师进行进一步骤查。但实践上,这些问题可能还是给 Neocloud 的许多客户形成了严重问题,他们还是向 Neocloud 运营商发送了垃圾 ping 讯息。
咱们热烈提议 Neocloud 运营商使用 Jira 等支撑票务系统来追踪通盘硬件故障和客户问题。如若莫得票务和客户管束系统,问题就会被淡薄,导致客户流失率增多。
更多领导和测试
咱们莫得看到好多 Neocloud 操作员使用的另一个功能是 SLURM topology.conf。SLURM 拓扑成建功能将启动用户的 SLURM 检修功课并为每个品级分拨一个 SLURM_ID,以减少骨干级流量。对于某些坚苦讯息,最好地分拨 SLURM_ID 将导致 20-30% 的速率下跌。咱们将在行将举行的 Nvidia NCCL 和 AMD RCCL 集体交流真切探讨中进一步谈论这一丝。
一般来说,咱们提议您使用nccl-tests来分析您的集群,并与 Nvidia 和您的 OEM 的参考编号进行比较,望望是否存在职何性能不及或下跌。
为了使 NCCL 测试变得浮浅,咱们正在开发一个名为 ClusterMAX-NCCL 的单行函数来运行并将您的集群与一组参考扫尾进行比较。
在 ClusterMAX-NCCL 中,咱们针对通盘不同类型的迫临体测试了从 16MiB 到 256MiB 的通盘坚苦讯息大小。咱们最近推出了此用具的测试版,支撑单节点 NCCL 测试。以下是加载和运行 ClusterMAX-NCCL 的一滑代码:
docker run --gpus all --ipc=host --shm-size 192G -v $(pwd)/results:/workspace/results semianalysiswork/clustermax-nccl
如若您的节点成立正确,您应该会看到访佛以下的扫尾:
提供具有竞争力的价钱、刚毅的可靠性和正确树立的集群是大多数 Neocloud 的主要价值各异。咱们在这个迫临之外看到的独一各异化价值来自 Neocloud TogetherAI,Flash Attention 的发明者 Tri Dao 就在哪里责任。TogetherAI 为其 GPU 客户提供一组独家的超优化 CUDA 内核,这些内核可以松驰集成到客户现有的检修代码中,从而为客户带来 10-15% 的检修辩说量性能快速擢升。
基本上,通过好像将检修速率提高 10-15%,客户可以精打细算 10-15% 的 GPU 开销,或者使用同样的 GPU 好意思元预算,在 10-15% 以上的代币上检修他们的模子,从而提高模子性能。咱们以为,如若不克隆 Tri Dao,Together 创造的价值就无法在其他地点复制。
集群部署和验收测试
集群部署泛泛愚弄 OEM 的机架规模集成和部署团队。这些团队将在单个就业器级别和集群范围级别进行集成和测试,在此时代,荟萃测试将在 OEM 的集成工场进行。咱们提议集群范围的高温老化应不绝至少 3-4 周,以拿获节点组件中通盘与早期失效关联的故障。集成团队使用 LINPACK 动作老化和验收历程非经常见,但咱们以为这不是一个很好的测试,因为 LINPACK 不会多半使用荟萃,也不会占用太多 GPU 的 HBM 内存,而是仅使用和测试 GPU 的 FP64 中枢。比较之下,ML 检修相当依赖荟萃、HBM 和 BF16/FP16/FP8 张量中枢,因此,咱们以为需要进行实践老化关联组件的老化和验收测试。
在集成工场完成集成和老化后,OEM 将打包通盘机架和电缆,运输到 Neocloud 的数据中心,之后还需要两周时辰才能将集群部署到这个主机托管数据中心。咱们提议 Neoclouds 在现场树立集群后再进行 2-3 天的老化/验收测试,即使集成工场老化还是完成。这是为了确保在运载或现场部署过程中莫得硬件损坏。一个非经常见的问题是,由于在运载和树立过程中光纤结合端点上蕴蓄的灰尘导致 InfiniBand 链路抖动。处置此问题的方法是清洁抖动端点的光纤末端。但惟恐还有更深眉目的问题需要发现和处置。
哥要射日常运营
Neoclouds 的日常运营主要包括一次又一次的“打地鼠”。领有精良的里面管束和调试用具将使这个过程告成进行,甚而令东说念主相当惬意/兴奋,但好多时候 Neoclouds 莫得实足的工程师来构建这些用具,因为具有讽刺意味的是,大多数工程师的时辰将花在“打地鼠”上,而不是构建更好的“打地鼠”用具。
集群中最常见的问题包括 IB 收发器抖动、GPU“从总线上掉下来”、GPU HBM 罪状和 SDC。大多数情况下,只需对物理就业器进行硬重启,或者在许厚情况下构建 UI 按钮或教客户我方对就业器进行硬电源轮回,即可处置这些问题。在其他情况下,处置问题的方法是拔下并重新插入 InfiniBand 收发器或断根光纤电缆上的灰尘。其他情况下,需要致电 OEM 或系统集成商,得回保修 RMA 以实足更换统共就业器。
如上所述,Neocloud 集群早期阶段的故障非经常见,因为大多数 Neocloud 在委派给客户之前不会在集群中进行烧机测试。正如 Yi Tay 所珍惜到的,在可靠性方面,未进行烧机测试的集群比进行烧机测试的集群差几个数目级。
这是 TogetherAI 和 Crusoe 得分很高的另一个方面,因为它们是为数未几的在将集群嘱托给客户之前进行数周磨合的 Neocloud 之一。此外,雇用和留住领有多年 Nvidia GPU 和 InfiniBand 荟萃操作教导的东说念主员的公司时时会遭遇更低的故障率,因为对于如何正确调试和辞让 AI 集群发生罪状的未成文部落学问库中包含了多半对于如何树立可靠集群的学问。
咱们发现,对于领有 512 个 H100 的集群,顶级 H100 运营商泛泛平均故障间隔时辰为 7 天。对于这些顶级运营商来说,大多数情况下,只需重启节点即可松驰栽种故障。
https://www.semianalysis.com/p/ai-neocloud-playbook-and-anatomy
半导体极品公众号推选
专注半导体领域更多原创内容
关注公共半导体产业动向与趋势
*免责声明:本文由作家原创。著作内容系作家个东说念主不雅点,半导体行业不雅察转载仅为了传达一种不同的不雅点,不代表半导体行业不雅察对该不雅点赞同或支撑,如若有任何异议,欢管待洽半导体行业不雅察。
今天是《半导体行业不雅察》为您分享的第3906内容,接待关注。
『半导体第一垂直媒体』
实时 专科 原创 深度
公众号ID:icbank
可爱咱们的内容就点“在看”分享给小伙伴哦
一路向西电影完整版