通信网络
自上一次云计算大潮以来,产业界也许从来没有如此亢奋过,从底层器件到上层软件都到了十字路口。 以太网平稳发展50年,越过山丘突然发现还有人等候,InfiniBand 老树发新芽枯木又逢春,不得已带头大哥又吹响集结号成立UEC。
01 UEC的研究方向 超以太网联盟致力于从物理层、链路层、传输层、软件层改进以太网技术,在兼容当前以太网生态的前提下,提升以太网的转发性能,致力于改进以太网通信的协议、应用程序接口,改进存储、管理、安全结构,改进遥测能力,使超以太网技术满足人工智能和高性能计算对网络的需求。 超以太网联盟UEC确定了需要重点关注的网络类型为Type2 Network(BackEnd Network),也不反对在Type1(FrontEnd Network)中使用,但不会因为要适配Type1而降低Type2的网络性能。
UEC确定了每种网络类型的性能指标。
02 UEC的工作组 UEC最初成立了四个工作组,分别是物理层、链路层、传输层、软件层工作组,已经取得了出色的成绩。近期又成立了存储、管理、兼容性&测试、性能&调试工作组,刚刚展开工作。下图是UEC的工作组划分:
# 物理层工作组
致力于提高物理性能,减少延迟,改善以太网物理基础设施的管理。包括以太网物理层规范、电气和光信号特性、应用程序接口和数据结构的开发。目标是使基础更加强大,确保以太网能够满足AI和HPC的严格要求。当前物理层工作组致力于100G/Lane和200G/Lane的PHY规范制定,已经确定了100G /Lane 介质类型、PHY支持的速率和类型。200G/Lane的规范等IEEE P802.3dj批准后再定。
物理层工作组针对链路质量预测引入了几个新的概念UCR(uncorrectable codeword ratio),MTBPE(the mean time between PHY errors),MTTFPA(the mean time to false packet acceptance),致力于更精确的预测和度量物理层链路质量。
# 链路层工作组
链路层工作组致力于提升链路层传输的可靠性和传送效率,提升链路层telemetry能力。
链路层主要研究方向有:
>Link Layer Reliability:
在链路层增加LLR子层,位于LLC和MAC CONTROL子层之间,用于链路层端到端错包重传。
>Credit-based flow control:
在链路层支持端到端基于信用的流控机制,管理链路间帧的无损传输。CBFC(Credit-Based Flow Control)机制用来替换PFC流控。接收者周期性发送buffer空间给对端,发送者基于报文优先级和buffer大小发送报文。Buffer空间也可以用于自适应路由选路。
>Packet rate improvement:
致力于以太网报文头的压缩,以增加帧的传送效率。以太网在长期演进过程中,报文头不断扩展,导致传送效率比较低,在智算网络中有很多字段是用不到的,因此压缩报文头,提升帧的传送效率势在必行。
压缩报文和非压缩报文要能在网络中共存,报文头中需有个标志可以指示报文是压缩的还是非压缩的发送者可以选择是否压缩报文,不影响原有的功能。
目前报文头压缩有多个方案,正在讨论中。
>Negotiation:
建立链路层参数和特性的协商方法。链路层新增的几个能力如LLR、CBFC、PRI,需要协商才能支持,主要思路是扩展LLDP,增加一个UEC OUI,用于设备间新增链路层能力的协商。
# 传输层工作组
UET(UEC transport layer)工作组致力于解决最具挑战性的应用程序扩展、报文可靠传输、数据安全传送以及避免网络中的拥塞。它的目标是解决RoCE传输的缺点,提供高效、可靠、安全的大规模传输。目标传输端点达到256,000,支持的进程数达到100,000,000。
UET的主要模块如下图所示:
UET包含Packet Delivery、Security、Semantics三个模块,各个模块功能如下:
>Packet Delivery sulayer(PDS):
报文传送子层包含可靠性和拥塞管理两个模块。
可靠性模块需要覆盖三个关键需求:
1) 极端扩展能力
2) 报文有序传输
3) 报文乱序传输
可靠性模块设计四种报文传输模式,每一种模式用于特定目的。以满足HPC,AI,ML等应用场景。这四种报文传输模式分别是:
1)Reliable, ordered delivery (ROD)可靠,有序传输: 这种模式按照顺序传输报文,用于需要消息有序传输的应用。
2)Reliable, unordered delivery for operations (RUD)可靠,无序传输: 这种模式只能向语义层传输一次报文,但是可以忍受网络中的乱序传输。
可靠性传输层需要检测重复报文,以确保每一个报文只能向语义层传送一次。
3)Reliable, unordered delivery for idempotent[] operations (RUDI)可靠,用于幂等运算的无序传输:这种模式是针对对RDMA读写操作做的优化。
4)Unreliable, unordered delivery (UUD)不可靠,无序传输: 不可靠报文可以承载许多UET的新语义,用户不需要可靠传输,用户采用其他可靠性手段。
拥塞管理模块还在研究中,包含拥塞管理和负载均衡,能基于每个FEP进行拥塞管理。核心是基于接收方信用的流量控制。拥塞控制定义窗口大小、注入速率,目标是可以减少速率并限制报文,避免中间节点和端点的拥塞。路径负载均衡定义特定报文选择那一条路径,可以用ECMP选路。
>Transport Security:
安全传输是UET设计的重中之重,可以选择对所有数据负荷和大部分的传输头的加密和认证。
>Semantics:
UET语义层提供高性能,高扩展性的操作,使能特殊化的AI和全特性的HPC部署。
语义层是用户软件和PDS(报文递交层)的桥梁,语义层定义一系列操作,比如发送,接收,写,读等。语义层提供可选的排序,各种可选的发起者或者目标完成通知能力。
语义层提供无连接的调用API,必须原生支持*CCL、 MPI、OpenSHMEM等API。
# 软件层工作组
软件层通过与当前各种广泛采用的通信库(如*CCL、MPI和SHMEM)兼容的方式,使用libfabric API作为数据平面框架,促进对UEC的快速采用。定义各种加速器和FEP之间的交互方式,包括相关的加速器API。定义交换机、FEP以及聚合管理器(AM)的控制平面和数据平面机制,允许不同UEC供应商之间的互操作性。解决UEC支持多种工作负载配置文件的需求。
软件层对于INC需要做的工作包括:
1) 定义一种使用INC的集合通信(libfabric)的API(使用C语言)。
2) 定义一种发现机制来确认可用的INC卸载能力。
3) 定义这些库用来与聚合管理器(AM)通信的RPC接口。规定用于AM与提供INC资源的UEC交换机之间通信的RPC接口。
4) OpenConfig扩展,用于配置网络设备的FEP(由AM配置)以进行集合通信卸载,并对性能和错误进行监控。
5) 符合INC的网络设备的行为,具有多个特性配置文件。并引导UEC传输协议的开发,以便INC技术可以轻松地应用到硬件实现中。
最后的倔强 The Network as an island of stability amidst the storm
审核编辑:黄飞
全部0条评论
快来发表一下你的评论吧 !