Introducing UALink 200G 1.0 Specification
作者/机构: Nathan Kalyanasundharam AMD Corporate Fellow and UALink Consortium Technical Task Force Co-Chair
A1 主要贡献
本文介绍了Ultra Accelerator Link™ (UALink™) 200G 1.0 规范,这是一个为下一代人工智能工作负载设计的全新行业标准,旨在实现扩展互连(scale-up interconnects)。
核心问题:
随着人工智能模型的快速增长,对计算、内存和互连性能的需求也越来越高。在由数百个加速器组成的 Pod(计算集群单元)中分配 AI 模型,扩展解决方案至关重要。然而,提供可靠扩展解决方案的成本和复杂性已成为整个行业的沉重负担。业界越来越需要为训练和推理工作负载建立基于标准的扩展网络解决方案。
研究目标与使命:
UALink 联盟的使命是建立一个开放标准,为扩展连接提供一个可扩展、高性能、高弹性和成本效益高的网络解决方案。UALink 旨在通过多节点系统和多平面交换生态系统,实现与计算、内存带宽和容量增长相匹配的互连性能可扩展性。
创新点与特性:
UALink 1.0 规范定义了用于加速器之间低延迟通信的协议和接口,其设计旨在提供针对面积、延迟和功耗优化的扩展解决方案,具体特性如下:
- 提升链路效率:通过优化双向内存访问,提供最大的数据带宽。
- 降低总拥有成本(TCO):通过利用现有的以太网基础设施,包括线缆、连接器、中继器和管理软件,来降低成本。
- 简化软件复杂性:采用内存语义,支持直接读取、写入和原子事务,并对主机连接的本地及远程加速器内存保持相同的排序模型。
A2 方法细节
概述
UALink 1.0 规范的基本速率与配置。UALink 1.0 规范支持每通道最高 200 GT/s 的数据速率。由于以太网物理层(Layer 1)需要为前向纠错码(FEC)和额外的编码留出带宽,因此信令速率更高,为 212.5 GT/s。UALink 通道可以配置为不同的组合:单通道链路(x1 Link)、双通道链路(x2 Link)或四通道链路(x4 Link)。由四个通道组成一个工作站(Station),在发送(TX)和接收(RX)方向上各提供最高 800 Gbps 的带宽。系统可以根据 AI 应用的需求,扩展加速器的数量和分配给每个加速器的带宽。
UALink 系统架构与扩展能力。图 3 描绘了一个包含多个节点的系统,每个节点含一个主机处理器和四个加速器。整个系统共有 'M' 个加速器,每个加速器有 'N' 个对称端口以均匀分配流量。每个系统节点由一个操作系统镜像管理。UALink 交换机(ULS)最多可连接 1024 个加速器或端点。每个加速器被分配一个唯一的 10 位路由标识符。这些相互连接的加速器共同构成一个扩展 Pod(scale-up Pod)。每个 UALink 交换机端口连接到一个不同的加速器,交换机端口的数量与连接的加速器数量相匹配。
虚拟 Pod 的概念与实现。一个 Pod 可以被划分为多个虚拟 Pod。虚拟 Pod 是 Pod 中一个或多个加速器的集合,这些加速器可以在集合内部相互通信,但不能与 Pod 中的任何其他加速器通信。Pod 的划分是通过将每个交换机上的端口划分为不重叠的子集来实现的。一个子集内的端口可以相互通信,但不能与子集外的任何端口通信。交换机提供了配置分区的机制。无论虚拟 Pod 如何划分,Pod 中的所有加速器都拥有唯一的加速器 ID。
链路协议栈
UALink 协议栈的四层结构。UALink 协议栈如图 4 所示,它包含四个层次:协议层(Protocol Layer)、事务层(Transaction Layer)、数据链路层(Data Link Layer)和物理层(Physical Layer)。
协议栈内部的消息流与接口。加速器之间的消息通过 UALink 传输。UALink 是一种对称协议,在发送和接收路径上支持相同的消息集和通道。这些消息会经过 UALink 协议栈的多个功能层。UALink 协议栈由一个独立的 UPLI(UALink 协议层接口)发起方(Originator)和一个独立的 UPLI 完成方(Completer)以及实现 UALink 协议层的逻辑单元组成。完成方和发起方连接到事务层(TL)。事务层将协议通道转换为 TL Flit(流控制单元),并传递给数据链路层(DL)。同样,事务层从数据链路层接收 TL Flit,并将其解包为 UPLI 协议通道,由完成方和发起方接收。完成方接口接收来自对等加速器的请求并返回响应;发起方接口则发起针对远程加速器的请求并接收返回的响应。
数据链路层与物理层的交互。UALink 数据链路层接收多个 TL Flit,为其添加 CRC(循环冗余校验)保护和头部,形成一个 DL Flit,然后将该 DL Flit 传递给 UALink 物理层(PL)。同样,数据链路层可以从物理层接收 DL Flit,剥离其 CRC 和头部,形成 TL Flit 并传递给事务层。UALink 物理层接收 DL Flit,生成一个带有 FEC 编码的码字,该码字被序列化并通过串行链路传输。物理层也可以从交换机或加速器上的链路伙伴接收带有 FEC 的序列化码字,执行 FEC 解码并将其转换为 DL Flit。
物理层 (PL)
基于以太网 PHY 的设计与速率。UALink PHY 基于 802.3 以太网 PHY。UALink 定义了单通道、双通道或四通道的串行链路,支持 212.5G 的串行速率(对应 200GBASE-KR1/CR1, 400GBASE-KR2/CR2, 800GBASE-KR4/CR4),同时也提供一个较低的 106.25G 串行速率选项(对应 100GBASE-KR1/CR1, 200GBASE-KR2/CR2, 400GBASE-KR4/CR4)。
与 IEEE 802.3 标准的差异。图 5 中的星号(*)表示与 IEEE 802.3 标准的修改之处。PCS(物理编码子层)/PMA(物理介质附加接口)在额外的码字交织模式下运行,通过减少交织深度来获得更好的 FEC 延迟,但代价是降低了突发错误纠正能力。PMD(物理介质相关层)与 802.3 标准相比未作修改。自动协商和链路训练(AN/LT)也与 802.3 标准保持一致。64B/66B 编码是 802.3 所支持功能的一个子集。
DL Flit 与码字的同步机制。PCS 和 RS(协调子层 - PCS 和 DL 之间的接口)需要额外的行为来将 DL Flit 与码字同步,从而确保来自数据链路层的 640 字节 Flit 能够精确地装入一个 RS (544, 514) 码字中。这将优化延迟并最小化重传 Flit。数据链路层为每个 640 字节的 DL Flit 生成一个 CRC。
数据链路层 (DL)
数据链路层的功能与服务。数据链路层位于事务层和物理层之间。其主要功能是将来自事务层的 64 字节 Flit 打包成 640 字节的 Flit 以供物理层使用。数据链路层还提供了一种在链路伙伴之间传递消息的服务,该服务在数据链路层发起和终止。此消息服务用于通告事务层速率、查询连接的链路伙伴的设备和端口 ID 等功能。该消息服务还提供了链路伙伴之间类似 UART(通用异步收发器)的通信方式,主要用于固件(F/W)间的通信。链路级别的重传是基于 640 字节的 Flit 进行的。每个 640 字节的 Flit 都会计算、检查并包含一个 32 位的 CRC。
事务层 (TL)
事务层的核心职责。事务层(TL)负责将来自两个 UPLI 接口(发起方/完成方)的入站通道的协议消息转换为出站(TX)的 TL Flit。同时,事务层也负责将从入站(RX)数据链路层接收到的 TL Flit 转换回 UPLI 接口上的 UPLI 消息。
事务层接口与 Flit 格式。图 7 示意性地展示了两个 UPLI 接口的 TL 接口及其在各个通道之间的连接关系,并说明了与发送(Tx)和接收(Rx)TL Flit 通道的关系。由于接口的对称性,接收和发送 Flit 的格式是完全相同的。每个 64 字节的发送 Flit 和接收 Flit 通道都编码了 UPLI 请求通道、发起方数据通道、读响应/数据通道以及写响应通道的信息。
地址压缩与协议效率。事务层支持一个流式地址缓存(streaming address cache)来压缩地址。这一机制使得事务层能够实现非常高的双向协议效率,请求和完成可以在发送(TX)和接收(RX)方向上同时传输。
安全性
UALinkSec 的设计目标与应用场景。UALink 的安全特性,称为 UALinkSec,旨在保护 UALink 网络和交换机上的流量免受物理攻击者的侵害;攻击者可能在攻击时在场,也可能已经放置了设备(例如,中间层)来窃听或篡改 UALink 流量。此外,在支持机密计算(Confidential Computing, CC)的平台中,UALinkSec 能够保护 UALink 网络和交换机上的租户数据,使其免受基础设施提供商以及同一 UALink Pod 上其他租户的影响。机密计算意味着平台上存在一个可信执行环境(Trusted Execution Environment, TEE),例如 Intel TDX、AMD SEV 和 ARM CCA。由租户控制的 TEE 负责 UALinkSec 的配置。启用后,UALinkSec 提供数据机密性和可选的数据完整性(包括重放保护)。
UALinkSec 的保护范围。UALinkSec 支持对所有 UPLI 协议通道进行加密和认证,包括请求、读响应和写响应。
可管理性
UALink Pod 的组成与管理。一个 UALink Pod 由一个或多个通过 UALink 网络连接的 UALink 加速器组成,并由一个 UALink Pod 控制器进行管理。每个加速器都托管在一个 UALink 系统节点上,加速器的流量可以通过 UALink 交换机在 UALink 网络中路由。多个 UALink Pod 可以连接起来创建更大的加速器集群;但是,UALink 规范并未定义 Pod 间的通信和控制。
机架规模系统的管理架构。图 10 展示了一个可能的 UALink Pod 设置,包括交换机和服务器平台。图中显示了一个系统节点,包含四个 UALink 加速器(每个有三个端口)、两个主机 CPU、一个网卡和一个 BMC。UALink 交换机负责在加速器之间路由流量,并由名为交换机管理代理(Switch Management Agent)的软件/固件进行管理。物理交换机由硬件实现,但可以为了路由和创建虚拟 Pod 的目的而划分为多个交换机。通常,物理交换机托管在交换机平台上,该平台上的处理器(如 x86 CPU 或基板管理控制器)运行交换机管理代理。该处理器通过高速接口(如 PCIe®)连接到每个物理交换机,并连接到一个网络接口,以便与 Pod 控制器通信。
A4 实验环境
本文档为技术规范说明书,未提供具体的实验环境信息,如数据集、模型架构、硬件或软件配置。
A4 实验结果
本文档为技术规范说明书,未包含任何实验或性能测试结果。
A5 结论
UALink 是一种开放的行业标准扩展互连技术,旨在改变数据中心的连接方式。它专为同构加速计算设备之间超高带宽和低延迟的数据交换而设计,是开启计算效率新时代的关键。
UALink 处于人工智能和机器学习领域创新的前沿,为专用加速器互连提供了一条利用无处不在的以太网生态系统的开放生态路径。通过集成 UALink 交换机,具备 UALink 功能的加速器可以扩展其规模,创建超高带宽的多节点加速器 Pod。UALink 还通过支持在多达 1024 个加速器的整个 Pod 范围内进行加载/存储操作,实现了一个简单的软件模型。UALink 联盟开发的技术将产生深远影响,提升未来要求苛刻的 AI 和 HPC 应用的性能、易用性和总拥有成本(TCO)。
💬 评论讨论
欢迎在这里分享您的想法和见解!