面向大规模AI计算的高性能网络架构:Enfabrica ACF-S解决方案深度解析

科技   2024-11-25 16:43   北京  

大会预告

12月5-6日,2024中国生成式AI大会(上海站)将举办,30+位嘉宾已确认参会演讲。其中,上海交大副教授、无问芯穹联合创始人兼首席科学家戴国浩,GMI Cloud 亚太区总裁King.Cui,英飞流创始人张颖峰,Jina AI联合创始人兼首席技术官王楠,中昊芯英芯片软件栈负责人朱国梁将在AI Infra峰会带来分享,欢迎报名~


01 当前AI计算网络面临的挑战


1. 计算能力与I/O/内存带宽失衡  
GPU和其他加速器的计算能力在过去几年中显著提升,而I/O和内存带宽的增长速度则相对缓慢。这一失衡导致系统在处理大规模数据时出现瓶颈,表现为数据传输延迟和处理效率下降。
2. AI集群规模不断扩大  
随着AI应用的普及,各大公司正在部署数千到上万个GPU节点。这种规模的扩展对网络带宽、数据传输速度及系统扩展性提出了更高要求,传统网络架构难以满足这些需求。
3. 网络架构复杂,效率低下  
现有AI集群的网络架构通常层级复杂,涉及多个网络设备和协议,导致延迟增加和网络拥塞。这种复杂性降低了系统的整体效率,增加了故障排除的难度。
4. GPU突发带宽与网络承载能力不匹配  
GPU具备极高的突发带宽,然而传统网卡和网络架构的设计未能有效匹配这种高带宽需求,导致在高负载下性能损失,影响了计算任务的执行效率。

02 Enfabrica ACF-S解决方案


1. ACF架构:融合网络与PCIe交换,实现高带宽、低延迟、高韧性
核心思想  
  • ACF架构通过将PCIe交换机和网卡的功能集成到单一芯片,构建全连接的I/O集线器,旨在消除数据传输中的瓶颈。


关键优势  
  • 消除瓶颈:通过去除PCIe转换层,实现GPU与网络之间的高速数据流动。  
  • 简化架构:替代传统的PCIe交换机和网卡,降低服务器内部的连接复杂度,简化设计。  
  • 提高韧性:支持多路径交换和内存映射,能够在故障发生时自动切换路径,保证系统的稳定性。


关键技术指标  
  • 单芯片带宽高达8Tb/s,支持32个100Gb/s端口。  
  • 仅需两层交换机即可连接超过50万个GPU,显著减少网络延迟。  
  • 能够有效应对光缆故障,通过无缝流量切换确保GPU性能不受影响。


2. ACF-S SuperNIC:巨型网卡架构,支持可编程传输,赋予用户更多控制权
核心特点  
  • ACF-S SuperNIC采用巨型网卡架构,提供高端口密度及可编程传输能力,赋予用户更大的网络控制权。
关键优势  
  • 高扩展性:支持更大规模GPU集群的连接,简化网络拓扑,提升网络效率。  
  • 可编程性:用户可通过软件定义网络策略,灵活配置网络参数,实现精细化流量控制。  
  • 高韧性:支持多路径数据传输,确保在出现故障时系统稳定运行。


关键技术指标  
  • 支持32个100Gb/s端口,聚合带宽可达3.2Tb/s。  
  • 与现有编程接口兼容,无需对应用程序进行改动即可提升性能。  
  • 提供开源驱动程序,便于用户开发与部署。


3. 应用场景:大规模AI训练和推理集群,生成式AI
目标应用场景  
  • 针对大规模AI训练与推理集群,尤其关注模型浮点运算利用率(MFU)和总拥有成本(TCO)。  
  • 支持生成式AI应用,如大型语言模型(LLMs)和分布式检索系统(DRRM)。


优势  
  • 提升MFU,降低TCO。  
  • 提供高带宽、低延迟的网络连接,以满足大规模AI计算的需求。  
  • 支持可编程传输,便于用户进行定制化网络配置,优化资源管理。
首先介绍一下Enfabrica公司及我们面临的挑战。我们的公司使命非常明确:几年前我们注意到数据中心的计算模型正在发生根本性变革。当时,GPU和TPU等加速器的引入,从根本上改变了处理能力的构成方式和数据中心内计算的本质。
在2020年至2021年期间,当我们首次验证这一观察时,我们与两位来自大型超大规模云服务商的知名人士交流。他们当时表示其GPU占比很小,因此并不需要专门的网络解决方案。时光飞逝,如今我们已拥有超过120名工程师,共同推进这一使命。我们团队都具备丰富的基础设施产品开发经验。就我个人而言,有超过25年的芯片设计经验,主要专注于大型基础设施芯片。与Enfabrica的同事们一起,我们开发了NIC、交换机、高性能加速器、TPU、图形解决方案和主机网络协议栈。
我们通过软硬件协同来实现公司使命。我们开发的产品名为Accelerated Compute Fabric SuperNIC (ACF-S),这是一款专门为高性能分布式AI和GPU服务器网络设计的解决方案。我们的首款芯片代号为"Millennium",稍后将在演示中详细介绍。这是业界首款在单芯片上实现8Tb/s带宽的网络接口卡。作为参考,目前AI集群中使用的高性能计算网卡的工作带宽为400 Gb/s。这代表了性能的重大突破。
我们究竟在试图解决什么问题?虽然这个观点并不新颖,但值得重申:计算浮点运算速度(FLOPs)正在快速且高效地扩展。通过架构优化和芯片设计创新,我们能够在相同服务器面积上集成更多的计算能力。图表上方的曲线(使用对数刻度)展示了这一趋势,突出显示了过去十年GPU和加速器计算密度的显著提升。
下方的两条曲线分别代表数据传输能力,包括I/O带宽和内存带宽。其中一条反映了各代内存技术的发展,另一条展示了单个服务器芯片组或芯片表面的互连技术进展。这些曲线之间的差距在不断扩大。根据阿姆达尔定律(Amdahl's Law),任何均衡的计算系统都需要在内存、计算和I/O之间保持协调。我们目前正面临I/O和内存带宽的扩展速度远落后于计算能力提升的问题。在构建分布式、弹性和可扩展系统时,这种失衡将造成严重制约。
虽然可以尝试将所有功能集成到一个大型芯片中来消除这些瓶颈,但当模型规模已经超出8个或64个GPU的处理能力时,这种方案几乎不可行。这个问题既涉及物理限制,也涉及架构设计;当前用于加速计算的I/O架构与传统计算架构几乎相同。我们尚未从AI应用的角度重新思考I/O和网络架构的功能定位。
为什么这个问题如此紧迫?当前的挑战已经超越了如何互连8个或128个GPU的范畴。从The Information、路透社(Reuters)和TechCrunch的报道可以看出,各大公司正在部署数千个GPU节点或加速器节点。他们都在努力在数据中心的空间、功耗和预算约束下实现这一目标。
在过去12到18个月中,扩展速度已呈超线性增长,并且这种趋势很可能会持续。
基于Google和OpenAI研究人员发表的开创性论文,计算密度和模型性能可以随着计算强度(以FLOPs衡量)的增加而提升。这里涉及两个重要指标:模型FLOPs利用率(Model FLOPs Utilization, MFU)和硬件FLOPs利用率(Hardware FLOPs Utilization, HFU)。
MFU指在模型前向或后向传播过程中观察到的实际性能与GPU理论峰值性能的比值。这个指标主要用于训练阶段,不包括内存访问、检查点存储等开销,也不包括用于激活归一化、检查点和类似任务的额外计算。通常MFU维持在30%到50%之间,这个水平相对较低。
HFU表示在计算工作负载中实际使用的FLOPs占比。HFU一般比MFU高出约15%,说明实际计算量比理想情况多15%。值得关注的是,目前没有观察到任何使用GPU时HFU超过60%的数据点。这一现象很重要,因为如果上限是60%,那么任何必要的重新计算或由网络问题导致的停顿都会增加"计算浪费",降低整体效率。
随着规模扩展到数十万GPU节点,一个关键问题是:MFU会如何变化?考虑到目前已经处于30%到50%的水平,效率可能会比预期下降得更快。网络性能是影响MFU效率和整体有效计算量的关键因素。我们认为,这个问题需要从网络和I/O架构的角度来解决。
Ray Lucchesi:量化(Quantization)技术会否对未来的计算需求产生负面影响?
Rochan Sankar:就需求降低而言,这种转变已经在发生,从Bfloat16向FP8和FP4的演进就是明证。这种趋势仍在继续,并且正在提高计算密度。然而,即使有这些进展,你仍会看到MFU先上升后因规模问题而下降的现象。虽然系统中可用的理论FLOPs在增加,但将它们映射到各个独立节点并确保协同工作的效率仍然受到60%这一上限的制约。
Ray Lucchesi:30%到50%的上限是否是由数据传输导致的?
Rochan Sankar:不是,这个比例代表了相对于GPU理论峰值的实际观测值,是软件和系统因素共同作用的结果。随着规模扩大,如果效率损失加剧,整体性能将会下降。这正是我们要强调的核心问题。
让我先从系统架构的角度解释我们如何发展到当前的设计,这对理解背景很重要。相信在座很多人都熟悉SGI和大型主机等超级计算模型。早期的缓存一致性非统一内存访问(Cache Coherent Non-Uniform Memory Access, ccNUMA)系统是由多个并行工作节点构建而成。这些节点在某些情况下共享内存,通过任务分解来处理大规模计算问题。节点之间通过深度集成到架构和软件中的超低延迟通信协议来保持同步。
这本质上是一个CLOS(紧耦合系统)架构。Intel的UPI(Ultra Path Interconnect)是CPU领域的典型代表,类似地,NVIDIA的NVLink也可以视为一种为此类扩展设计的紧耦合互连技术。
在计算产业中,最显著的扩展模式出现在超大规模云架构中。这种环境采用分布式的客户端-服务器设计,使用标准化的通信协议。任务通过将单个作业分片并分配到独立域来实现分布式处理,这些域通过网络互连。这种网络架构能够实现高总吞吐量,但每个节点对带宽的需求并不特别高。这类工作负载对延迟的容忍度较高,通常在数十微秒到毫秒级别。
这些系统具有良好的线性扩展性,因为各个域之间相互独立;每个域运行独立的操作系统,可以优雅地独立失败,从而实现到其他虚拟机或节点的无缝切换。值得注意的是,过去15年中最显著的TCO降低就来自于这种模型。相比之下,传统架构的超级计算机在扩展过程中并未实现显著的成本降低。
观察AI和机器学习系统以及整体加速计算领域时,我经常说这是"超级计算与超大规模的融合"。这些工作负载需要结合两种模型的优势。我们既不能完全分布化所有功能,也不能仅仅依赖集中式大型主机方案。现代基础设施需要具备超级计算机的性能特征,同时还要具有云环境特有的弹性扩展能力和系统韧性。
这种模型已开始使用现有组件构建。"向上扩展"(Scale Up)和"向外扩展"(Scale Out)是两个关键概念:向上扩展指向紧耦合的超级计算领域,而向外扩展则指向更广泛的分布式系统。重要的是,这两种方法采用不同的编程模型。向上扩展的编程模型使用底层原语——例如CUDA定义的内存复制操作,而向外扩展则使用更结构化的通信和计算内核,如集体通信库(Collective Communication Libraries, CCL)和消息传递接口(Message Passing Interface, MPI)库。
这两种通信和编程模型的二元性必须共存。考虑到这些模型经过数十年优化,我们的目标是在此基础上进行构建,而非重新发明轮子。
当前超大规模AI领域的最新技术表明,进程间通信(IPC)和远程过程调用(RPC)都在不断扩展。我们看到更大规模的NVLink或紧耦合域的出现,以及数千计的GPU和加速器不仅在单个数据中心内扩展,还跨越多个数据中心。这导致了规模问题,因为通信半径在两个维度上都显著增加。
右图显示了这些挑战是如何通过不同的通信网络来解决的。顶部是专为扩展设计的GPU交换机,中间层包括PCIe交换机,连接到高性能NIC和多层CLOS网络,支持RPC方向的扩展。
这些网络的扩展特性不同,且目前尚未实现有效的互通。我们在一侧建立网络并开发相应工作流的同时,还需要第三个网络——前端网络——连接到数据中心,使数据存储能够被网页和用户访问。
由于这两种网络以不同方式扩展,它们使用不同的原语。同时,突发带宽存在不平衡;通信方向不同时性能指标也不同。速度和带宽也各异。例如,在当今最高性能的标准GPU中,通过PCIe连接到外接网卡的带宽仅为GPU本身带宽的九分之一。这种差异源于GPU的设计特性。
在任一方向上完全依赖单一路径都是不可行的;无法将一致性和IPC无限扩展,超级计算机的成本模型和效率已经证明了这一点。同样,完全通过网络执行低延迟、高带宽的张量并行操作也效率低下且过于复杂。
因此,网络成为核心问题。客户观察表明,这些网络的扩展进一步降低了计算资源利用率。对于集体操作而言,更大的GPU通信表面积可能导致拥塞,特别是在多个GPU同时连接到同一个端点时,这种现象被称为"并发"。
更多层次的网络引入了额外的潜在拥塞点、资源争用点、抖动和延迟。随着规模扩大,故障处理成为最关键的问题;故障可能导致计算资源停滞或中断,从而显著影响整体性能。
我们开发了一种融合硬件技术和软件编程模型的解决方案——加速计算架构(Accelerated Compute Fabric, ACF)。本质上,我们正在重新设计加速器的连接端点架构。如图所示,我们没有为每个通过PCIe交换机连接的加速器配置独立的RDMA网卡(RDMA NIC),而是构建了一个跨多个加速器的全连接I/O集线器(I/O Hub)。该集线器由专用驱动程序和主机协议栈管理,并由控制平面CPU负责控制。ACF-S卡能够通过全网格拓扑结构连接到一端的可扩展计算平面,同时通过高密度端口连接到另一端的可扩展网络平面。
Alastair Cooke:这实际上整合了PCIe交换机和...
Rochan Sankar:...网络交换机的功能。
Ray Lucchesi:你们同时在关注前端网络和GPU本地架构。
Rochan Sankar:目前还不涉及GPU本地架构,因为那是专有技术并且位于底层。不过,我们的芯片架构设计考虑了未来支持这一功能,我们相信当这些接口标准化后就能实现。
Rochan Sankar:我之前介绍的系统需要同时具备垂直扩展(Scale-up)和水平扩展(Scale-out)接口能力。在垂直扩展方面,系统必须使用内存语言通信,这涉及进程间通信(IPC)中的直接内存读写操作。同时,随着通信半径的扩大,系统还需要在远距离传输数据包,无论是在单个数据中心内部还是跨数据中心。值得注意的是,AI发展速度与软件迭代同步,模型不断演进,数据中心设计参数大约每6-12个月就会发生变化,这远快于芯片生产周期。因此,在这个问题的两个方面采用硬连接方式进行传输和扩展在创新速度上存在明显劣势。
我们设计的一个核心目标是实现软件对底层内存接口与数据包映射关系的控制。我们希望通过软件来管理数据包的分离方式以及如何将其组装到内存写入操作中。
Alastair Cooke:我有几个疑问。图中显示了两个ACF-S芯片,但似乎仍是一个主机系统,因为只有一个CPU。
Rochan Sankar:实际上可以支持任意数量的主机。这里只是展示了一个CPU的示例,但系统可以包含多个CPU。
Alastair Cooke:从实际部署角度来看,这个方案是什么样的?我们是否可以将其视为传统PCIe主板的替代方案?
Rochan Sankar:这个问题稍后再谈,我们很快就会介绍系统架构图。
Ray Lucchesi:这看起来是在服务器内部同时执行PCIe交换机和网卡的功能。
Rochan Sankar:没错。我理解你对同时实现这两种功能的疑虑。
Ray Lucchesi:是的,我理解其中的原理,但还有一些问题想问。
Rochan Sankar:让我解释一下。所有通过PCIe交换机连接的GPU都在执行同一个功能:将数据传输到用于扩展的网卡。我们并不是要解决一般性的PCIe交换问题。观察当前系统可以发现,每个系统主要使用PCIe交换层来访问网卡以实现扩展功能。PCIe桥接通常发生在CPU和GPU之间。如果使用独立网卡,每个网卡都有多个x16 PCIe接口在同一服务器中复制,它们都通过一组PCIe交换机执行相同的操作。从这些交换机出发,PCIe网卡将数据转换为以太网(Ethernet)进行下一跳传输。重要的是,这些都基于相同的模型——CUDA和网卡能够理解彼此的内存空间——实际上就像一个大型GPU。
Ray Lucchesi:这里的服务器内存是什么?
Rochan Sankar:在GPU内部,我们使用高带宽内存(HBM)。
Ray Lucchesi:CPU也有自己的内存,对吗?
Rochan Sankar:是的,但CPU内存并不用于模型中的浮点计算。
Jack Poller:可以说,你们基本上是消除了CPU作为PCIe总线上的中介角色吗?
Rochan Sankar:我们并没有完全消除CPU,它仍然发挥着重要作用。CPU作为头节点,负责执行实际的内核。
Jack Poller:对,从通信角度来看,GPU直接连接到PCIe总线,然后连接到网络。
Rochan Sankar:这就是当前的工作方式。现有系统的运作模式是:GPU连接到PCIe交换机,后者再连接到RDMA网卡。这种被称为GPU Direct的技术支持在不经过CPU数据拦截的情况下进行扩展。我们正在解决的是交换机与网络顶层之间的低效问题。
Andy Banta:你们实际上消除了PCIe转换层。
Rochan Sankar:这不仅仅是去除转换层,而是实现了相同的内存映射。我们正在融合PCIe,使其像以根复合体(Root Complex)为根的树状结构那样工作。在我们的架构中,GPU作为核心的数据生产者和消费者,形成一个完全互联网络。
Jack Poller:所以通用CPU挂接在PCIe总线上,而你们实际上控制着整个系统,而不是CPU。
Rochan Sankar:CPU仍然是根节点;我们并不充当根复合体。但我们作为内存管理器,根据需求引导数据流。CPU内部有一个输入/输出内存管理单元(IOMMU),通常负责这个功能,但当多个GPU需要与IOMMU通信以确定数据路由时,可能会造成性能瓶颈。这种设置类似于GPU通信的中心辐射模型,有利于实现垂直和水平扩展。
Jack Poller:很多人可能还是不太理解CPU的内部结构。你们实际上是将一个逻辑组件——IOMMU——从CPU内部移出。
Rochan Sankar:我们并没有完全移除它,而是卸载了部分与集体通信相关的功能。
Jack Poller:专门针对GPU通信?
Rochan Sankar:是的,不过这种架构也适用于存储和内存。相同的模型可以应用于任何连接到PCIe的设备。它作为一个嵌入式的高性能内存转换引擎。
Justin Warren:这个芯片在物理位置上放在哪里?如何集成到系统中?
Rochan Sankar:这个芯片位于我们称为SuperNIC的设备上。它占据了传统网卡的位置,但我想强调的是,我们正在重新定义网络的概念。在未来的AI系统中,PCIe网卡的传统角色将变得不那么重要。虽然它可能仍然使用PCIe接口,但将其简单地视为插在特定插槽上的x16设备并不是我们要解决的核心问题。现今的系统——无论是8-GPU、4-GPU还是多GPU配置——都需要独立的网卡来实现扩展,同时还要通过PCIe交换子系统与CPU通信,某些情况下还使用NVLink进行GPU间通信。
Justin Warren:你们是否设想这将成为主板的一部分,还是作为现有服务器基础设施的附加组件?
Rochan Sankar:现在已经有一些服务器设计通过PCIe背板实现PCIe解耦,连接到所有组件的层或托盘。如果你了解DGX架构——目前驱动着大部分AI工作负载的系统——它包含GPU架构、CPU架构和分配到网卡的PCIe背板。然而,这些网卡在形态上仍是传统设计。我们提供的是一个完全可交换、可路由的共享组件,适用于所有这些设备。
Justin Warren:这能集成到现有基础设施中吗,还是需要完全重新架构?
Rochan Sankar:需要进行一些硬件改动;我们不能简单地将这个设备适配到现有的PCIe形态中。然而,我们正处于数据中心重新设计的重要时期,这是为了适应AI发展需求,包括液冷设计和新的服务器机箱架构。这意味着我们可能需要考虑一些非传统的设计元素。
Alastair Cooke:你提到我们正在挑战既有的设计假设,这可能会开启一些过去被认为不可能的领域。
Rochan Sankar:确实如此。关键在于机架层面,机架的组织方式正在被重新思考。
Justin Warren:我想了解这如何作为通往新架构的过渡桥梁。关键问题是,为了推动采用,需要保持多少与现有系统的兼容性。过于激进的变革需要彻底的重构。
Rochan Sankar:一个重要观点是,硬件形态或连接器类型在这次转型中并不是最关键的因素。最重要的是编程模型。
Andy Banta:虽然编程很重要,但如果你有能推动这种变革和改进的技术,采用就会自然而然地发生。一个典型的例子是从异步到同步内存总线的转变。一旦同步总线的速度优势得到证实,这个转变在15到20年内就迅速完成了。
Jay Cuthrell:这与思科的融合网络适配器不同,计算领域用户只采用在其他服务器制造商中并不存在的互连架构。
Rochan Sankar:没错。我们正在解决异构加速计算的普遍性问题。作为一家创业公司,我们愿意承担风险,而我们押注的是服务器架构将快速演进。
Jay Cuthrell:在其他公司,产品经理可能会因为提出如此激进的设计而被解雇。
Rochan Sankar:在过去两年中,朝这个方向发展的趋势非常明显。我们必须回到思考未来数据中心设计的驱动力,这些设计都围绕着TCO、功耗和计算效率展开。这些因素正迫使各种规模的组织——从小公司到全球最大的企业——重新审视长期以来的设计假设。
你可能仍在思考我们为什么要追求这个方向。我已经解释了基本概念,但可能对你来说还不够清晰。
让我以系统层面开始讨论,然后深入到芯片层面,最后讲解板级集成方案。
加速器通过三到四种不同方式进行互连:首先是通过GPU网络,该网络直接集成在GPU服务器主板上;其次,在某些情况下通过PCIe交换机连接到CPU,或者通过芯片间直连(如Grace Blackwell架构);第三是通过PCIe连接到NIC,以实现扩展到数千GPU规模的后端网络连接;最后还有前端网络,用于连接主数据中心的存储系统和其他基础设施。
如果将计算管理网络也计算在内,实际上存在五个网络,这导致网络间的互通效率低下。这是首要观察结果:每个网络都在独立扩展,具有不同的速率、传输容量,以及不同的"网络管理器"(负责维护连接的软件)。
一个关键问题是,GPU在该接口上的突发带宽(Burst Bandwidth)远高于其他接口。NVLink采用NVSwitch,可实现14.4 Tb/s的总带宽,每条链路速率达224 Gb/s,而PCIe Gen5仅为每条链路32 Gb/s。这种带宽差异显著影响了AI工作负载中的张量并行(Tensor Parallelism)等操作,相比其他连接可用带宽存在明显差距。
再次强调,这里的突发带宽远超底层网络的承载能力,特别是当GPU只与网卡一对一连接时。采用交换网络后,你获得了弹性,能够通过单个端口传输更多带宽。此外,你可以映射整个内存空间,呈现从服务器完整内存映射中提取的散射-聚合(Scatter-Gather)列表。这些底层原语负责内存移动和访问,这正是NVLink所支持的——对所有高带宽内存(HBM)进行全局寻址。
Jay Cuthrell:你把左边称为突发带宽?
Rochan Sankar:是的。即使PCIe只有x16通道,假设在PCIe Gen5上通过ACF-S设备提供512 Gb/s带宽;你实际上可以向GPU的计算单元直接发送3.2 Tb/s的突发数据,因为你能够在所有I/O接口上进行数据条带化和分布。
Jay Cuthrell:你之前提到这是8 Tb/s可用带宽的一部分。
Rochan Sankar:对,3.2 Tb/s面向网络侧,5 Tb/s面向VI(虚拟接口)侧。
Ray Lucchesi:到目前为止,我们还没有真正讨论前端网络的问题。
Rochan Sankar:这不是前端网络,我们仍在讨论后端网络。
Ray Lucchesi:你是说CPU之间的网络?
Rochan Sankar:图中没有展示这部分。
Ray Lucchesi:什么是逻辑轨道交换的二层CLOS网络(2-layer CLOS Network)?
Rochan Sankar:那是GPU之间的网络。
Ray Lucchesi:GPU之间?我以为GPU间的连接是由上面的GPU网络交换机处理的。
Rochan Sankar:NVLink只能连接最多72个设备,而他们正在构建的是10万级设备规模的系统。
Jack Poller:比较图表顶部和底部的区别——GPU到GPU网络连接了单个机箱内的两个网络。
Ray Lucchesi:你是说这是跨服务器的后端GPU到GPU网络?
Jack Poller:没错,是跨服务器的。我们要解决的问题之一是,机箱内部的带宽比外部更高。通过机箱内GPU与网卡之间的PCIe链路进行外部通信时会产生带宽瓶颈。
Rochan Sankar:这不是我们的臆想,这就是当前系统的实际构建方式。
Ray Lucchesi:我理解后端网络是一个挑战,但之前对服务器内部和外部网络的区分对我来说并不清晰。现在我明白了。
Rochan Sankar:后端网络上的RDMA网卡扩展模型是所有这些集群的运作方式。
Andy Banta:这对我很有帮助,因为我原本以为这也包括前端网络。
Rochan Sankar:确实可以包括。超大规模数据中心的优势之一是,它们选择不在物理层面分离这些网络,而是在交换机内部进行逻辑分区。这样可以减少网络数量,可能从五个减少到三个,甚至从三个减少到两个。
回到这个图,我们的目标仍是提升效率。通过提高向GPU的突发带宽(Burst Bandwidth),我们可以避免扩展瓶颈或处理停顿,从而提高计算资源在总体有效工作时间上的利用率。
另一个显著特点是系统中的内存复制操作大幅减少。通常,在网络上传输数据时都需要执行复制操作。但在一致性域(Coherency Domain)内进行本地数据移动时,可以直接访问内存。这使得加速器直接模型(类似于GPU Direct)成为可能;我们同样可以实现存储直接访问(Storage Direct)和内存直接访问(Memory Direct)。简而言之,任何接收网络数据的内存都可以被直接访问。
Justin Warren:这张图特别强调了GPU内存的移动,说明我们讨论的实际内存是附加在GPU上的。
Rochan Sankar:为了避免图示过于复杂,这里没有显示内存部分。
Justin Warren:理论上,内存可以位于其他位置。
Rochan Sankar:确实如此。这意味着你可以将待处理数据放在其他位置的内存中,比如CPU DDR内存,从而构建高度弹性的数据传输管道,避免处理停顿。你可以将其视为整个数据中心的数据流放大器。实现这一目标的关键在于将网卡转变为交叉开关(Crossbar Switch)。
Jack Poller:让我们简化一下。在没有ACF-S的情况下,上部的GPU可以通过互联直接进行内存访问,互相借用内存。但它们很难与下部的GPU进行类似操作。
Rochan Sankar:它们必须通过网络传输并复制数据。我们虽然也需要复制,但经过的中间节点更少。
Jack Poller:通过整合PCIe交换机和RDMA网卡,我们创建了一个融合的以太网PCIe交叉开关。这使得从上部到下部的直接访问变得更简单,减少了操作步骤和资源争用。
Jay Cuthrell:我正在计算边缘网络小型化带来的重量节省,这让我很兴奋。
Jack Poller:通过消除不必要的组件,在重量和功耗方面的优势确实显著,这也减少了环境影响。
Rochan Sankar:我们的目标是保持数据持续流向每个消费者。
Ray Lucchesi:这是否需要改变CPU处理PCIe协议的方式?
Rochan Sankar:不需要,这是我们的设计要求之一。
Ray Lucchesi:你们完全支持到ACF-S的PCIe协议?
Rochan Sankar:是的,PCIe在这里终止。我们不是通过以太网封装PCIe协议,这与当前RDMA的工作方式不同。我们使用现有的API定义和库中的RDMA结构,保持现有定义不变。
你的想法超前了,但我们的一个基本原则是完全保持编程模型不变。我们的目标是直接对接CPU与GPU之间的通信、这些设备与网卡之间的交互,以及网卡与网络之间的通信。我们不修改任何协议或北向接口,所有变化都在内部。这一点至关重要,因为任何协议偏差都可能危及这些生态系统中的巨大投资。相比之下,改变硬件反而相对容易。
需要强调的是,基于这种架构并拥有足够带宽的蓝色连接,我们可以设想在有限范围内,GPU网络可以作为后端网络连接GPU,而无需单独存在。它可以被整合为一个完整的交叉开关网络(Complete Crossbar Network)。通过创建这些设备的多个轨道并建立多链路连接,我们实际上构建了一个完整的交叉网络。
Justin Warren:这不仅限于这个用途,还可以用于其他所有场景。
Rochan Sankar:没错。
Justin Warren:这真是太棒了。
Rochan Sankar:关键是编程模型保持不变。
Jay Cuthrell:你们从未试图替代CUDA。
Rochan Sankar:完全正确。我们直接集成CUDA,这同样适用于任何集体通信库(Collective Communication Library, CCL)。
现在让我们从芯片层面来看,因为解决如何与行业实际发展相集成非常重要。作为一家小公司,我们面对的是由主导芯片开发的大型巨头。目前构建服务器网络有三种方式,我们可以预见未来几年的发展趋势。
中间部分展示了前端网络的传统RDMA网卡模型。当前有一个向DPU转变的重要趋势,DPU实际上将大量处理任务卸载到网卡上,以满足前端网络的虚拟化、安全性等需求。然而,这些并非后端网络的必要需求,后端网络主要致力于GPU间的数据传输。虽然有人可能会强调后端额外的安全需求,但功能丰富程度并不相同。例如,GPU上没有虚拟安全服务(Virtual Security Service, VSS)的虚拟化概念,因此不会带来相同的复杂性。
传统网卡模型占据了当前市场。左侧是一些替代方案,如英特尔的Gaudi或谷歌的TPU。这些方案采用微型网卡并将其集成到加速器中,实现设备间直接通信。然而,微型网卡可能无法有效调度,可能导致更大的缓冲和拥塞控制变化,这种情况可能需要深缓冲交换机(Deep Buffer Switch),这反映了此类加速器在数据中心的实际部署方式。
我们在这里提出的方案是右侧所示的巨型网卡架构,这与当前使用的其他方案形成对比。
微型NIC之所以有效地充当每个传统NIC的一个链接,是有其原因的。相比之下,巨型NIC能够跨多个端口聚合数Tb/s的流量,并对共享资源上的交换流量进行管理、转发和分类。这种能力使得最优的负载均衡和流量工程决策成为可能,同时支持在单个端口发生故障时通过切换到不同端口进行恢复。
左侧的弹性方案依赖于加速器。如果将微型NIC作为芯片集成到加速器中,那么确保端口之间数据故障转移的责任就落在了加速器上。而在巨型NIC的情况下,设计本身就考虑了在所有端口上进行切换。
左侧方案的最大缺点在于,它实际上削减了浮点运算次数(FLOPs)。将更多的网络功能集成到GPU或加速器中,就会牺牲计算单元在同一芯片或芯片组内交换数据时所能达到的高带宽和低延迟。一旦引入异构网络元素,性能就会下降。这也是我们看到市场领导者没有将ConnectX等组件与Blackwell整合的原因;相反,他们将Blackwell的尺寸扩大了一倍,以最大化H100的性能。
此外,我们必须认识到,扩展问题要求我们构建的机器具有特定的形态——1万个GPU、10万个GPU、甚至百万个GPU。这种规模意味着拥塞控制和流量管理不能仅限于NIC固件,而需要可编程性。众所周知,InfiniBand在短距离内表现出色,但在跨数据中心扩展时效果不佳。因此,在可扩展性至关重要的市场中,支持对拥塞控制进行编程的机制变得尤为重要。
如今,客户关注的焦点已转向多站点训练,而不仅仅是单个数据中心内的训练。如果像GPT-6这样的模型需要巨大的计算资源,那么它可能无法容纳于单个数据中心。相反,它将需要多个相互靠近的数据中心,这引入节点之间不同的距离。
Ray Lucchesi:在巨型NIC和微型NIC之间,弹性是如何显著改善的?它们都是单端口输出。
Rochan Sankar:巨型NIC并不仅仅是一个单端口设备;它由多个端口组成。
Ray Lucchesi:那么,数据是从巨型NIC的哪个部分输出的呢?
Rochan Sankar:从上方的绿色线条输出。
Ray Lucchesi:这些绿色线条代表的也是单端口吗?
Rochan Sankar:是的,它们就是单端口。在第一个模型中,每个NIC都独占一个端口,并且NIC之间没有共享视图。这也是我提到交换和弹性方案由GPU负责的原因;因为在这个设备中没有共享元素,所以任何共享功能都必须由GPU来实现。共享元素位于这些端口的后端。
Alastair Cooke:从某种角度来说,你这是将交换机集成到了芯片中,实际上是将NIC和交换机结合起来了。
Rochan Sankar:完全正确,你理解得非常透彻。
Andy Banta:你们考虑过使用什么协议吗?
Rochan Sankar:协议是固定的:一侧是以太网,网络侧是IP和基于以太网的RDMA(RoCE)。
Andy Banta:你们关注超以太网吗?
Rochan Sankar:是的,我们参与了技术顾问委员会,并持续跟踪其发展。我们相信它未来会有广阔的应用前景。然而,目前客户面临的首要挑战是与现有的基于InfiniBand verbs的API集进行扩展。
当超以太网成熟时,我们会提供支持。我们这一代产品是在超以太网标准制定之前设计的。
Andy Banta:我只是想知道你们是否关注这个领域。
Rochan Sankar:我们不仅关注超以太网,还关注另一个新兴联盟UALink。大家普遍认为,PCIe可能不是将数据传输到加速器的最佳接口,因为它存在开销和向后兼容性问题。虽然PCIe 6和7正在发展,但我们认为可能会有更高吞吐量的选项。例如,我们可以实现224 Gb/s的SERDES,而不仅仅是PCIe Gen 6的64 Gb/s。
Ray Lucchesi:这个方案也能处理存储吗?
Rochan Sankar:完全可以。在这个模型中,你可以用存储替换GPU。从网络设备的角度来看,GPU被视为内存,因为它作为散射-聚合列表中的数据目标,使得数据能够打包成数据包。你也可以用CXL内存驱动器或带有DDR的CPU来替代GPU。模型是通用的。
Justin Warren:存储不就是慢速内存吗!
Rochan Sankar:这个网络的一个特点就是具有弹性。它可以在粗链路和细链路之间灵活切换,细链路有其优势。使用细链路,你可以获得更高的端口密度,连接到网络的下一级,从而实现更多的路径多样性。另一方面,粗链路在传输大流量时能提供最大的带宽和最低的延迟,无论是在序列化速度还是吞吐量方面。这里的每个端口都是一条独立的路径,这意味着任何一个端口的故障都不会影响其他端口。
Jay Cuthrell:你多次提到可编程性的重要性。在你们领域,故障可能是自发发生的,但很明显你们正在引入一些灵活性。
Rochan Sankar:作为共享元素,我们的故障会影响相关组件。然而,对于这些大规模数据中心工作负载,当进行并行计算时,任何节点的故障都会影响更广泛的工作负载。例如,当一个GPU故障,同时又是NVL域的一部分时,操作人员通常会关闭整个NVL域。或者,如果他们可以更换一个备件,也会改变代码路径。
Ray Lucchesi:在一个服务器内部,不会有两个Accelerated Compute Fabric SuperNIC (ACF-S)交换机吧?
Rochan Sankar:如果每个GPU都能连接到这两个交换机,那完全可以。这会在GPU和ACF-S之间形成一个网状结构,使系统在网络和GPU两侧都更加弹性。
Jay Cuthrell:那么,为这种非停机架构付出多少成本呢?这才是关键问题。
Ray Lucchesi:这只是一个资金问题。只要有足够的电力和冷却,我觉得我们就能实现。
Rochan Sankar:实际上,这会减少总组件数量,所以更关键的问题在于你如何定义服务器——是基于机架的,还是多机架的?我们已经接近NVL72的水平,这意味着机架就是计算机。
Rochan Sankar:这个设置包括在两侧的多个内部交换结构,以及具有NIC的网状结构。这也使得高度可组合的IPC域成为可能。我的意思是,右侧目前看起来均匀的GPU可以被任何你想要的处理拓扑替换。这本质上是一种编写内存和检索内存的方法,而无需数据经过CPU循环。
Jay Cuthrell:我查看了你们网站上的一些关键词和你们发表的帖子。我认为这是你今天第一次使用“可组合”(composable)这个词。你能详细解释一下你所说的“可组合”是什么意思吗?
Rochan Sankar:之所以这个词被过度使用,是因为我们最终会形成不同的工作负载:有训练工作负载、推理工作负载,以及分析与RAG之间将要发生的丰富应用集成。在这些情况下,可能会涉及大量的浮点计算、标量计算和数据组织——预处理或缓存等。这意味着你可能不会将一个节点视为仅仅是一组均匀的GPU。我们之所以在这里这样做,是因为基础训练目前是核心关注点。
为此,你需要数据湖。你需要可以访问紧邻的庞大数据存储池的东西,而这个设置实际上会让你分配这些资源。它还使你能够创建缓存层;你可以看到几块GPU被一个专用内存层替代。这个内存层不会被饱和的HBM或使用其所有内存通道进行处理的CPU所瓶颈。
Ray Lucchesi:我想另一个问题是,内存总线是否也挂在这个系统上。
Rochan Sankar:不,我们没有任何直接的内存接口。没有用于用户数据的DDR接口。我们设备上有嵌入式CPU的DDR,但我们连接到内存的方式是通过CXL。当我们在这里提到“数据内存数据存储”时,我们指的是CXL附加内存,实际上是使用PCIe——同样的PCIe。
Jack Poller:我们在这整个过程中都在推测,而你刚刚确认了这一点。
Rochan Sankar:我确实提到了CXL。具体来说,网络侧有3.2 Tb/s的带宽,通过32条100 Gb/s的通道输出。当前,主机或加速器内存面对的带宽在128到160条PCIe 5的通道之间,正在过渡到PCIe 6。它可以通过共享的网络和计算接口连接任何东西。在中心位置,我们进行所有内存的转换和缓冲,管理这些组件之间的共享缓冲,因此任何端口都可以切换到任何其他端口。
Justin Warren:说到CXL,展望未来——CXL 1没有交换功能,但CXL 2有。
Rochan Sankar:我们是CXL 2.0兼容的。我们认为CXL更像是一个DMA存储,你不一定需要使用CXL协议来实现。我们可以做的一项技巧是支持GPU通过PCIe与我们通信,并将数据放入CXL内存中。
这款芯片相比其他RDMA解决方案有何独到之处?从根本上说,它提供了四到八倍的带宽和四到八倍的路径多样性。它原生支持PCIe和CXL切换,并能处理800 Gb/s的流量。更重要的是,它可以无缝地与现有的编程接口(如PyTorch和CCL)集成,无需对应用程序进行重大改动。我们只需将底层优化集成到这些库中即可。
Ray Lucchesi:这张图表中有一条线让我非常困惑:从底部数起的第二条线。你认为一个ACF-S会每10^56年失效一次吗?
Rochan Sankar:那是由于NIC线缆导致的故障率。如果排除线缆故障的影响,芯片本身的故障率将会成为主要影响因素。然而,导致GPU需要进行检查点的最主要原因实际上是NIC线缆的掉线或抖动。这会导致系统无法及时接收集体信息,从而引发整个应用程序的故障。这种现象在10万个节点的系统中,受线缆故障的平均无故障时间(MTBF)约为五年影响。我们并不是说ACF-S的MTBF能达到每10^x年。我们的意思是,网络故障导致GPU故障的概率会以这种频率发生。
Alastair Cooke:由于架构设计,如果系统后端的物理线缆发生故障,ACF-S内部的交换机可以重新打包数据而不丢失。
Rochan Sankar:你完全说对了,这正是我接下来要强调的。
Alastair Cooke:看来我们今天对你的理解非常到位。
Jay Cuthrell:目前还没有生物能够腐蚀铜或玻璃,所以暂时来说应该是安全的。
对于那些对芯片设计感兴趣的人来说,这款芯片的结构与传统的NIC有很大不同。它的尺寸远大于典型的NIC卡,这是因为它具有更高的芯片I/O密度。芯片内部包含10个NIC,采用交叉开关架构。它可以通过一个平面连接任何PCIe端口或面向主机的端口,并将其引导到任意一个数据通道。这些通道可以处理数据包头或直接传输负载。重要的是,数据不会经过NIC传输;负载根据NIC的路由决策被缓冲并直接进行DMA传输。这与现有的任何NIC都截然不同。
此外,共享流缓冲的设置也非常独特。这个系统类似于以太网交换机,作为一个共享元素,可以接收来自所有GPU的聚合流量,并对流量进行管理。它能实现负载均衡、检测错误状态,并通过将流量路由到不同端口来处理故障。这种聚合和共享机制类似于将高速公路上的所有车道汇聚成一条主干道,从而实现更好的资源分配和工作分配。因此,聚合对于处理大规模工作负载非常有利。而对于小规模工作负载,粒度和打包则更为重要。
芯片本身集成了192个SERDES,通过消除PCIe交换机与NIC、以及NIC与首跳交换机之间的序列化层级,显著降低了整体系统功耗。我们能够线性扩展该系统,构建一个高度弹性、可扩展的网络,而无需为GPU布线和扩展布线设计不同的架构。
在流量工程方面,我们实现了两个关键目标。首先,通过在端点提供更大的流量工程表面,减少了对网络中深缓冲交换机的需求。当数据即将到达接收端却因缓冲区溢出而丢包时,重新传输会带来高昂的代价。我们通过基于接收端汇总流量的早期信号传递来避免这种情况。此外,我们还配备了一个大型共享缓冲区,用于在发生上述事件时暂存数据。相比传统方案,我们的缓冲区容量大了一个到两个数量级。这在延迟和吞吐量之间取得了平衡:一方面,我们避免了过度缓冲;另一方面,也避免了网络中过深的缓冲区导致的延迟和抖动。
关于可编程传输,控制平面并不在芯片内部运行,而是运行在一个附属的通用核心CPU上。这样做的目的是为了让传输能够在客户熟悉的标准指令集架构(ISA)和设备上进行编程。这赋予了客户对网络操作的掌控权。我们之前讨论过DPU的用途,DPU的用例是让客户能够拥有、操作或编程这些设备的控制平面和传输。现在,我们构建了这个大规模系统级DPU,其中数据平面由我们的专用设备处理,而控制平面则由标准的通用核心设备处理。这使得你可以按秒扩展数据包;任何端口都可以作为传输端口。
硬件负责管理数据包的各个方面,包括转发、CRC校验、流量控制、拥塞控制、地址转换以及发送/接收合并。对于多数据包或基于消息的操作,这些任务会有不同的处理方式。你可能会好奇,我们是否能处理64字节的超小数据包。答案是否定的,但对于AI工作负载来说,这并不重要,因为它们通常处理的是10 MB或100 MB级别的大文件和大向量。网络的最大传输单元(MTU)通常为2K或4K,这意味着头部开销与负载的比例约为1:16。这使得我们在数据传输过程中,可以在软件层对每个数据包执行大量的操作。
接下来,让我们讨论一下芯片的硬件封装。
这是一款3.2 Tb/s的系统NIC。未来一到两年内,最常见的GPU计算服务器将是4 GPU服务器,每个GPU需要800 Gb/s的网络带宽,总计3.2 Tb/s。一个ACF-S “Millennium”设备实际上可以替代这种服务器机箱中的四个RDMA NIC。它不改变面向GPU或CPU节点的任何接口。虽然功率特性和CPU复杂度有所不同,但它代表了一种全新的解决方案,从硬件角度来看,最终实现了与传统方案相同的接口。从软件角度来看,也是如此。如图右侧所示,它完全兼容Collective Communication Library (CCL)堆栈,无需任何改动。我们为ACF-S所做的所有优化对CCL堆栈都是透明的。当系统识别到只有一个NIC时,我们会在内部将其分解为多个虚拟NIC。
Jay Cuthrell:你提到你的verbs在这个方面显示出来,正如你之前所提到的。
Rochan Sankar:是的,我们使用的是相同的IB verbs。
Jay Cuthrell:你没有改变或调整任何内容。
Rochan Sankar:对,就是RDMA发送、接收、写入这些基本操作。
Jack Poller:我们是将其放在新的主板上,还是仍然作为插卡来做?
Rochan Sankar:如果你看左侧服务器的构造,它与典型的现成CPU服务器不同。它有一个CPU和一个GPU,位于一个专用的AI主板上。NIC要么位于上方的夹层卡(Mezzanine)上,要么位于前方的前置舱中。而我们的设备正好可以插入这个前置舱。
Ray Lucchesi:你正在运行的软件堆栈是硬编码的、可更新的并且可支持的。
Rochan Sankar:我们与verbs层和集成插件层相关的组件都是开源的,并向上游社区贡献。当我们有改进时,就会将其合并到Linux内核中,就像任何其他驱动程序一样。驱动层与我们的硬件交互,但我们希望将其开源,使其成为Linux的一部分。这并不是一个封闭的、无法访问的专有传输。
Ray Lucchesi:启动等操作需要驱动程序支持。这在这个上下文中是如何进行的?你正在更换PCIe总线。
Rochan Sankar:我们没有改变PCIe,我们依然在PCIe总线上运行。关于PCIe没有任何变化。CPU的启动方式与以前一样,我们只是作为PCIe子系统的一部分进行枚举。我们需要澄清的是,我们并没有发明一个新的NVLink。一切遵循服务器启动、BIOS工作以及如何进行枚举和内存映射的相同规则。我们所做的只是重构PCIe网格内的组件,以使数据移动更加高效。
Stephen Foskett:所有连接的设备都将其视为另一个NIC;他们不知道这是一个超巨型芯片内的NIC。
Rochan Sankar:是的,CPU不需要知道有32个端口,它并不关心。
Stephen Foskett:它认为它正在通过那个NIC与以太网网络通信。
Rochan Sankar:这是我们的驱动程序在建立的连接。集体通信库识别出这是一个A端口,这个细节已经被抽象掉了。它只看到一个端口。我们只是告诉它:“你可以将这个端口拆分成32个或8个。”
Ray Lucchesi:GPU的PCIe连接通过你连接,而不再是连接到正常的PCIe总线。
Rochan Sankar:它们通过一个PCIe交换机连接,这个交换机是位于主板或机架上的另一个商用设备。CPU、GPU和NIC都连接到这个交换机。我们所做的并不是前所未有的。如果你看ConnectX-7和ConnectX-8,它们实际上有两个PCIe端口,并且有一个伪交换机,CPU和GPU连接到其中。事实上,如果你考虑Graviton实例,它们有一个嵌入式的三端口PCIe设置。所以并不是说我们需要一个单独的PCIe交换机。如果你已经有了一个NIC,并通过一些交换扩展它,它可以有效地工作。
Jay Cuthrell:来自超大规模厂商或类似供应商的定制芯片,例如Maya和Cobalt。你提到的Google正在追求的GP和TPU创新,他们显然会继续这一创新。然而,这绝对是面向更广泛的市场;你并不仅仅是在谈论特定供应商。
我们无法预先适配所有可能的硬件变体。我们为客户提供了一种灵活的方式,让他们在未来一年内评估并集成我们的产品。我们将系统设计成一个可插拔的卡或托盘,用户可以直接将其放入机架并连接线缆。虽然这种方式可能不是生产环境下的最佳部署方案,但对于一些客户来说,这种方式可以减少对机箱内PCIe布线的依赖。
不过,我们也可以将它配置成一个PCIe机箱。我们的ACF SuperNIC位于其中,你可以将其连接到一个GPU网络节点(即一组连接了CDFP线缆的GPU服务器),也可以连接到CPU服务器。它不仅可以作为GPU网络节点,还可以承担CPU的功能。你可以将PCIe插槽插入两个H100级别的GPU、SSD或CXL内存驱动器。这样,就形成了一个可组合的系统,可以用于验证各种PCIe端点技术,并作为一个聚合的I/O中心。此外,它还配备了四个800 Gb/s的网络端口,这表明它不仅是一个PCIe交换机机箱,更是一个网络设备。
Justin Warren:服务器并不仅仅是一个4U盒子,它可以是一个机架甚至多个机架。将服务器等同于一个4RU设备是不准确的。在这些系统中,服务器的概念已经超出了一块电路板,而扩展到了多个组件。
Rochan Sankar:是的,我们要更宏观地看待这个问题。GB200是一个1U的液冷服务器,而之前的DGX系统则有8U或10U那么大,而且每个机架只能容纳两个。
Jay Cuthrell:使得,早些时候,一位赞助商展示了实际的数据中心部署情况。由于电源限制,只有机架的底部部分可以利用。
Rochan Sankar:在接下来的12到18个月里,我想谈谈我们如何解决实际问题。我们聚合和合并技术的一个主要优势是,能够用更少的网络跳数连接大量的GPU。从根本上说,GPU之间的跳数延迟直接影响通信时间,也就是完成集体操作所需的时间。
这里所说的延迟不仅仅是平均延迟,还包括尾部延迟。也就是说,最慢的设备会拖慢整个系统的速度。这不仅对训练模型很重要,对任何跨GPU的并行计算任务都至关重要。我们的ACF能够实现32倍的端口倍增。我们提供的是32个100 Gb/s的端口,而不是单个端口。这意味着您可以连接一个非常庞大的网络,比如图中所示的:如果每个ACF连接4个GPU(每个GPU 800 Gb/s),那么我们就可以连接到32个交换机。相比于800 Gb NIC,总连接数增加了4倍,而基于将800 Gb端口分解为100 Gb,多样性更是增加了8倍。
这种设计让我们在数据中心层面实现了一种前所未有的能力:仅用两层交换机就能连接超过50万个GPU。相比之下,目前几乎所有支持2.4万到3.6万个GPU的AI集群都采用三层网络交换机加上NIC和PCI交换机的架构。我们通过减少网络层级,实现了更高的GPU密度,从而提升了作业性能和资源利用率。
Jack Poller:能否提供一些定量数据,让我们更直观地了解减少一层网络带来的性能提升?
Rochan Sankar:由于涉及到一些保密协议,我们无法公开具体数据。但平均而言,通过优化网络,我们可以节省50%到60%的TCO。
我们之前提到过弹性,现在我们来详细解释一下它是如何实现的。多路径交换Fabric是实现弹性的关键。每个GPU,无论其位置如何,都可以通过多条路径连接到其他设备。这样,当某个端口发生故障时,系统可以自动切换到其他可用路径。软件可以根据中断事件启动,以实现最佳的负载均衡。
硬件可以立即做出反应,无损地转移流量,但可能会导致负载不均衡。理想情况下,我们希望将流量均匀地分配到所有端口上。然而,标准的ECMP算法可能会导致负载不均衡,因为它使用了哈希函数。如果一个GPU有大量数据流,它们可能会被哈希到同一个端口。因此,我们开发了一种新的方法,可以保证数据包的顺序性,同时支持无序数据传输,从而实现更好的负载均衡。我们的技术在业界处于领先地位。
为了更好地理解我们的技术,我们先回顾一下之前讨论过的网络韧性问题。随着网络规模的扩大和数据速率的提升,人们越来越关注如何保证网络的可靠性,尤其是当我们采用光纤技术时。由于铜缆在短距离传输方面具有优势,人们一直试图在网络的第一跳(即服务器内部)继续使用铜缆。然而,在一个拥有10万个节点的集群中,即使平均故障间隔时间(MTBF)为五年,每23分钟就会发生一次故障。我们的设备通过无缝切换流量,有效地解决了光缆故障对GPU性能的影响。带宽的降低程度取决于链路的具体限制。我们相信,这种技术能够显著提升网络可靠性,并推动更高速互联的发展。
接下来我想强调一下生成式AI(如生成式预训练模型和检索增强生成模型)的应用场景。这些模型通常需要大量的计算资源,尤其是推理阶段。目前,推理任务通常在一个或多个GPU上运行,并利用HBM作为其关键值缓存。
对于大型语言模型(LLMs)和分布式检索系统(DRRM),我们需要更广阔的数据访问空间。虽然我们可以使用CPU DDR等存储介质,但为了实现无限扩展,我们需要更低成本、更高带宽的存储解决方案。我们的系统不仅提供了高带宽的GPU互联,还大幅提升了内存作为共享层的带宽。
我们的设计类似于一个内存区域网络,能够在几微秒内访问任何加速计算服务器。这就像一个分层缓存系统,底层是本地数据存储,往上依次是HBM、相邻GPU和CPU DDR。
这种架构使得我们灵活地组合不同的存储和内存资源。对于RAG来说,这种灵活性尤为重要,因为RAG主要依赖于检索操作。通过这种方式,我们可以减少对单个GPU的需求,并提高资源利用率。
不同的服务对延迟的要求不同。例如,文本生成任务可以容忍一定的延迟,而实时对话系统则需要极低的延迟。我们的系统可以满足不同类型服务的延迟需求。
如果我们能够使用更便宜的内存(例如每GB 80美元,相比之下HBM每GB 3-4美元),并通过高带宽网络将其连接起来,那么我们就可以实现更高的资源利用率。
我们可以将这种概念应用于内存缓存(memcache)和内存数据库。通过将网络端口转换为内存端口,我们可以显著提升内存带宽,尽管会带来一定的延迟增加。我们认为,这种方法代表了未来加速计算架构的发展方向。
ACF能够解决下一代数据中心面临的几个关键挑战:高带宽、低延迟、大规模扩展性和异构计算。ACF可以连接各种类型的加速器、内存和存储设备,并提供高效的数据传输。通过对传输和拥塞控制进行编程,ACF能够实现极低的延迟和高吞吐量,从而节省大量的电力。
Andy Banta:我想问一个问题,您一开始提到GPU的模型和硬件效率。您对这种架构的应用场景有哪些初步的猜测?
Rochan Sankar:我们的目标是将这种架构应用于目前最大的AI训练和推理集群。这些集群对模型浮点运算利用率(MFU)和总拥有成本(TCO)非常敏感。我们希望通过这种架构提高MFU,降低TCO。
Andy Banta:您之前提到过,目前GPU的硬件浮点运算利用率最高只有60%到65%。这是因为硬件的限制吗?
Rochan Sankar:主要原因是软件映射效率。GPU架构的特点使得我们无法完全利用所有的计算单元。这与编译器如何将软件映射到底层核心有关。所以,这个问题更多的是软件效率的问题,而不是硬件的限制。

—END—


点击下方名片


即刻关注我们


算力猩
隶属于智猩猩,关注计算芯片创新,解读中国算力突破。
 最新文章