找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

1757

积分

0

好友

257

主题
发表于 6 小时前 | 查看: 1| 回复: 0

1. RDMA标准中的BECN机制

关于在RDMA协议中,ACK携带ECN标记能否作为拥塞信号反馈的疑问,我们可以从RDMA协议标准本身进行探讨。

在InfiniBand Architecture Release 1.7第一卷的1867页中,对FECN和BECN有如下描述:

图片

事实上,FECN和BECN是几十年前Frame-Relay和ATM网络中就已广泛应用的技术。关键在于,在RoCE的现有实现中,通常并未支持BECN机制,而InfiniBand协议本身是支持的:

图片

值得注意的是,在字节跳动的veRoCE提案标准中,已经讨论并计划实现对BECN的支持:

图片

以上便是RDMA协议标准中的相关定义及工业界的一些实现方向。

2. RoCE与iWARP的技术路线之争

历史上的竞争因素可能影响了部分观点。例如,Mellanox在2017年曾发布《RoCE vs. iWARP Competitive Analysis》报告。

必须承认,在以高性能计算(HPC)为主导的时代,低延迟带来的收益是巨大的,更高的消息速率对许多超算应用至关重要,这也是Mellanox早期成功的关键。因此,在HPC场景下可以做一个强假设:网络丢包率极低,采用基于PFC+DCQCN的无损网络方案即可满足需求。

早期网卡功能相对简单,Mellanox采用ASIC架构来降低延迟、提高包处理速率是正确的技术路径。但随着需要支持的功能日益复杂,纯粹的ASIC道路变得难以持续。这段历史在相关技术文章中已有详细阐述。

图片

演进到CX8甚至BF4网卡时,会出现一个值得探讨的架构:它既将部分交换机逻辑(如Spectrum-X)集成到网卡,又包含了PSA处理器和DPA处理器。

图片图片图片

最终在BF4上甚至还增加了一颗64核的Grace处理器。

图片

一个网卡集成了三套不同的处理器架构,其设计目标与复杂度值得深思。

另一方面,很少有人意识到,RoCE与iWARP的许多性能差异本质上并非协议本身所致,而是具体芯片微架构实现不同带来的。简而言之,iWARP同样可以实现与RoCE相近的延迟。甚至在特定的高频交易场景下,经过深度优化的TCP协议实现可以做到比常规RoCE更低的延迟。

那么,为何业界仍在推动RoCE的改造?RoCE存在哪些不完善之处?UEC(Universal Ethernet Consortium)的总结颇具参考价值:

图片

面对AI负载越来越高的吞吐需求,传统的RoCE虽然可以通过物理拓扑优化(如多轨道设计)和集群亲和性调度(将通信密集的节点调度到同一台TOR交换机下)来规避部分网络拥塞,甚至可以通过仅在网卡与交换机之间启用PFC来阻断PFC逐级传播导致的网络死锁风险。

但根本性的问题在于:这种多轨道部署对于MoE(混合专家)等需要大量All-to-All通信的模型并不友好,同时在故障处理方面也存在挑战。

为了应对更大吞吐、更大规模的网络组网,RoCE的现代化改造需要支持多路径转发、乱序报文提交(Out-of-Order delivery)。而基于无损网络的Go-back-N重传机制效率较低;在拥塞控制方面,DCQCN虽然参数简单,但调优复杂度很高。最后是组网规模问题,在超大规模(十万卡乃至百万卡)集群,甚至需要跨多个数据中心楼栋的Scale Across场景下,传统的IB和RoCE都无法良好运行。

从处理器体系结构的视角来看,传统RoCE类似于一个单发射、顺序执行(In-Order)的处理器架构。要提高吞吐量,就需要转向乱序执行、多发射(Out-of-Order)的架构,即UEC提出的“乱序交付,顺序完成”。在此基础上实现多路径转发以最大化吞吐。而要实现这一点,就绕不开iWARP早已实现的DDP(直接数据放置)技术。

针对丢包问题,需要引入类似TCP的SACK(选择性确认)机制;针对拥塞控制的缺陷,需要改为滑动窗口机制。这对于长期以来推崇RoCE、贬低iWARP的阵营而言,无疑是一个尴尬的境地。最终的结果仿佛是,在UDP上不断做加法,“加着加着就成了自己原来最讨厌的样子”。

iWARP在2002年(即20多年前)就已实现的DDP是无法绕开的技术基石。D.K. Panda教授在2007年的论文《Analyzing the impact of supporting out-of-order communication on in-order performance with iWARP》也详细探讨过相关技术。

早期Mellanox曾试图将类似技术定义为Direct Packet Placement(DPP)以示区别:

图片

但后来发现DPP方案存在局限性,例如无法支持Send/Read语义。根本原因在于,必须采用类似iWARP DDP的方式,使用消息编号和消息偏移量来进行定位。因此,后期Mellanox也改称DDP。

这就是技术演进背后的实质。

关于有损(Lossy)与无损(Lossless)网络的争议,可以从第一性原理思考:以太网本质上是一种尽力而为的传输模式。历史上,正是这种简洁性,配合终端可靠传输协议(如TCP),使其战胜了许多对手。试图将以太网改造为支持超大规模的无损网络,挑战巨大。

对于超大规模组网(例如几十万卡、跨越多个楼栋甚至数十公里供电距离的集群),基于DCQCN的拥塞控制反馈路径过长,基本已经失效。这样的链路上必然存在带宽收敛比,若将所有流量都放入高优先级队列以保证不丢包,会导致其他流量受损,可能引发生产事故。具体分析可参考相关技术文章。将eRDMA流量放入最低优先级队列,在忍受较高丢包率的情况下仍能保证极高的吞吐,这正是现代RDMA需要追求的目标:在5%丢包率下仍能保持接近90%的有效吞吐率。这也是CIPU eRDMA和Google等技术方案所强调的。

因此,整体的技术决策路径可以概括为下图:

图片

我们的目标是构建以GPU为数据中心一等公民的架构。这意味着GPU除了需要卡间高速集合通信外,还需要通过GDS接入存储,并且在云环境下还需满足多租户混合部署的要求。

最终的实质结果是:RoCE的现代化改造不可避免地需要借鉴iWARP的DDP技术;而要支持有损网络的高效传输,则需借鉴TCP中大量的成熟机制,如SACK、快速重传、滑动窗口等。同样,需要区分TCP协议本身与Linux内核中TCP的具体实现,不能因某些实现不佳而否定协议。

正如文中所言,协议本身并非最关键的因素,更重要的是底层硬件芯片架构和算法设计。遗憾的是,国内部分参与协议定义的技术人员,真正参与过芯片设计、对计算机体系结构特别是微处理器架构有深刻理解的并不多。

即便是Mellanox,也面临类似问题。他们长期专注于ASIC架构,直到被英伟达收购前夕才通过收购EzChip和Tilera获得相关处理器技术。但这两家公司在处理RDMA这类有状态协议方面经验有限,对微处理器架构的理解也未必足够深入。

这导致了BF3上DPA+ARM的架构存在诸多问题,进而催生了BF4上略显复杂的PSA+DSA+Grace多核异构架构。

参考资料

[1] RoCE vs. iWARP Competitive Analysis: https://network.nvidia.com/pdf/whitepapers/WP_RoCE_vs_iWARP.pdf

[2] Analyzing the impact of supporting out-of-order communication on in-order performance with iWARP: https://dl.acm.org/doi/10.1145/1362622.1362670




上一篇:快手的天塌了....这哪是 P0 级事故啊?这等级仅次于公司大楼原地爆炸!
下一篇:EndNote 2025.2版本更新:优化科研写作文献管理稳定性与macOS兼容性
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2025-12-24 19:22 , Processed in 0.330341 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 云栈社区.

快速回复 返回顶部 返回列表