RDMA网络趋势
本文深入探讨了RDMA传输协议,重点介绍了ROCEv2协议,这是 数据中心 、HPC和企业网络中领先的RDMA传输协议。
简介
人工智能(AI)的崛起极大地提高了对强大、高效和可扩展的网络传输协议的需求。本文深入探讨了RDMA传输协议,重点介绍了ROCEv2协议,这是数据中心、HPC和企业网络中领先的RDMA传输协议。基于ROCEv2的RDMA(远程直接内存访问)已经在超大规模数据中心的某些部分取代了TCP。RDMA可以在网络中的远程主机之间实现低延迟和高吞吐量的通信。在最近的一次NDSI-23-Talk中,微软强调Azure云的70%的网络流量(主要是存储网络流量)在以太网上运行的ROCEv2 RDMA上,只有很小一部分流量在基于TCP/IP的网络上运行。这一显著转变在甲骨文、阿里巴巴和Meta等其他超大规模云服务提供商中也很明显,它们都广泛利用ROCEv2 RDMA协议。这一趋势表明,随着云端、人工智能/机器学习工作负载的不断增长,行业对于优化网络性能的RDMA技术的使用正在发生更广泛的转变。
RDMA的现状
RDMA通过直接将“内存映射”数据传输到远程内存位置来进行操作,提供了两个关键优势:
- CPU效率:与消耗多个CPU核心的TCP/IP不同,RDMA通过注册内存并将数据传输委托给RDMA网络适配器来释放CPU资源,这对于希望利用这些空闲CPU核心获利的云服务提供商来说是一大福音。
- 低延迟和内存效率:RDMA绕过Linux内核,直接将数据传输到应用程序缓冲区,这种特性称为零拷贝。这消除了发送端和接收端节点的内存复制需求。内核绕过和零拷贝特性最大程度地减小了延迟和抖动。
RoCEv2 RDMA起源于高性能计算(HPC),并包含了IB Transport协议。
RoCEv2和InfiniBand协议栈,来源于附录6,InfiniBand架构规范第1卷。RoCEv2保留了InfiniBand Verbs语义以及它的IB Transport传输,并用UDP/IP替换了InfiniBand网络层,并用以太网的链路和物理层替换了InfiniBand。
因此,ROCEv2 RDMA已成为数据中心后端网络的标准,提供高吞吐量、微秒级低延迟和完全的CPU卸载。
注意:前端网络通常运行TCP/IP或其他协议,如QUIC。RDMA、InfiniBand和其他协议作为后端网络,通常被称为东西流量,占现代数据中心流量的70-80%。
以太网ROCEv2的挑战
InfiniBand架构
InfiniBand被设计为一种无丢包网络,注重服务质量(QoS)和传输层端到端的credit。IB协议栈在HPC和AI/ML网络中运作良好。然而,InfiniBand网络通常比以
太网更昂贵且扩展性较差。
注意:无丢包意味着底层网络被配置为消除由于网络拥塞导致的数据包丢失;由于错误条件,数据包可能会偶尔被损坏或丢失,此时传输协议中包含了一个端到端的传递机制,带有内置的数据包重传逻辑,通常是在硬件中实现的,并且在丢包时会触发以恢复丢失的数据包,而不需要软件堆栈的干预。
ROCEv2架构
ROCEv2数据包格式,来源于附录6.3,InfiniBand架构规范第1卷:
RoCEv2在以太网链路上通过UDP/IP运行。UDP是一种不可靠的数据报服务,以太网并不是设计成无丢包的。由于ROCEv2期望底层网络是无丢包的,以太网部署在将以太网配置为无丢包网络方面面临着几个挑战,如下所述:
- 头阻塞(HOL阻塞):由于优先级流量控制(PFC)。不同流中的数据包可能被拥塞的流量阻塞。在跨多个交换机的大型网络上进行扩展成为一项挑战。
- 拥塞管理:通常由软件以带外的方式处理。现有的技术速度慢且复杂。一些供应商正在借鉴InfiniBand的硬件技术,但这些技术是定制的,不是以太网标准的一部分。
- 吞吐量降低:以太网不是无丢包网络。由于拥塞丢包,可能会导致整个数据包窗口的重传(称为Go-back-to-N),这降低了网络的“好吞吐量”。
尽管存在这些挑战,大规模的ROCEv2网络已经成功部署,但需要仔细的调优和监控。大多数超大规模云服务提供商已经采取了定制的非标准ROCEv2解决方案,并在针对每个特定工作负载进行了RDMA栈的精细调优方面投入了大量资金。
在某些情况下,组织已经采取措施为特定应用程序(如AI/ML或存储)设置单独的基于ROCEv2 RDMA的数据中心,从而增加了运营成本。让我们深入研究三个不同的案例研究,以更细致地了解情况。
微软的经验
微软在超大规模数据中心部署RoCEv2已经超过十年,并发表了具有洞察力的Microsoft-RDMA-Challenges研究论文。这次讨论的主要负载是分离式存储,即基于网络的存储。在这些微软的部署中,面临PFC死锁问题、RDMA传输活锁问题和其他与NIC相关的问题。
微软认为,单纯的协议理论在真实世界的部署中不足够;需要在大规模上进行严格的测试、分阶段的推出和与NIC供应商的合作,以便找到最初设计协议时隐藏的大规模错误。微软开发了自定义的ROCEv2协议扩展,如基于DSCP的PFC,受到一些NIC/交换机供应商的支持。
此外,微软还实施了用于健康跟踪和故障排除的遥测系统,这对于识别这些隐藏复杂性至关重要。
甲骨文的方法
OCI(甲骨文云基础设施)是一个公共云,可以在同一个RDMA网络上运行多个不同的应用程序,例如AI、HPC、数据库和存储。
甲骨文通过多方面的方法解决ROCEv2挑战:
- 限制优先级流量控制(PFC):在三层Clos网络中限制在网络边缘。
- 网络本地亲和性:甲骨文根据网络亲和性将工作负载放置在本地,以保持大多数流量本地化。
- 精细调节的拥塞控制:利用显式拥塞通知(ECN)和DC-QCN,每个针对特定RDMA工作负载进行了精细调节,以平衡延迟和吞吐量。
有关更多见解,请参阅Oracle SuperClusters Blog
Meta的创新
Meta主要专注于ROCEv2 RDMA部署,主要用于AI/ML工作负载,如在Meta @Scale 2023活动视频AI Training & Inference at Meta.中讨论的。主要工作负载包括推荐引擎、内容理解和大型语言模型(LLM)。这些集群从数百个GPU扩展到数万个GPU(用于LLM)。
有趣的是,Meta没有遇到与微软相同的挑战。例如,PFC HOL阻塞不是一个问题,因为其spine交换机具有深的缓冲区。Meta还成功使用了DC-QCN进行拥塞控制,并且没有遇到扩展性问题,这要归功于具有更大缓存的现代NIC。Meta可能由于多个原因没有遇到相同的问题-使用了具有先进功能的新硬件,以及拓扑结构、工作负载和软件策略的差异。
- Meta主要的挑战集中在负载均衡上,通过依赖SDN控制器来编程路由来解决。这些路由在网络事件发生之前不会更新。Meta在多个队列对(QP)之间复用流来增加熵的同时,通过自定义的ECMP哈希方案来增加熵。
- Meta使用PCIe点对点(P2P)DMA技术来提高应用程序性能,通过实现跨GPU的直接数据传输。
- Meta还在spine层收敛了流量,因为AI/ML流量模式不需要完全非阻塞的spine连接。这降低了数据中心的成本。
与其他许多公司一样,Meta正在探索数据包喷洒、基于分离式VOQ的交换机和可以容忍乱序传递的定制传输协议。
一篇有趣的MIT + Meta研究论文Optimized Network Architecture for LLMs提出了一种新的面向LLM的流量模式的网络架构,可以将网络成本降低37% - 75%。该架构为具有高通信需求的GPU定义了一个高带宽(HB)域。在HB中,GPU之间通过任意互连进行连接。在Meta的部署中,跨HB的网络流量是稀疏的,可以消除HB域之间的连接和交换机,从而降低网络成本。
RDMA的未来
超大规模云服务提供商和供应商都已经以定制的方式解决了ROCEv2的问题,但ROCEv2网络仍然需要针对每个工作负载进行定制和精细调优。
1RMA Scaling Framework
需要大规模扩展到数百万个节点和数亿个流的公共云。由于ROCEv2的面向连接的特性,工作队列条目(WQE)通常在硬件中实现,这限制了流的扩展。跨多个租户的安全性和线速加密对RoCEv2提出了额外的挑战。
对于云数据中心而言,一个有希望的替代方案是在1RMA论文中提到的1次远程内存访问(1RMA)方法,该方法提出了一种以软件为中心的新架构方法。
这种软件中心的方法变得更可行是因为带有SOC(System-on-Chip)处理器核心现在可以在DPU/IPU为基础的网络适配器上运行软件。其主要思想是:
- 软件:将一些传统的NIC硬件数据结构,如排队、数据包排序、数据包调节和拥塞控制,转移到软件中。
- 硬件:将NIC硬件集中在主数据路径上,即DMA传输、连续传输控制、延迟测量、身份验证和加密。硬件是无连接的,并为软件提供细粒度的延迟测量和故障通知。
1RMA方法提倡将连接和大部分状态转移到软件中,以实现更好的可扩展性。这简化了硬件并支持公共云所需的大规模扩展,而且重要的是支持灵活性和可扩展性。需要注意的是,采用1RMA方法可能需要从头开始进行重构架构**,涉及新的协议和NIC硬件。
还要注意,1RMA研究集中于云数据中心的需求;AI/ML和HPC网络可能需要不同的权衡。
UEC联盟
UEC联盟提出用基于UDP/IP的新开放协议替代ROCEv2。UEC的重点是AI/ML和HPC网络。
ROCEv2替代协议的关键特性包括:
- 多路径和数据包喷洒
- 灵活的传递顺序和选择性重传
- 响应式拥塞控制机制
- 更大的规模、稳定性和可靠性
可能需要在整个堆栈的所有层面进行更改。有关详细信息,请阅读UEC-Consortium-Whitepaper。一些白皮书的主题与1RMA论文和EDQS论文(由Broadcom收购的Correct Networks编写)
UltraEthernet联盟在Open Compute Global Summit做了技术更新。
未来的开放标准
目前,还没有ROCEv3标准出现在视野中。针对这些挑战的可扩展、通用和开放的解决方案仍然很难找到。
可能AI/ML、HPC和云数据中心工作负载的需求有足够的差异,以至于我们需要多个解决方案。例如,
- 宪章:UltraEthernet联盟仅关注规模化的AI和HPC。
- 工作负载特性:HPC要求超低延迟,而AI/ML训练则优先考虑高吞吐量和低尾延迟。
- 各种拓扑:公共云通常使用2层或3层Clos网络,而AI/HPC网络可能使用dragon-fly、3D-torus或hypercube拓扑。这些拓扑结构在不断发展。
- 不断变化的需求:AI/ML算法不断演进,云数据中心工作负载也在不断演化,这可能导致将来进一步的差异化
- 开放与闭合:云数据中心可以继续使用定制解决方案或在OCP等上合作制定开放标准。
如果出现多个开放解决方案,跨领域的合作可能有助于建立一个统一的基础架构。
结论
尽管有许多定制和独特的方法来解决ROCEv2的挑战,但行业正在积极探索基于开放标准的ROCEv2 RDMA的替代方案。未来的RDMA协议必须发展成为一种对各种工作负载都像TCP一样“即插即用”的解决方案。最后,DPU/IPU技术内置的SOC正在改变我们对网络的理解。它们允许我们重新定义硬件和软件的边界,直接在网络硬件上运行关键软件,使我们的系统具有灵活性和可扩展性。
附录
- Broadcom ROCE介绍
- 介绍Falcon:一种可靠的低延迟硬件传输
- Meta Networking@Scale 2023活动
- Meta公司用于AI集群的Next-Platform以太网
- 甲骨文RDMA博客
- InfiniBand规范,包括ROCEv2的附录17,可以在InfiniBand协会网站上找到。
术语表
- 1RMA:1次远程内存访问。以软件为中心的RDMA架构。
- AI:人工智能-能够学习和执行通常需要智力的任务的软件系统。
- Clos:一种为非阻塞高吞吐量连接设计的网络交换机架构。
- DC-QCN:数据中心量化拥塞通知-用于ROCEv2数据中心网络的端到端拥塞控制协议。
- 分离的VOQ:一种在网络交换机架构中使用的虚拟输出队列技术,与将所有流量保留在单个队列中的传统方法不同,为每个可能的输出位置维护单独的队列。它解决了一种称为头阻塞的常见问题。
- DPU:数据处理单元是一种紧密集成了通用CPU和网络接口硬件的可编程计算机处理器,通常与IPU可以互换使用。
- ECMP:等成本多路径-一种网络路由策略,允许在成本相等的多条路径上转发数据包,基于某些第3层参数。
- ECN:明确拥塞通知-用于减少网络拥塞的网络协议功能。
- 端点:在网络中,端点是参与网络的个体设备。节点可以是计算机、服务器、交换机或任何可以处理、存储或转发数据的设备。
- 流:是从特定源到特定目的地发送的“相关”数据包的序列,表示单向数据流。一个例子是5元组流,包括源IP地址、目标IP地址、源端口、目标端口和传输层协议标识符。流可以根据工作负载上下文使用其他属性。
- 好吞吐量:有效的数据传输速率,不包括协议开销和重传。
- GPU:图形处理单元-专用处理器,用于加速图像和视频的处理。GPU是并行处理机器,因此用于AI/ML训练和推断工作负载。
- HOL阻塞:在网络交换机中的一种现象,由于处理延迟,一个数据包阻塞了属于其他流的后续数据包。
- HPC:高性能计算-将计算能力聚合起来解决复杂问题的实践。
- Incast:一种网络拥塞情况,多个发送方同时向单个接收方传输数据,通常导致数据包丢失。
- IPU:基础设施处理单元是一种紧密集成了通用CPU和网络接口硬件的可编程计算机处理器,通常与DPU可以互换使用。
- LLM:大型语言模型是一种执行各种自然语言处理(NLP)任务的深度学习模型。LLM使用变压器模型,并使用大规模数据集进行训练-因此是大模型。
- NIC:网络接口卡-将计算机连接到网络的硬件组件。
- 节点:在网络中,节点是参与网络的个体设备。节点可以是计算机、服务器、交换机或任何可以处理、存储或转发数据的设备。
- NVLink:NVIDIA的高速互连-一种高带宽、低延迟的内存映射互连。
- OCI:Oracle Cloud Infrastructure-甲骨文的云计算服务。
- 数据包喷洒:一种在网络中将数据包分布到多个路径以优化资源利用和降低延迟的技术
- PFC:优先级流量控制-由IEEE 802.1Qbb标准定义,PFC是一种链路级流量控制机制,用于防止由于拥塞而导致的帧丢失。与传统的流量控制不同,PFC在特定的优先级队列上操作,允许更精细的控制。
- Queue-Pair:或QP包括发送队列和接收队列。发送队列发送请求RDMA操作的出站消息。接收队列接收传入消息或即时数据。
- RDMA:远程直接内存访问-一种在不涉及操作系统的情况下实现两台计算机之间的内存访问的技术。
- ROCEv2:RDMA over Converged Ethernet v2-是RDMA在以太网网络上的扩展。在InfiniBand架构规范的附录17中定义。
- SoC:片上系统-集成了计算机系统的所有组件的集成处理器。
- 尾延迟:在分布的99th百分位延迟中经历的延迟,常用于衡量系统在峰值负载下的性能。
- TCP/IP:传输控制协议/因特网协议是一套用于互联网上的网络设备之间进行连接的通信协议。
- 遥测:用于监控的测量和自动化的收集。
- VOQ:一种在网络交换机架构中使用的技术,不同于将所有流量保留在单个队列中的传统方法,而是为每个可能的输出位置保留单独的队列。它解决了一种称为头阻塞的常见问题。
- WQE:工作队列条目-用于管理RDMA技术中的工作请求的数据结构。