背景
目标
为AI和HPC工作负载优化以太网性能,提供高吞吐、低延迟、可扩展的通信协议。
组织
由Ultra Ethernet Consortium(UEC)制定,基于Linux Foundation的开放标准。
UET配置文件
UET指定了三种配置文件:AI Base、AI Full和HPC。
AI Base配置文件旨在以最低的成本提供当前和未来需要高性能的AI应用程序所需的功能。
AI Full配置文件添加了其他功能(例如,可延迟发送、精确匹配和对原子原语的支持)。
HPC配置文件满足了高性能计算应用程序的需求,在很大程度上是AI Full配置文件的超集。
每个配置文件都列出了在兼容产品的传输层提供的服务和所需的不同功能。
配置文件可能包括实现功能的可选配置。如果实现了可选功能,它们必须遵循定义的规范来声明合规性。
UET涵盖了各种应用程序用例,这些用例利用不同的通信库和服务,对HPC和AI有不同的通信要求。并非所有用例都需要所有语义,简化的语义为专门化和优化硬件提供了机会。
AI Base配置文件专门用于支持*CCL和不可靠的数据报通信,重点是最小化实现复杂性。
AI Full配置文件旨在支持所有AI培训和AI推理要求,以最有效地服务于新兴市场。
HPC配置文件支持完整的HPC语义,并支持广泛的应用程序。
特定的端点实现可以支持AI Base、AI Full、HPC配置文件或三者的任意组合。但是,两个端点之间的通信要求这些端点都支持相同的配置文件。
SES语义子层事务
表3-1定义了支持各种事务以符合每个配置文件的要求。UET_WRITE、UET_READ和UET_SEND等多数据包事务必须使用一致的有效载荷MTU大小来传输SES有效载荷。因此,部署必须在fabric结构中通信的所有FEP之间使用一致的有效载荷MTU大小。
缓冲区寻址机制
除匹配外,所有配置文件的实现必须符合所有基本缓冲区寻址方案。所有配置文件的实现都必须支持UET_WRITE操作使用内存键。如果支持RMA读取,则所有实现都必须支持将内存密钥用于UET_READ和UET_ATOMIC操作。可以使用通配符匹配来实现精确匹配支持。
授权
所有配置文件都必须实现授权语义。所有配置文件必须能够根据SES插入JobID。配置文件实现在允许缓冲区访问之前必须检查JobID。所有配置文件必须支持每个FEP至少一个JobID。
缓冲区行为
配置文件必须支持表3-3所示的缓冲区行为。
数据包格式
表3-4列出了每个配置文件的实现必须支持的SES头格式。除非在表中作为异常特别指出,否则必须支持标头中的所有字段和标志。
PDS分组交付子层排序模式
表3-5列出了每个配置文件的实现必须支持的PDS排序模式和网络行为。
CMS拥塞管理子层拥塞控制算法
CMS提供了两种互补的拥塞控制算法:NSCC和RCCC。下表详细说明了每个配置文件中的实施要求。为尽力而为和无损网络提供了独立要求。每个实现的算法都必须支持一种在部署时禁用它的机制,以便NSCC或RCCC可以单独运行,或者在实现支持两者的情况下一起运行。
封装
所有配置文件的许多传输组件固有地依赖于一致的低级协议封装(例如,IPv4与IPv6作为网络层封装,以及传输层的原生UET与UDP封装)。例如,传输安全子层TSS使用特定于封装类型的安全域的机密性和加密偏移,CMS使用标称数据包大小来计算带宽。
实现应该对FEP、PDC和TSS安全域上的所有数据包使用一致的封装。
规格惯例
协议格式
图1-2是本规范其他部分所示的完整协议头堆栈的示例。这些完整的协议头堆栈不会显示每一层中每个协议头的所有细节,而是标识解析头和查找堆栈下一层所需的重要字段。标题堆栈的层显示在左侧,并按颜色区分。
图1-3是本规范其他部分中使用的单个详细标题图的示例。字节标记在顶部和左侧。字节的最低有效位(LSB)位于左侧的第一位,字节的最高有效位(MSB)位于右侧。标头字段标记在字节偏移标签顶部和右侧的字节标签下方。标题字段宽度基于实际比特大小。保留字段在接收时将被忽略,并作为零传输。每个单独的标头都是一个独立的图形,显示了从零字节偏移开始的标头。接收数据包中报头的实际偏移量取决于之前报头的特定格式,这些格式在独立图中没有显示。
序列交互
图1-4显示了本规范中使用的序列图示例。序列图用于说明两个实体之间以及实体内功能层之间特定信息交换的时间线。事件时间线从上到下流动。序列图不提供实体之间交换的完整信息集的规范描述,而是用于描述通信场景的特定实例。该示例显示了外部实体(例如libfabric提供者)提供给UET语义层的消息,以及它是如何被分解成数据包并传递给PDS层以通过线路传输到远程目标的。
一些重要的UET报头字段显示在指示在线路上传输的数据包的箭头上方。在信息交换过程中发生的动作和事件使用虚线箭头和支持文本突出显示。
系统视角
UE规范涉及分布式工作负载,无论是人工智能还是高性能计算,并且自然继承了并行计算的一些术语。图1-5提供了UE规范所涉及的并行计算组件、术语和概念的系统概述。以下文本提供了UE环境和相关术语的高级概述和介绍。
UE被指定在cluster集群内运行,集群包括通过fabric结构的互连节点node。
端口实现IEEE Std 802.3定义的单个媒体访问控制(MAC),可选地包括任何UE特定的扩展,如它所遵守的UET配置文件所要求的。
link链路连接两个端口。
Fabric interface结构接口(FI)是一个物理实体,它提供一个或多个端口,并将一个或一个以上fabric endpoints 结构端点(FEP)暴露给一个或更多操作系统实例(OSIs)。结构地址(FA)是IPv4或IPv6地址,FEP是分配了单个FA的逻辑可寻址实体。UE传输协议终止于FEP,可选地包括安全上下文。具体而言,FEP只能由单个OSI使用,节点可能有一个或多个FEP。每个OSI可以使用一个或多个FI和一个或更多FEP来连接到结构。
交换机有两个或多个端口,是fabric结构的一部分,是数据包转发设备。数据包根据转发信息沿路径转发,转发信息包括数据包的FA、其他报头字段(例如,用作entropy value熵值的UDP源端口)和交换机状态。具有相同路径转发信息的任何两个数据包都应通过fabric结构采用相同的路径。fabric plane结构平面是一组通过链路和可选交换机连接的FEP,允许任何FEP与同一组中的其他FEP通信。不同fabric plane结构平面上FEP之间的通信超出了本规范的范围。路径存在于结构平面内,但不跨fabric plane结结构平面。一个fabric由一个或多个fabric plane结构平面组成。
Node节点是具有一个或多个FEP的计算设备。集群是由一个结构连接的一组这样的节点(请注意,图1-5中的简化图仅用于说明目的,仅显示了集群中的一个节点。典型的UE部署可能有数十万个节点)。加速器是为高效执行特定功能而设计的计算模块或设备。CPU是用于任意计算的通用处理器。CPU和加速器连接了内存,FEP可以通过虚拟寻址访问该内存。节点可以具有本地存储,并包含一个或多个CPU和/或一个或更多个加速器。
用户是对集群节点具有访问权限的实体。用户可以执行进程。进程是在特定用户拥有的OSI上执行的程序的实例,该程序在内存中具有私有虚拟地址空间(VAS)。进程由其运行的OSI独有的进程ID(PID)标识。进程地址空间ID(PASID)是每个OSI内VAS的唯一标识符。
集群可以以两种根本不同的方式使用,这两种方式可能共存:
1.在parallel job model并行作业模型(例如MPI/*CCL或SHMEM)中执行。
2.在 client/server model客户端/服务器模型中执行,其中客户端可以连接到服务器(例如,存储或功能即服务(FaaS))。
每个数据包都携带一个标识符,指示它参与的模型。并行作业执行的特点是“运行到完成”模型,而客户端/服务器执行通常会无限期地运行服务器,为无限数量的客户端提供服务(通常具有复杂的可靠性和可用性保证)。
UET具有相对和绝对端点寻址模式(见图1-9)。相对寻址模式在并行作业模型中提供连续寻址,以确保可扩展到最大的进程数。绝对寻址模式用于客户端/服务器模型。
在相对寻址模式下,UET定义了目标地址的四个互补部分:
1.一种标识FEP的FA。
2.唯一标识集群中作业的JobID。
3.PIDonFEP的范围为0至P-1。
4.标识目标进程内的服务、库或其他实体的资源索引(RI)(例如,MPI与*CCL)。
当数据包到达目的地FEP时,可以基于JobID和PIDonFEP的组合来确定目标PASID。
在绝对寻址模式下,UE定义了地址的三个互补部分:
1.一种标识FEP的FA。
2.PIDonFEP,标识与目的地FEP相关联的OSI PID之一。
3.标识目标进程内的服务或其他实体的资源索引(RI)。
RI可用于解决服务器中的特定子例程或功能(例如,运行FaaS或rPC服务)。当数据包到达目的地FEP时,基于PIDonFEP确定目标PASID。JobID不是寻址的一部分,而是用于授权。
Messages消息表示UE网络中的单个通信事务。图1-10显示了消息通信传递背后的主要概念。
Transaction事务是由调用UET libfabric提供程序的进程创建的,该提供程序又调用语义层。
semantic sublayer语义子层创建各种消息来完成事务。消息及其相关缓冲区在源FEP处根据内存寻址被拆分为一组空间有序的数据包。这些数据包在网络中沿着路径发送和路由,可能是无序的。消息最初可能涉及UET语义规范中讨论的会合协议步骤。
软件
UE规范涉及分布式工作负载,无论是人工智能还是高性能计算,并且自然继承了并行计算的一些术语。以下文本提供了UE环境和相关术语的高级概述和介绍。
AI和HPC API接口
UE旨在支持libfabric v2.0 API,并与libfabric社区合作,允许端点与AI框架和HPC工作负载进行交互。一些UE可选功能需要网络设备(如交换机)支持高级功能,如数据包修剪。为此,网络操作系统(NOS)需要扩展来支持UE功能。
UE当前不处理跨管理域的交互。
结构端点Fabric Endpoint 软件栈
图1-11显示了在FEP上运行的软件栈。
UE旨在支持现有的AI训练(AIT)和AI推理(AII)框架。这些框架,如TensorFlow、PyTorch、JAX等,预计将在UE软件栈上无缝工作。换言之,UE的目标是使依赖于这些框架的应用程序能够迁移到UE供电的节点,而不需要更改。框架通常会利用依赖于硬件的供应商特定的*CCL库。然而,符合UE的*CCL库虽然没有直接指定,但不需要更改应用程序。
交换机软件栈
图1-12显示了支持UE功能的交换机软件栈的示例。UE在现有的以太网交换机上运行,但通过支持交换机中的可选UE功能可以获得额外的能力。UE环境中的交换机预计将运行各种网络操作系统(例如,SONiC、FBOSS、Junos OS、IOS等)。可以通过针对UE适当增强的交换芯片抽象接口(例如SAI)访问交换硅内的可选UE功能。
不需要对交换机的转发范式及其相关网络操作系统(NOS)进行更改。基于IP的转发可以保持不变;然而,为UE定义了可选特征(例如,分组修剪)。
网络操作系统(NOS)接口
NOS在交换机上提供配置和控制的基本服务。一些NOS组件可能需要更新以支持UE功能。以下为示例:
•LLDP的UE组织特定TLV。
•包装修剪。
图1-12显示了各种交换机模块的分层。交换机抽象接口(SAI)之上的层称为NOS控制平面,下面的功能称为NOS数据平面。
控制平面软件通过抽象的API与数据平面功能交互。一个示例接口是在开放计算项目(OCP)中开发的交换机抽象接口(SAI)。SAI在供应商提供的软件开发工具包之上提供了一个抽象层。
网络
AI和HPC网络分类
UE区分了三种网络类型,如图1-13所示:
Frontend network
前端网络是数据中心中的操作网络,将所有计算节点连接到外部世界(例如,互联网上的其他数据中心或最终客户)。这使得前端网络成为数据中心最重要的组件之一。前端传输中的任何可用性损失都会导致直接的客户影响和相关成本。由于前端网络连接客户和远程数据中心,它可能支持各种传输协议(例如TCP/IP、UDP/IP和QUIC),这些协议可以在毫秒级延迟的长距离链路上运行。
此外,计算节点的多租户经常被使用,可能需要网络覆盖来支持虚拟机迁移和网络虚拟化。
Backend scale-out network
后端网络通常是一个相对于前端网络范围有限的专用高性能网络,通常部署在“集群”(例如,一组行)中。它有时也被称为“横向扩展”网络。后端横向扩展网络通常形成自己的第三层子网,通常不直接连接到前端网络。前端和后端网络之间的通信通常是通过具有网络接口的计算节点进行的。
后端横向扩展网络具有非常特殊的用途。例如,HPC后端横向扩展网络支持通过消息传递接口(MPI)进行通信,而深度学习后端横向扩展网则提供训练流量。面向人工智能的后端横向扩展网络可能包括特殊目的的优化,例如对批量数据上的集体操作的交换机支持,而面向高性能计算的后端横向延伸网络可能只支持小集体的延迟优化。
Scale-up network
扩展网络通常是非常专业的短程互连,通常只配备单层交换机,或者可能根本没有交换机。
历史扩展网络支持I/O一致性,但并非所有类型的互连都存在这种一致性。用于连接加速器的现代示例(例如,称为GPU、FPGA或专用SoC的XPU)包括AMD的XGMI、NVIDIA的NVLINK、Intel的Xe Link、交换式PCIExpress和CXL系统。这些网络的功能通常包括以最低的可用延迟(针对小规模或编程的内存访问,以亚微秒为目标)实现内存语义(类似于批量传输的RDMA)。UE主要关注后端和横向扩展网络,但UE技术的概念和部分可能适用于横向扩展网络。
特征总结
在典型的2024数据中心环境中,三种类型的网络根据不同的特征进行区分,如表1-1所示。
UET目标
UET专注于为HPC和AI(AIT和AII)提供工作负载和用例。UET主要针对RDMA服务,并试图为在AI和HPC工作负载中承载RDMA提供最佳、现代化和高度优化的传输服务。表1-2总结了一般特征。这三个用例(即专用AI训练集群、云AI/HPC和大规模HPC)涉及利用单个应用程序的整个系统规模的组织,以及用单节点应用程序填充机器很大一部分的组织——以及介于两者之间的整个范围。UET的目标是通过单一传输协议为这些用例的广度提供服务。
UET的另一个目标是提供加速器友好的界面。这涉及定义一个规范,以最小化集成端点所需的硬件复杂性。另一个方面涉及定义一种软件解决方案,使加速器和其他处理器能够在硬件上做更多的事情。例如,UET可以允许加速器拥有“快速路径”,并将其他功能(例如管理和复杂错误处理)移动到单独的处理器(例如主机CPU)。
虽然UET在利用多路径和网络遥测辅助的改进拥塞控制的尽力而为网络上提供了出色的性能,但它也被设计为在无损网络上运行。对于尽力而为的网络,UET从以太网、TCP/IP和为包括云在内的各种应用部署的大规模网络的成功中吸取了两个基本教训--传输协议应提供丢失恢复,许多大规模无损网络在不触发线头阻塞和拥塞扩散的情况下难以运行。遵循这些原则,UE传输建立在分布式路由算法和基于端点的可靠性和拥塞控制的成熟路径之上。
网络结构
网络结构由以太网交换机和下文所述的相关元件组成。
元素
UE交换结构包含三个常见的功能平面:控制平面、数据平面和管理平面。这些如图1-14所示,描述如下。
控制平面
控制平面负责运行关键功能,如路由协议,以保持结构交换机之间的通信。该层由SONiC、FBOSS等网络操作系统(NOS)管理。控制平面使用标准API(如SAI或特定于供应商的API)与交换机数据平面交互。
数据平面
数据平面,也称为转发平面,负责在网络中转发数据包。这一层跨越UE端点(即FEP)和网络交换机。为清楚起见,数据平面不控制或管理UET FEP。该层包括交换机硬件的较低级别抽象,并负责根据控制平面提供的转发信息转发数据包。
管理平面
管理平面负责确保交换结构可操作、可靠和安全。管理系统和相关协议执行软件升级、监控和其他管理活动。管理平面使用Netconf、gNMI、SNMP等标准接口与控制平面交互。
物理网络中的UE切换操作
UE兼容交换机在两种类型的物理网络中运行:
1.UE数据平面网络:通过UE交换机将FEP彼此连接的网络。该网络承载各种工作负载的应用流量,并针对UE规范进行了优化。
2.交换机管理网络:每个交换机至少提供一个专用以太网端口,用于连接非结构端点,如SDN控制器、结构管理器、遥测收集器、SNMP服务器和其他负责管理基础设施的设备。该网络对延迟不敏感,通常对带宽要求较低。
拓扑
拓扑是AI和HPC fabric结构的关键部分,因为它通过建立网络直径和二等分带宽来设定性能界限。部署需要考虑能耗和物理方面(如电缆成本)的最佳系统成本。
本规范中的拥塞管理针对Clos网络,但不排除其他拓扑。然而,除了折叠的Clos网络(即胖树)之外,没有为拓扑设置优化或性能目标。本规范中的拥塞管理已在胖树网络拓扑上进行了模拟。
网络约束
UE fabric结构被限制为使用基于IPv4/IPv6的第3层转发。使用隧道的UE结构(例如VXLAN)目前尚未指定。多租户可以在FEP级别通过加密的租户应用程序数据、特定的JobID分配来解决,也可以利用现有的隧道机制。
UE不需要改变网络层,可以使用现有的路由协议。UE交换机使用等成本多路径(ECMP)路由进行负载平衡,其中熵值由UET拥塞管理子层(CMS)管理。拥塞管理算法的设计期望结构交换机不修改熵值,并且具有相同熵值的任何两个分组通过UE结构采取相同的路径。CMS希望UE交换机支持IETF RFC 3168中规定的显式拥塞通知(ECN),但有一个额外的限制,即在dequeuing 而不是enqueuing时标记拥塞的数据包。
数据包修剪是拥塞通知的一种附加机制,它利用多个差异化服务码点(DSCP)来识别可以修剪和已经修剪的数据包,并确保它们被映射到适当的流量类别以进行快速转发。
流量类别体现在端点和交换机内用于区分数据包传输的机制和资源中(例如队列、缓冲区、调度器)。流量类别彼此不同,可以在彼此之间进行优先级排序。使用接收到的数据包的属性和标头字段将数据包映射到流量类别。UE主要依靠IP报头中的DSCP字段来识别接收到的数据包的流量类别。图1-15显示了应用程序请求的流量类别到端点和交换机上链路层可用流量类别的映射。虚线框内描绘的项目是UE解决方案栈不同层上UE运营商可用的配置值。应用程序可以使用fi_domain() library API指定所需的libfabric流量类。如果未指定,则UE libfabric映射部分提供用于请求的默认DSCP值。CMS规范提供了DSCP到流量类别映射表。此表描述了不同类别的DSCP值如何映射到链路上的流量类别。
为来自libfabric层的消息请求提供的DSCP值被传递并分类为DSCP_TRIMMABLE或DSCP_NO_TRIM。UET协议包括用于生成的ACK、NACK和分类为DSCP_CONTROL的控制数据包的DSCP值。UET协议还可以使用DSCP_TRIMMABLE_RETX对重新传输的数据包进行分类。所有这些DSCP类别被映射到链路级流量类别TC_high和TC_low,它们的优先级彼此较高和较低。修剪数据包的交换机(由图1-15中的剪刀图标表示)将DSCP值更改为DSCP_TRIMMED或DSCP_TRIMMEDID_LASTHOP,具体取决于它们在结构拓扑中的位置。修剪数据包的DSCP值可以映射到第三个流量类(TC_med)(如果可用),否则使用TC_high。
UET的拥塞管理子层的设计期望为PDC(Packet delivery context)使用至少两个流量类别来实现高性能。网络运营商负责分配和配置UET使用的流量类别。UET数据包类型到流量类别的映射取决于网络是尽力而为还是无损。
UET层简介
UE规范跨越了从软件到物理层的多个层。图1-16按层显示了UE规范的必需和可选组件。以下部分提供了每一层的概述:
软件层
UE软件规范包括到libfabric API的映射。
libfabric mapping:符合UE的实现支持开放结构接口–libfabricneneneba API。Libfabric v2.0表示符合UE的端点的基线API。Libfabric是北向API,其中定义UE API并检查合规性。UE规范预计将与libfabric社区保持一致。之所以选择Libfabric,是因为它支持基于RDMA的fabrics结构上的许多工作负载,并且是由许多构建硬件和软件以满足规范的供应商实现的。多家供应商已经成功创建了支持基于MPI的HPC应用程序的产品,同时还允许PGAS、SHMEM和其他编程模型。与此同时,供应商创建了支持流行AI框架的库(例如PyTorch、TensorFlow或ONNX)。事实证明,所有这些供应商产品都可以轻松有效地映射到libfabric上。UEC与libfabric社区合作,根据需要扩展libfabric API,以支持新的UE功能。
传输层
UE传输协议旨在满足HPC和AI工作负载的网络需求。定义了不同的配置文件,以允许产品优化,满足工作负载的独特需求。预计AI和HPC工作负载的网络要求将越来越多地重叠。UE传输协议支持广泛的实现。UE传输协议的组件包括消息语义、分组传递可靠性模式、拥塞管理和安全性。
语义子层(SES)
SES子层旨在通过libfabric映射集成到广泛部署的AI框架和HPC库中。使用libfabric的应用程序通过结构交换消息,并使用流行的零拷贝技术将这些消息直接放入彼此的缓冲存储器中。SES子层指定了一个协议,该协议定义了如何识别应用程序消息、如何寻址相关缓冲区以及如何对消息进行首选操作。SES子层是UE传输和libfabric提供商之间的主要接口。
语义标准头
语义优化头
语义汇集扩展头
语义原子操作扩展头
语义响应头
数据包传递子层(PDS)
应用程序要求决定了选择适当的UET数据包传递服务。不同的应用程序针对消息传递的各种可靠性和数据包排序约束进行了优化。通过UET分层模型和相关库,应用程序可以选择最适合其需求的传输协议功能。PDS子层定义了一种具有多种操作模式的协议,提供可靠无序RUD、可靠有序ROD、幂等可靠无序RUDI、不可靠无序UUD的数据包传输服务的所有组合。
拥塞管理子层(CMS)
端到端拥塞管理对于实现高网络效率、减少数据包丢失和最小化延迟至关重要,同时保持竞争流之间的公平性。流量类别在网络中用于将具有不同特征和要求的流量与网络分开。为了保持公平性并确保低延迟控制环路,UE拥塞管理被设计用于同一流量类别中的所有流量。
流量等级配置由网络运营商负责。通过允许UET拥塞管理实现跨结构的多路径数据包喷洒,并在拥塞信号到达时避免热点,从而实现了高网络效率和降低延迟。在UET下,具有无序流的PDC可以同时使用到目的地的所有路径,实现所有网络路径的更平衡使用。通过在实时拥塞管理的指导下协调选择端点和交换机之间的路径,避免了链路负载不平衡。这种细粒度的负载平衡提高了网络利用率,减少了尾部延迟。
传输安全子层(TSS)
人工智能训练和推理通常发生在需要作业隔离的托管网络中。此外,人工智能模型越来越敏感,成为有价值的商业资产。认识到这一点,UE传输通过设计结合了网络安全,可以加密和验证在AI训练或推理作业中在计算端点之间发送的所有网络流量。
随着作业规模的增长,有必要在不增加主机和网络接口中会话状态的情况下支持加密。为此,UET采用了新的密钥管理机制,允许在参与作业的大量计算节点之间高效共享密钥。它旨在以人工智能训练和推理所需的高速和大规模高效实现。托管在大型以太网上的HPC作业具有相似的特征,需要类似的安全机制。请注意,TSS是一个可选功能。
网络层
UE不需要对网络层进行任何更改,但UET拥塞管理期望支持IETF RFC 3168中规定的显式拥塞通知(ECN),但有额外的约束,即在以传输dequeuing时而不是传输enqueuing时标记拥塞的数据包。
数据包修剪Packet Trimming
fabric结构内的拥塞是不可避免的。随着fabric结构速度的增加,有限的交换芯片缓冲承受了更大的压力,拥塞信号变得更加普遍,这些信号中的信息在确定纠正措施方面变得更加重要。
UE定义了一个包修剪功能,允许交换机截断有争议的分组,修改截断分组的DSCP字段,并将截断的分组作为拥塞信号转发到目的地。分组修剪提供的拥塞信息比单独的ECN比特多得多。分组修剪是交换机实施的可选操作,也是FEP接收修剪后的分组的强制性操作。
链路层
UE规范向链路层添加了几个可选功能,承认推出支持这些功能的产品可能需要更长的时间特征。一些工作负载可能会从这些功能中受益,大规模实验可能是证明这一点的最佳方式。此外,其他SDO,如IEEE 802,可能对改变其中一些功能感兴趣。
图1-17显示了UE链路层规范在链路层与IEEE 802架构相关的重点领域。UE对链路层的可选建议与阴影区域有关。所有功能都是UE合规性的可选功能。
链路层重试(LLR)
随着速度和规模的增加,以及加速器网络中常见的极端带宽密度,仅依赖端到端重试来解决数据包丢失的传统方法对延迟敏感的工作负载来说越来越繁重。链路层的本地错误处理已被证明在横向扩展的HPC网络中很有价值,例如在exascale系统中使用的网络。UE规范为以太网提供了这种能力。
基于信用的流量控制(CBFC)
传统上,以太网不使用基于信用的链路,这在fabric结构技术中很常见。然而,最近推出的一些产品支持它,对某些工作负载进行了可选的改进。CBFC是UE链路层的可选功能。
UE链路协商
UE规范支持“现有以太网交换机”,但引入了多种可选的新功能,这些功能受益于发现和功能协商功能。虽然UE的目标是在专用后端网络上运行以进行加速器间通信,但这一目标并不能减轻支持网络上所有实体(端点和交换机)之间的发现和功能协商的需要。UE提倡描述所需和可选功能的“配置文件”的概念。有必要在所有网络实体之间检测、发现和达成共识,以便与配置文件支持的功能进行互操作。
UE链路协商定义了UE链路层的可选链路本地特征的协商,这些特征将UE链路的操作扩展到标准IEEE Std 802.3以太网之外。这些可选的链路本地功能只能在UE链路上使用,其中两个链路伙伴都支持可选功能并希望启用它们。
本规范定义了以下可选链路本地功能的协商:
链路层重试(LLR)
基于信用的流量控制(CBFC)
为了支持可选链路本地特征之间的自动发现、协商和选择,在IEEE链路层发现协议LLDP交换的UE链路层配置信息的基础上构建了协商协议。UE链路层配置信息由UE组织特定类型长度值(TLV)内的链路层发现协议(LLDP)交换,TLV的格式如IEEE Std 802.1AB中所述。由LLDP交换并存储在LLDP数据库中的UE链路配置信息反过来用于配置和启用可选的链路本地功能。
物理层
UE被指定为使用IEEE Std 802.3定义的每通道100G信令的物理层。
图1-18显示了与IEEE 802.3 PHY架构相关的UE物理层规范的重点领域。UEC对物理层的可选建议与阴影区域有关。
IEEE 802.3 每Lane100G信令
UE物理层部分列出了UE范围内的IEEE 802.3规范。
● Backplane (KR, clause 163)
● Copper cable (CR, clause 162)
● MMF up to 50 m (VR, clause 167)
● MMF up to 100 m (SR, clause 167)
● Parallel SMF up to 500 m (DR, clauses 124, 140)
● WDM SMF up to 2 km (FR, clauses 140, 151)
控制有序集
UE控制有序集是可选UE功能。支持此功能的PHY应符合本节的要求。
控制有序集(CtlOS)是UE链路层使用的一种消息机制,具有基于信用的流控制(CBFC)和链路层重试(LLR)功能。通用格式也可扩展到未来的链接级功能。它是一个8字节的消息,在64B/66B PCS编码中编码为有序集,具有O码值,以将其与标准以太网序列有序集区分开来。
信道质量假设
加速器节点比标准端点或TOR交换机更复杂。在发布时,假设IEEE标准就足够了,同时鼓励UE产品构建更稳健的信道。
用于预测链路质量的FEC统计
假设UE网络包括多个受前向纠错(FEC)保护的高性能链路,在这些链路上,由于物理层错误导致的数据丢失极为罕见。然而,在大规模网络中,可能存在一些异常链路,其错误频率高于网络的其他部分。对于大规模并行应用程序,这些链路可能需要频繁的重传,从而成为整个网络的性能瓶颈。UE PHY规范包括一种根据FEC解码器的统计数据估计每条链路上PHY错误之间的平均时间(MTBPE)的方法。该估计能够识别较差的性能,从而提供了提高网络性能的机会(例如,通过从网络中删除最薄弱的链路或为其端点提供服务)。
以太网根据帧丢失率(FLR)指定链路质量。FLR在MAC/PLS服务接口处定义,并在MAC中可测量。