什么是UEC协议
UEC协议指的是超以太网传输协议(Ultra Ethernet Transmission Protocol),是由微软、英伟达、AMD、英特尔、思科、博通、Meta、HPE等科技巨头在Linux基金会的牵头下成立的超以太网联盟(Ultra Ethernet Consortium,简称UEC)所开发的技术规范。该联盟的目标是解决传统以太网性能不足的问题,特别是在人工智能(AI)和高性能计算(HPC)领域的需求。
UEC协议旨在定义以太网通信的协议、电信号和光信令特性、应用程序接口或数据结构,以及链路级和端到端网络传输协议,以扩展或取代现有的链路和传输协议。其技术目标包括提高带宽、降低延迟、尾部延迟和扩展规模,以匹配未来的工作负载和计算架构。
此外,UEC协议还注重功能、性能、总体拥有成本(TCO)以及开发者和最终用户的友好性,同时尽量减少对现有以太网互操作性的改变。
UEC2023白皮书
本文给出白皮书的中文翻译版本: Ultra Ethernet Consortium
--来源 https://seclee.com/post/202408_uec2023/
即将到来的超以太网联盟规范概述和动机
现代人工智能的网络需求
网络在高效且成本效益高的 AI 模型训练中变得越来越重要。大型语言模型(LLM),例如 GPT-3、Chinchilla 和 PALM,以及推荐系统如 DLRM 和 DHEN,都是在数千个 GPU 的集群上进行训练的。
训练包括频繁的计算和通信阶段,其中训练的下一个阶段的启动取决于跨 GPU 套件的通信阶段的完成。最后到达的消息决定了所有 GPU 的进度。这种尾部延迟(tail latency)——通过通信阶段中最后一条消息的到达时间来衡量——是系统性能的关键指标。
大型模型的大小在参数数量、嵌入表项和上下文缓冲区的词数方面持续增加。例如,2020 年 GPT-3 是拥有 1750 亿参数的最先进模型。最近,宣布的 GPT-4 模型预计将有一万亿参数,而 DLRM 拥有数万亿参数,并预计会继续增长。这些越来越大的模型需要越来越大的集群来进行训练,并驱动网络上的更大消息。当网络性能不佳时,这些昂贵的集群会被闲置。连接这些计算资源的网络必须尽可能高效且成本效益高。
高性能计算(HPC)任务同样要求很高,并且在规模和有效利用分布式计算资源方面,HPC 和 AI 之间的需求日益趋同。虽然 AI 工作负载通常对带宽需求极大,但 HPC 也包括一些对延迟更为敏感的工作负载。
以太网的优势
目前,包括用于 AI 训练的 GPU 的超大规模部署在内的许多大型集群已经在基于以太网的 IP 网络上运行,利用了它们的众多优势:
- 一个由许多参与方组成的广泛、多厂商的以太网交换机、NIC、线缆、收发器、光学设备、管理工具和软件的互操作生态系统。
- IP 网络的成熟的寻址和路由规模,能够支持机架级、建筑级和数据中心级网络。
- 用于测试、测量、部署和高效操作以太网网络的工具谱系。
- 通过竞争生态系统和规模经济降低成本的历史。
- IEEE 以太网标准在多个物理层和光学层上快速、定期发展的能力。
我们预计这些优势将成为基本要求,以太网网络将在未来越来越多地主导各种规模的 AI 和 HPC 工作负载。
未来人工智能和高性能计算网络的关键需求
即使考虑到使用以太网的优势,也有改进的空间和必要。网络必须发展,以更好地应对未来网络规模和带宽的增加,提供前所未有的性能。最重要的是网络需要尽可能快速地将消息传递到所有参与的端点,而不会因个别端点的延迟而导致长时间的等待。应尽量减少“尾部延迟”。
为了实现低尾部延迟,UEC 规范通过解决下一代应用程序的以下关键网络要求提供显著的改进:
- 多路径和数据包喷洒(packet spraying)
- 灵活的交付顺序
- 现代拥塞控制机制
- 端到端遥测
- 更大的规模、稳定性和可靠性
最后一点对前面的所有要求提出了额外的挑战。高性能系统容错空间极小,这在更大的网络中会累积起来。随着系统的增长,确定性和可预测性变得更加困难,需要新的方法来实现全面的稳定性。
在以下章节中,作为 Ultra Ethernet Consortium 提出解决方案的动机,我们将详细说明这些需求,并展示当前可用技术存在的缺陷,这些缺陷需要得到解决。我们旨在为这些未来的工作负载提供更简单和更高效的远程直接内存访问(RDMA)和互连。
多路径和packet spraying
传统的以太网网络基于生成树协议,确保从 A 到 B 的单一路径,以避免网络中的环路。随后出现了多路径技术,例如等价多路径(Equal-Cost Multipath,ECMP),网络尝试利用尽可能多的链接来连接通信伙伴。ECMP 通常使用“流哈希”(flow hash)将给定的四层流量发送到一条路径上,同时将不同的流量映射到不同的路径。然而,这种方法仍然将高吞吐量流量限制在一条路径上。此外,当多路径技术将过多的流量映射到单一网络路径时,网络性能会下降,因此需要对负载均衡进行精细管理以获得最佳性能。技术发展的下一阶段是每个流量同时使用所有通往目的地的路径,这种技术被称为“数据包喷洒 packet spraying”,它实现了对所有网络路径的更均衡利用。
灵活的包交付顺序(可靠传输有序)
旧技术使用的严格数据包排序(例如,Verbs API 要求的排序)限制了效率,因为它阻止了乱序的数据包数据直接从网络传输到应用程序缓冲区,即主存储器中的最终位置。这一限制,加上 Go-Back-N 数据包丢失恢复(它会因一个丢失的数据包而强制重新传输多达 N 个数据包),导致可用链路的未充分利用和尾部延迟增加,这对于大规模 AI 应用来说是不够的。理想情况下,所有链路都会被使用,只有在 AI 工作负载需要时才强制保持顺序。
在 AI 工作负载中,大量的GPU或者accelerator间通信是“集合”通信操作的一部分,其中 All-Reduce 和 All-to-All 是主要的集合通信类型。这类通信快速完成的关键是从 A 到 B 的快速批量传输,AI 应用程序只关心给定消息的最后部分何时到达目的地。灵活的排序可以高效地完成这一任务。同样,它通过消除在将数据包传递给应用程序之前对其重新排序的需求,实现在带宽密集型集体操作中的数据包喷洒的好处。支持现代 API,在适合应用程序的情况下放宽数据包逐个排序的要求,对于减少尾部延迟至关重要。
AI和HPC优化拥塞控制
网络拥塞可以发生在以下三个地方:
- 从发送方到第一个交换机的出站链路
- 第一个交换机和最后一个交换机之间的链路
- 从最后一个交换机到接收方的最后链路
对于 AI 和 HPC 来说,发送方的出站链路上的拥塞主要可以通过发送主机上的调度算法进行控制,因为主机可以看到所有出站流量。上文中提到的多路径数据包喷洒通过均匀分配所有路径上的负载,最小化了第一个和最后一个交换机之间的热点hotspots和拥塞。拥塞的最后一种形式——“Incast”——发生在多个发送者同时向同一目标发送流量时,即最后一条到接收方的链路上;这可能是上述“All-to-All”通信的一部分。
近年来,许多解决拥塞的提案已经被提出(例如,DCQCN、DCTCP、SWIFT、Timely)。然而,目前的算法没有一个能够完全满足为 AI 优化的传输协议的所有需求,这些需求包括:
- 在高带宽、低往返时间的网络中,当存在无拥塞路径时,快速达到线速wire rate,而不降低已有流量的性能
- 管理fabric和到达目的地的最后一跳上的路径拥塞
- 通过公平共享最后的链路来控制 incast,而不会导致高昂的数据包丢失、重传或增加尾部延迟
- 不需要随着流量组合的变化、计算节点的发展、链路速度的提高和网络硬件的发展而进行调优和配置
一个为未来 AI 工作负载设计的拥塞控制算法必须既支持这些要求,又能与多路径packet spraying配合使用。
端到端遥测Telemetry
这些优化的拥塞控制算法得益于新兴的端到端遥测方案。来自网络的拥塞信息可以向参与者提供拥塞的位置和原因。缩短拥塞信号路径并向端点提供更多信息,能够实现更快速的拥塞控制。无论是发送方还是接收方安排传输,现代交换机都可以通过快速传递准确的拥塞信息给调度器或起搏器pacer,促进响应式的拥塞控制,从而提高拥塞控制算法的响应速度和准确性。结果是减少了拥塞、降低了丢包率和缩短了队列长度——所有这些都为改善尾部延迟服务。
RDMA的成功及其局限性——一个案例分析
随着 AI 模型在规模、通信模式的多样性和计算方法的多样性方面不断增加,是时候重新审视大多数 AI 网络核心所使用的传输协议和 API 了。远程直接内存访问(RDMA)是一种非常成功的技术,允许 CPU、GPU、TPU 或其他加速器将数据直接从发送方的内存传输到接收方的内存。这种零拷贝方法带来了低延迟,并避免了操作系统的开销。因此,支持 RDMA 的网络技术是如今 AI 训练任务的基本组成部分。
为了使 IBTA(InfiniBand™ Trade Association)的 RDMA 传输协议能够在 IP 和以太网网络上运行,创建了 RoCE(RDMA over Converged Ethernet)。这种底层协议通过 Verbs API 表达,最初在上世纪末设想,并由 IBTA 在多年前首次标准化。对于现代高度要求的 AI 网络流量来说,这种协议现在已经显得过时了,见 [Data Center Ethernet and Remote Direct Memory Access: Issues at Hyperscale, Hoefler et al, in Computer, July 2023]。问题不在于操作系统旁路和零拷贝的通用 RDMA 原则,也不在于使用以太网网络,而是在于 RoCE 和 InfiniBand 共同使用的当前传输协议服务。
截至撰写本文时,单个加速器可能集成了多达数太比特的网络 I/O,而 PCIe 网卡即将提供 800Gbps 及以上的速度——这是 RDMA 最初设想时的速度的数个数量级。未来更高要求和更高速的网络将进一步挑战现状,并需要新的解决方案。
RoCE(远程直接内存访问通过以太网)通常与DCQCN(数据中心拥塞控制)算法结合使用,以避免在网络中过度使用链路,同时尝试快速提升其传输速率。然而,DCQCN需要精心的手动调优来优化性能。DCQCN的调优对网络底层的延迟、速度和缓冲能力以及在其上通信的工作负载特性非常敏感。TCP/IP协议之所以能成功地推动互联网运行,其中一个关键因素是TCP不需要针对特定网络进行调优,并且它“即插即用”。未来的AI网络需要一个传输协议,就像TCP一样,能够开箱即用,适用于任何数据中心网络。
众所周知,虽然InfiniBand和RoCE使用的RDMA(远程直接内存存取)传输可以处理丢失的包,但处理效率极低。一旦包丢失或顺序错误,会导致“回退N”(Go-Back-N)恢复机制,已经接收的包会被重新发送,从而导致较低的实际吞吐量和效率低下。所以经常在“无损”网络上运行RDMA,以避免触发这种行为。如果配置了优先流控(PFC)在发生拥塞时从接收方到发送方逐跳生成后压,则以太网可以实现无损。因此,不是丢弃数据包,而是在前一跳延迟其传输。然而,当这种后压在网络中传播时,可能会产生“拥塞树”和队列头部阻塞;这两者在大规模部署时都可能引起严重的性能下降。
尽管大型无损RoCE网络可以并且已经被成功部署,但它们需要精心的调优、操作和监控,以避免触发上述效应,保持良好性能。这种级别的投资和专业知识并非所有网络运营商都能具备,这导致了较高的总拥有成本(TCO)。因此需要一种不依赖于无损结构的传输协议。
此外,RoCE以及InfiniBand使用的是为较小规模设计的API(称为Verbs),无论在带宽还是对等点数量方面,都无法满足现代AI和高性能计算(HPC)任务及未来集成网络的加速器的需求。RC(可靠连接)传输模式并不适合高速硬件卸载的高效实现,这要求减少快速路径状态。虽然有专有尝试来解决RC的限制,但这些尝试并未被广泛接受,也未能完全解决其固有的进程间(P2P)扩展性问题。虽然RC的实施在适度规模下可行,但它们增加了端点的成本和复杂性,这对未来规模的AI工作负载来说是一个负担;需要新的解决方案。
最后,AI应用传输大量数据。传统的RoCE将这些数据作为少数几个大流量流传输,必须谨慎地进行负载均衡,以防止任何单一链路过载,如上所述。AI工作负载往往直到所有流量成功传输后才能继续进行,即使只有一个过载的链接也会抑制整个计算过程。改进的负载均衡技术对于提高AI性能至关重要。
超以太网传输(UET):下一代AI和HPC网络的协议
超高速以太网联盟(Ultra Ethernet Consortium,UEC)的成员们认为现在是时候从头开始,用超高速以太网传输(Ultra Ethernet Transport)取代老旧的RoCE协议,这是一种现代传输协议,旨在提供AI和高性能计算(HPC)应用所需的性能,同时保留以太网/IP生态系统的优势。
从TCP/IP和以太网的成功中汲取的两个基本教训是,传输协议应该提供丢包恢复功能,无损Fabirc在不引发队列头部阻塞和拥塞扩散的情况下有巨大挑战。遵循这些原则,UEC传输建立在分布式路由算法和端侧的可靠性及拥塞控制这一经验证明的路径之上。UEC传输协议超越现状,提供了以下几点创新:
- 一种从一开始就设计用于IP和以太网上运行的开放式协议规范;
- 多路径、分散式的数据包传输方式,充分利用AI网络而不造成拥塞或队列头部阻塞,消除了对集中式负载均衡算法和路由控制器的需求;
- Incast管理机制,有效控制到达目的地主机的最终链路上的汇聚,最小化丢包率;
- 高效的速率控制算法,允许传输快速达到线路速率,同时不会对竞争流造成性能损失;
- 提供乱序数据包交付的API,可选地确保消息的有序完成,最大化网络和应用程序中的并发性,同时最小化消息延迟;
- 支持未来网络规模,可达1,000,000个端点;
- 在无需针对特定网络和工作负载调整拥塞算法参数的情况下,实现性能和网络利用率最优化;
- 设计目标是在商用硬件上,在800G、1.6T乃至更高速度的未来以太网中达到线路速率性能。
UEC规范将超越传输层,定义标准语义层,改善低延迟传输机制,并提供一致的AI和HPC API,支持多厂商标准实施这些API在UEC传输协议之上的能力。这将确保跨不同供应商的兼容性和互操作性,为构建下一代高性能网络奠定基础。
AI和HPC的安全性
AI训练和推理通常发生在托管网络中,这里需要作业隔离。此外,AI模型正变得越来越敏感,成为宝贵的企业资产。鉴于这一点,UEC传输协议从设计之初就融入了网络安全概念,能够加密并验证AI训练或推理作业中计算端点间发送的所有网络流量。UEC传输协议借鉴了现代加密方法(如IPSec和PSP)中用于高效会话管理、认证和保密的核心技术。
随着作业规模的扩大,必须在不使主机和网络接口的会话状态急剧膨胀的前提下支持加密。为此,UET(UEC传输)引入了新的密钥管理机制,允许成千上万个参与同一作业的计算节点之间高效共享密钥。它被设计成能在AI训练和推理所要求的高速和大规模下高效实现。
托管在大型以太网网络上的高性能计算(HPC)作业具有类似的特征,同样需要相当的安全机制。这意味着UEC传输不仅能满足AI领域的需求,也能适应HPC环境中对于安全性和性能的严格要求,确保数据在大规模网络中的传输既高效又安全。
在UEC - HPC及其他领域的进一步努力
除了为AI提供更佳的网络支持,UEC正在开发技术以满足未来高性能计算(HPC)的网络需求。展望未来,AI与HPC的工作负载和网络需求预计将会越来越多地重叠。因此,我们预期UEC传输协议将能满足AI与HPC作业的网络需求。
考虑到带宽和延迟的不同敏感性,UEC规范将提供两种配置文件:一种针对AI进行了优化,另一种则针对HPC进行了优化。
随着速度和规模的提升,仅依赖于端到端重试的传统做法对延迟敏感型工作负载而言日益成为负担。在HPC的扩展网络中,例如在百亿亿次级系统中,链路层的本地错误处理已被证明是有价值的。UEC规范为以太网提供了这种能力,使得它能够更好地服务于大规模的网络环境,同时兼顾效率和延迟敏感型应用的需求。这标志着UEC在设计时充分考虑了未来网络技术的发展趋势,力求在保证高性能的同时,也能够灵活适应不同场景下的具体需求。
总结
AI系统通常部署在网络拓扑中,该拓扑包含从发送方到接收方的多条路径。关键在于要能够同时并高效地利用这条高昂的高速公路的所有车道。为了实现这一点,需要可扩展且高效的远程内存访问,这将通过数据包spraying、灵活的排序方式和优化的拥塞控制算法来实现。此外,全新的端到端遥测技术、可扩展的安全机制,以及针对AI优化的API将是必不可少的,它们将为那些旨在满足明日高强度AI计算独特通信需求的网络提供支持。
UEC协议同样设计用于支持现代高性能计算(HPC)工作负载,利用上述相同的传输机制,同时保持对广泛使用的API如MPI(Message Passing Interface,消息传递接口)和PGAS(Partitioned Global Address Space,分区全局地址空间)的支持。这确保了UEC不仅能适应AI领域的挑战,还能无缝集成到现有的HPC生态中,为科研和工业界提供统一的高性能网络解决方案。