超高带宽、超低延迟、超高可靠,这是大模型训练对于网络的要求。
多年来,TCP/IP协议一直是互联网通信的支柱,但对于AI网络来说,TCP/IP 在某些方面存在着致命的缺点。TCP/IP协议的时延较高,通常在数十微秒左右,同时还会对CPU造成严重的负载。RDMA能直接通过网络接口访问内存数据,无需操作系统内核的介入。这允许高吞吐、低延迟的网络通信,尤其适合在大规模并行计算机集群中使用。
RDMA技术有四种实现:InfiniBand、RoCEv1、RoCEv2和iWARP。其中,RoCEv1已被弃用,iWARP也不太常用。目前业界常用的网络解决方案是InfiniBand和RoCEv2。
那么,InfiniBand和RoCE,谁更适合AI数据中心网络?
HPC/AI 工作负载对网络有什么要求?
目前数据中心大多采用二层网络架构,而AI 集群是为执行复杂的大规模 AI 任务构建的超级计算机。计算机工作负载在多个 GPU 上并行运行,需要得到高度利用。因此,相较于传统数据中心网络,AI数据中心网络面临着额外的复杂性:
并行计算:AI 工作负载是运行相同应用程序/计算任务的多台机器的统一基础设施。
规模:HPC/AI任务的规模可以达到数千个计算引擎(如GPU、CPU、FPGA 等)。
作业类型:不同的任务在大小、运行持续时间、需要考虑的数据集大小和数量、需要生成的答案类型以及用于编码应用程序的不同语言和它运行的硬件类型等方面有所不同,这都会导致为运行HPC/AI工作负载而构建的网络内流量模式不断地变化。
无损:在传统数据中心中,丢失的消息会重传,而在AI 工作负载中,丢失消息意味着整个计算要么错误,要么被卡住。因此,AI 数据中心需要一个无损的网络。
带宽:高带宽流量需要在服务器之间运行,以便应用程序能够获取数据。在现代部署中,AI 或其他高性能计算功能的每个计算引擎的接口速度达到 400Gbps。
这些复杂性都对AI 网络提出了重大挑战,因此AI 数据中心网络需要具有高带宽、低延迟、无抖动、无数据包丢失和长期稳定等特点。
从TCP/IP到RDMA
对于HPC/AI等低延迟、高I/O并发的应用,现有的TCP/IP软硬件架构无法满足应用需求。传统的TCP/IP网络通信使用内核来发送消息,这种通信模式具有较高的数据移动和数据复制开销。比如,在典型的 IP 数据传输中,当一台计算机上的应用程序向另一台计算机上的应用程序发送数据时,接收端会发生以下操作:
1、内核必须接收数据。
2、内核必须确定数据属于应用程序。
3、内核唤醒应用程序。
4、内核等待应用程序对内核执行系统调用。
5、应用程序将数据从内核内存空间复制到应用程序提供的缓冲区中。
此过程意味着,如果主机适配器使用直接内存访问 (DMA),则大多数网络流量都会在系统主内存中复制。此外,计算机还执行一些上下文切换以在内核和应用程序之间进行切换。这些上下文切换可能会导致更高的 CPU 负载和高流量,同时减慢其他任务的速度。
与传统的IP通信不同,RDMA通信绕过了通信过程中的内核干预,允许主机直接访问另一个主机的内存,减少了 CPU 开销。RDMA 协议使主机适配器能够在数据包进入网络后决定哪个应用程序应该接收它,以及将其存储在该应用程序内存空间中的位置。主机适配器不是将数据包发送到内核进行处理并将其复制到用户应用程序的内存中,而是直接将数据包内容放入应用程序缓冲区中。
RDMA传输降低了所涉及的CPU周期数,有助于提高吞吐量和性能。换句话说,RDMA的本质,是对于大规模分布式计算存储的场景,让网卡绕开CPU,配合远端服务器直接存取内存,加速服务器之间的交互,降低时延,把宝贵的CPU资源用于高价值的计算与逻辑控制上。
与传统TCP/IP网络相比,InfiniBand和RoCEv2绕过了内核协议堆栈,延迟性能可以提高几个数量级。在同一集群内的通信可以在单跳中实现的情况下,实验测试表明,绕过内核协议堆栈后,应用层的端到端延迟可以从50us (TCP/IP) 减少到5us (RoCE) 或 2us (InfiniBand)。
Infiniband网络简介
Infiniband网络通过Infiniband适配器或交换机而不是以太网来实现数据传输。特定类型的以太网交换机的端口到端口延迟为 230 ns,而具有相同端口数量的 InfiniBand 交换机的延迟为 100 ns。
InfiniBand网络的关键组件包括子网管理器(SM)、IB网卡、IB交换机和IB线缆。InfiniBand交换机不运行任何路由协议,整个网络的转发表由集中式子网管理器计算和分发。除了转发表外,SM还负责管理InfiniBand子网中的分区和QoS等配置。InfiniBand网络需要专用线缆和光学模块来互连交换机并将交换机连接到网卡。
本地无损网络
InfiniBand网络利用基于信用令牌机制,从根本上避免缓冲区溢出和数据包丢失。发送端只有在确认接收端有足够的信用来接受相应数量的报文后才会启动分组传输。
InfiniBand网络中的每个链路都有一个预定的缓冲区。发送端不会传输超过接收端可用的预定缓冲区大小的数据。一旦接收端完成转发,就会释放缓冲区,并将当前可用的预定缓冲区大小持续返回给发送端。这种链路级流量控制机制确保了发送端不会发送过多的数据,防止网络缓冲区溢出和数据包丢失。
网卡扩展能力
InfiniBand的自适应路由基于每包动态路由,确保大规模部署中网络的最佳利用。InfiniBand网络有许多大型GPU集群的例子,如百度人工智能云和微软Azure。
InfiniBand网卡在速度方面一直在快速发展,200Gbps HDR已经大规模部署商用,400Gbps NDR的网卡也开始商业部署。目前,市场上,NVIDIA为主要的InfiniBand网络解决方案和配套设备提供商。下图显示了常用的InfiniBand网卡。
RoCE v2网络简介
RoCE通过以太网实现RDMA功能,可以绕过TCP/IP并使用硬件卸载,从而降低CPU利用率。RoCE有两个主要版本:RoCEv1和RoCEv2。RoCEv1是基于以太网链路层实现的RDMA协议。交换机需要支持PFC等流控技术,以保证物理层的可靠传输。RoCEv2是在以太网TCP/IP协议的UDP层实现的,引入IP协议是为了解决可扩展性问题。
RoCEv2支持在第三层以太网络上传输RDMA路由。RoCEv2将InfiniBand网络层替换成以太网链路层上的IP和UDP报头,这使得在基于IP的传统路由器之间路由RoCE成为可能。
InfiniBand网络在某种程度上是具有SM(子网管理器)的集中管理网络,而RoCEv2网络是一个纯分布式网络,由支持RoCEv1的NIC和交换机组成,通常采用两层体系架构。
RoCE网卡的主要供应商是NVIDIA等。PCIe卡是数据中心服务器网卡的主要形式。RDMA卡的端口PHY速度通常从50Gbps开始,当前可用的商用网卡可以实现高达400Gbps的单端口速度。
目前,大多数数据中心交换机都支持RDMA流量控制技术,当该技术与支持RoCE的网卡结合时,可以实现端到端的RDMA通信。
IB vs.RoCE
与InfiniBand相比,RoCE具有更大的通用性和相对较低的成本。它不仅可以用于构建高性能RDMA网络,还可以用于传统以太网。然而,在交换机上配置Headroom、PFC(基于优先级的流量控制)和ECN(显式拥塞通知)等参数可能会很复杂。在大规模部署中,RoCE网络的总体吞吐量性能可能略低于InfiniBand网络。
从技术角度来看,InfiniBand采用了多种技术来提高网络转发性能,减少故障恢复时间,提高可扩展性,并降低操作复杂性。
在业务性能方面,与RoCEv2相比,InfiniBand的端到端延迟较低,因此构建在InfiniBand上的网络在应用程序级业务性能方面具有优势。
在带宽和延迟方面,拥塞和路由等因素会影响高性能网络互连。
拥塞
InfiniBand 使用两种不同的帧中继消息来控制拥塞:前向显式拥塞通知 (FECN) 和后向显式拥塞通知 (BECN)。当网络出现拥塞时,FECN 通知接收设备,而 BECN 则通知发送设备。InfiniBand 将FECN 和 BECN与自适应标记率相结合,以减少拥塞。它提供了粗粒度的拥塞控制。
RoCE 上的拥塞控制使用显式拥塞通知 (ECN),它是 IP 和 TCP 的扩展,可以在不丢弃数据包的情况下启用端点网络拥塞通知。ECN 在 IP 报头上放置一个标记,告诉发送方存在拥塞。对于非 ECN 拥塞通信,丢失的数据包需要重传。ECN 减少了 TCP 连接拥塞造成的数据包丢失,避免了重传。更少的重传可以减少延迟和抖动,从而提供更好的事务和吞吐量性能。ECN 也提供粗粒度拥塞控制,与 InfiniBand 相比没有明显优势。
路由
当网络中出现拥塞时,自适应路由会通过备用路由发送设备,以缓解拥塞并加快传输速度。RoCE v2 运行在 IP 之上。几十年来,IP 一直通过先进的路由算法实现可路由,现在通过 AI 机器学习可以预测拥塞的路由,并自动通过更快的路由发送数据包。在路由方面,以太网和 RoCE v2 具有显著的优势。
然而,InfiniBand 和 RoCE 对于尾部延迟没有做太多处理。尾部延迟对于 HPC 消息应用程序的同步非常重要。
不断增长的市场需求是技术发展的根本驱动力。根据 IDC 的数据,2023 年AI基础设施建设投资将达到1540亿美元,到 2026 年将增长到 3000亿美元。2022 年,AI网络市场已达到 20亿 美元,其中 InfiniBand 贡献了 75% 的收入。
在比较InfiniBand和RoCE时,我们可以看到两者都有各自的优势和适用场景。IB在高性能计算领域表现出色,可提供卓越的性能、低延迟和可扩展性。RoCE则更容易集成到现有以太网基础设施中,并具有较低的成本。