[IT/数码] EthLink:字节跳动自研的高性能 Scale-up 网络协议

[复制链接]
查看11 | 回复0 | 昨天 21:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区

您需要 登录 才可以下载或查看,没有账号?立即注册

×

EthLink(Ethernet Link)是字节跳动自主研发的 Scale-up 网络协议,旨在为 GPU 集群搭建高速互联网络通道。该协议不仅能承载 GPU 发起的 Load/Store 语义,还支持 RDMA 语义。如图所示,EthLink 的网络覆盖范围广泛,涵盖了 GPU 服务器内部的互联,以及跨服务器间的 GPU 互联。
21214433ae67d5.png
在 Scale-up 场景中,网络带宽是最为核心的需求。PCIe 和以太网在这方面有着各自的特点:
PCIe:其优势在于天然支持内存语义,且具备低延迟特性。然而,PCIe 是围绕 CPU 构建的互联技术,迭代速度相对缓慢,在带宽方面较以太网落后 2 - 3 代。
以太网:持续遵循摩尔定律,每 18 个月单芯片带宽便能实现翻倍增长;同时,以太网拥有成熟开放的生态体系,便于大规模部署,且成本较低。
从行业发展趋势来看,众多标准纷纷选择以太网作为基础。例如,UALink 的最新标准已将物理层从 PCIe 切换为以太网;ETH - X 同样基于以太网进行构建。
鉴于以太网的诸多优势,EthLink 选择基于以太网构建 Scale-up 互联架构,充分共享以太网在生态和成本方面的红利。同时,针对 Scale-up 场景的特殊需求,EthLink 对标准以太网进行了深度优化,在支持 Load/Store 语义和 RDMA 语义的基础上,还实现了低延迟传输、提升报文载荷效率以及保障链路可靠传输等特性,为 GPU 集群的高效运行提供坚实支撑 。
   EthLink 协议栈
EthLink 协议栈的系统架构如图所示,GPU 侧的协议栈可划分为两大核心模块:Scale-Up 语义层与 Scale-up 网络层。其中,Scale-up 语义层又细分为上层 GPU 操作与 Scale-up 事务层。
212145ad61c9bc.png
上层 GPU 操作负责处理由 GPU 发起的 Scale-up 网络 IO 操作,全面支持 Load/Store、RDMA 等多种语义;Scale-up 事务层则将这些 GPU 操作,进一步转化为 Memory Read、Memory Write 等本层定义的基础操作类型,类似于 PCIe 的对应操作,为数据传输奠定标准化基础。基于此,EthLink 的上层应用能够依据实际应用场景,灵活选择适配的传输语义,提升协议的通用性与灵活性。
在网络传输层面,Scale-up 网络采用 LLR(Link Layer Retry)链路层重试机制与 CBFC(Credit-Based Flow Control)基于信用的流控技术,构建起可靠的无损网络环境。这一设计可高效重传 FEC(前向纠错码)无法纠正的错误报文,确保数据传输的完整性与准确性。此外,EthLink 对链路层报文头进行深度优化,通过精简报文头结构,有效缩短报文头长度,降低传输开销,提升数据传输效率。
   网络拓扑
EthLink 的网络拓扑如下图所示,每个 GPU 服务器部署多个 EthLink 协议栈,每个 EthLink 协议栈可以支持 1~4 个以太网接口,GPU 服务器之间通过低时延以太网交换机互联,同一个 Scale-up 网络域最大支持 1024 个 GPU 节点。
212145b33bfa51.png
   端口负载均衡
GPU 服务器通常会在部署多个 EthLink 协议栈来大幅度提升 GPU 服务器的 Scale-up 网络带宽。当两个 GPU 之间有数据传输需求时,如下图所示,GPU 之间可以通过使用 Multi-Path 来提升实现负载均衡,从而进一步提升网络带宽的利用率。EthLink 使用通过 Multi-Path 实现负载均衡后,有可能会引入乱序。由于乱序涉及到多个协议栈的报文,无法在 EthLink 上实现保序,需要通过 EthLink 的上层应用处理乱序问题。
212145ba987877.png
   报文封装
如上所述,EthLink 的事务层语义可以承载 GPU 的Load/Store和/或RDMA操作。本小节中为了体现上层 GPU 操作的不同,分别用 EthLink-LS 和 EthLink-RDMA 来体现载荷中的具体内容。EthLink 的报文格式如下图所示,其中 RH (Reliability Header)用于保证端到端可靠性,是对 LLR 提供的链路层可靠性的增强。
2121452a0b9a62.png
同时,为了解决传统 IP 报文有效载荷率低的问题,EthLink 也设计了优化的报文头部,即 OEFH (Optimized EthLink Forwarding Header),如下图所示。OEFH 使用更小的报文 header 来提升报文有效负载率。同时与现有 L2 层报文头长度对齐,能够兼容现有的以太网报文。
212145d64e04d8.png
OEFH 的格式如下图所示,包含 source 和 destination GPU ID,交换机根据 GPU ID 来转发报文。
21214672ab5577.png
OEFH 能够取代标准以太网和 TCP/IP 协议栈中的 ETH+IP+UDP 报文头,显著缩短了报文头长度,降低了报文开销。
212146d033f5af.png
   链路层优化
Scale-up 网络对延迟非常敏感,而标准 FEC(前向纠错)带来的编解码延时在链路层延迟中占比很高。为此,可选择 RS-272 这类低延迟 FEC 方案。RS-272 采用优化算法,在保证纠错能力的同时,将编解码延时大幅降低,更契合 Scale-up 网络需求。
当 Scale-up 从机内短距离点对点互联拓展到机外,甚至跨机柜互联,且经过交换机转发时,网络的丢包概率显著升高,而检测丢包、丢包重传给协议层带来了很多复杂度,同时端到端的重传又带来了更多的延迟。 所以 EthLink 支持链路层的可靠传输。丢包主要分 2 个原因,一是链路上的丢包,比如 CRC 错误,这一类由 LLR 来解决,另一种是交换机内部丢包,由 CBFC 来解决。
链路层重试(LLR):链路发送端会先缓存报文,一旦检测到报文丢包,就会立即发起重传,直至接收端确认成功收到该报文。这种链路层的重传机制,能够有效降低对 FEC(前向纠错)的要求,使得像 RS - 272 这类低延迟 FEC 的应用成为现实。而且,该机制还降低了对链路质量的依赖。若网络中存在光互联,还可引入 LPO(低功耗光模块),进一步降低光互联环节的延迟。
基于信用的流控机制 (CBFC):对于交换机内部缓冲区的丢包问题,通常可采用 PFC(优先级流控)机制,也可以选择 CBFC。CBFC 具有更精细的控制能力,能够与 VC(虚拟通道)绑定使用。同时,由于 CBFC 基于信用机制,能够精准掌握对端缓冲区的使用情况,从而提供更为高效的低延迟解决方案。
   交换机链路故障通知机制
在 Scale-up 架构中,为追求更低延迟,通常采用单层交换机拓扑(如图所示)。这种架构下,当链路发生故障时,由于交换机缺乏路径冗余能力,无法自主切换路径以避免丢包,只能依赖 GPU 侧的多路径(multi-path)机制进行路径切换。然而,源 GPU 无法直接感知跨交换机的远端链路状态,导致丢包问题可能持续存在。
21214663add9c1.png
为解决这一问题,需在交换机与 GPU 间建立高效的状态反馈机制。当交换机端口状态发生变化(如 port down)时,应通过交换机事件通知(Switch Event Notification)机制,迅速将端口事件(port event)传递给源 GPU。这种实时的状态反馈可触发 GPU 侧的路径切换决策,从而实现快速重路由,有效减少丢包持续时间,提升系统可靠性。
字节跳动作为目前“最有实力”的互联网公司,发布的 EthLink 方案及白皮书,将为 AI 行业的发展注入新的活力。随着相关技术的不断完善和生态系统的逐步建立,AI 应用的性能和效率将得到进一步提升,为通用人工智能的实现奠定更加坚实的基础。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

hdy

320

主题

321

回帖

767

积分

二级逆天

积分
767