Skip to main content
开放网络的先行者与推动者—星融元
加入我们技术支持(Support)  TEL:(+86)4000989811

标签: 技术实现

RoCE与IB对比分析(一):协议栈层级篇

近期文章


在 AI 算力建设中, RDMA 技术是支持高吞吐、低延迟网络通信的关键。目前,RDMA技术主要通过两种方案实现:Infiniband和RoCE(基于RDMA的以太网技术,以下简称为RoCE)。

RoCE与IB网络架构概述

RoCE和InfiniBand均是InfiniBand Trade Association(IBTA)定义的网络协议栈,其中Infiniband是一种专为RDMA设计的高性能网络,它从硬件层面确保了数据传输的可靠性,为了进一步发挥RDMA的优势,IBTA在2010年定义了RoCE。RoCE则是Infiniband与以太网技术的融合,它在保持Infiniband核心优势的同时,实现了与现有以太网基础设施的兼容性。具体来说,RoCE在链路层和网络层与Infiniband有所不同,但在传输层和RDMA协议方面,RoCE继承了Infiniband的精髓。
从市场应用占比来看,2000年,IB架构规范的1.0版本正式发布,2015年,InfiniBand技术在TOP500榜单中的占比首次超过了50%,但据最新统计,在全球TOP500的超级计算机中,RoCE和IB的占比相当。以计算机数量计算,IB占比为47.8%,RoCE占比为39%;而以端口带宽总量计算,IB占比为39.2%,RoCE为48.5%。
图1 超级计算机 500 强中 RoCE 和 InfiniBand 的利用率
图2 超级计算机 500 强中 RoCE 和 InfiniBand 的利用率
图2 超级计算机 500 强中 RoCE 和 InfiniBand 的利用率

RoCE与IB报文格式对比

  • RoCE报文格式下图所示:
其中,RoCEv1使用了IB的全局路由头(Global Routing Header),IB BTH是IB的基本传输头(Base Transport Header),ICRC是对InfiniBand层不变字段进行校验的循环冗余校验码,FCS是以太网链路层的校验序列码。
RoCEv2中添加了IP Header和UDP Headrer,引入IP解决了扩展性问题。
图3 RoCE数据包格式
  • IB报文格式如下图所示:
在一个子网(Subnet)内部,只有Local Routing Header(LRH),对应OSI的链路层。在子网之间,还有一个Global Routing Header(GRH),对应OSI的网络层。在Routing Header之上,是Transport Header,提供端到端的传输服务,包括数据的分段、重组、确认和流量控制。接着就是报文的数据部分,包含应用层数据或上层协议信息。最后是不变字段和可变字段的循环冗余校验码(CRC),用于检测报文在传输过程中的错误。
图4 IB数据包格式

RoCE与IB网络层级对比

IB与RoCE协议栈在传输层以上是相同的,在链路层与网络层有所区别:
RoCEv1中,以太网替代了IB的链路层(交换机需要支持PFC等流控技术,在物理层保证可靠传输),然而,由于RoCEv1中使用的是L2 Ethernet网络,依赖于以太网的MAC地址和VLAN标签进行通信,而不涉及网络层(IP层,即OSI模型的第三层)的路由功能,因此,RoCE v1数据包不能实现跨不同的IP子网传输,只能在同一广播域或L2子网内进行传输。
RoCEv2在RoCEv1的基础上,融合以太网网络层,IP又替代了IB的网络层,因此也称为IP routable RoCE,使得RoCE v2协议数据包可以在第3层进行路由,可扩展性更优。
图5 RoCE和IB协议栈对比
  1. 物理层

  • RoCE的物理层基于标准以太网,使用PAM4 (Pulse Amplitude Modulation 4)编码方式和64/66b编码。支持铜缆和光纤,接口有 SFP+、QSFP+ 、OSFP等。支持速率从 10GbE到800GbE。
  • IB的物理层则是专有的,采用更传统的NRZ(Non-Return-to-Zero)调制技术和64/66b编码。支持铜缆和光纤,接口通常为 QSFP、OSFP,支持速率从 10Gbps 到 400Gbps,并可以通过多通道的组合实现更高的总带宽(如 800Gbps)。
对比来看,IB采用的NRZ每个符号只有两个电平,而RoCE采用的PAM4使用 4个不同的电压电平来表示数据,也就是说RZ信号中,每个周期传输1bit的逻辑信息,PAM4每个周期可以传输2bit的信息,因此在相同的波特率下,PAM4的数据传输速率是NRZ的两倍,具有更高的带宽效率,在支持更高速率(如1.6T,3.2T)时具有潜在的优势。目前,六进制(PAM6)和八进制(PAM8)调制技术正处于实验和测试阶段,而InfiniBand(IB)也在逐渐从传统的NRZ(非归零)调制技术转型至PAM4,例如,400G光模块现已能够同时支持IB和以太网标准。相比之下,以太网在调制技术的应用上展现出更为迅速的发展势头。
  图6 频域中 PAM4 与 NRZ 信号的频率内容
  1. 链路层

  • RoCE的链路层是标准以太网,为了在传统以太网上实现无损传输,引入了PFC(Priority-based Flow Control),由IEEE 802.1Qbb标准定义,当交换机的某个优先级队列的缓冲区接近满载时,会发送 PFC帧给上游设备,通知其暂停发送该优先级的流量,防止缓冲区溢出,避免数据包在链路层被丢弃。
此外,以太网引入了ETS(Enhanced Transmission Selection) ,它是DCB (Data Center Bridging)标准的一部分,由 IEEE 802.1Qaz 规范定义。ETS 将流量分配到不同的队列,为每个队列分配一个权重,控制每个流量队列能够使用的带宽百分比,保证高优先级的流量,如RDMA等,获得足够的带宽资源。
  • IB的链路层是专有的,包头称为Local Routing Header,如图所示。
其中,VL是虚拟通道 (Virtual Lanes),SL是服务等级 (Service Level),Source/Destination Local Identifier则是链路层地址。
它内建了对无损传输的支持,这是因为它实现了基于信用的流量控制(Credit-based Flow Control)。接收方在每个链路上提供一个信用值,表示其缓冲区能够接收的数据量。发送方根据此信用值发送数据,确保不会超过接收方的处理能力,从而避免缓冲区溢出和数据丢失。
IB链路层结合SL和VL实现QoS,SL共有16个业务等级,用于标识流量优先级,每个数据包可以根据业务需求被分配到不同的服务等级,通过SL-VL映射,将不同优先级的流量分配到不同的VL上,从而确保高优先级流量(如RDMA)不会因低优先级流量的拥塞而受到影响。
对比而言,IB的链路层由专用硬件实现,效率较高,具有超低时延的特点,而RoCE基于标准以太网硬件,时延稍长。但由于两者都达到了100ns级别,而根据UEC的最新定义,在传输RDMA时,端到端性能要求通常为10μs左右,它们的差别不大。
  1. 网络层

  • RoCE的网络层使用IP,可以是IPv4或IPv6。它采用成熟的BGP/OSPF等路由协议,适应任何网络拓扑并具有快速自愈能力;支持ECN(EXPLICIT CONGESTION NOTIFICATION ),用于端到端的拥塞控制;支持DSCP,替代IB的TRAFFIC CLASS,用于实现QoS。
  • IB的网络层借鉴了IPv6。Global Routing Header的格式与IPv6完全相同,具有128bit地址,只是字段命名不同。但它没有定义路由协议,而是采用子网管理器(Subnet Manager)来处理路由问题,这是一种集中式的服务器,每个网卡端口和交换芯片都通过由SM分配的唯一身份标识(Local ID,LID)进行识别,不具备互操作性,因此很难快速响应网络的变化。
显然,IB网络层是专有的、集中管理的,而RoCE的网络层基于标准以太网和UDP,在互联网数以十亿计算的设备上使用,技术成熟,并在持续发展中;引入SRv6等技术后,IP进一步增强了流量工程、业务链、灵活性和可扩展性等能力,非常适合组建超大规模可自愈的RDMA网络。
  1. 传输层

  1. RoCE

RoCE采用了IB的传输层。RoCEv2协议栈虽然包含UDP,但它仅借用了UDP的封装格式,传输层的连接、重传、拥塞控制等功能由IB传输层完成。UDP层的目的端口固定分配给RDMA协议,源端口则是动态分配的,但在一个连接过程中保持固定。这样可以让网络设备通过源端口区分不同的RDMA数据流。
  1. InfiniBand

IB的传输层采用了模块化的灵活设计,通常包含一个基本传输头BTH(Base Transport Header)和若干个(0到多个)扩展的传输头(Extended Transport Header)。
BTH(Base Transport Header)是InfiniBand传输层头部的一部分。它是InfiniBand网络协议中L4传输层的基本头部,用于描述数据包传输的控制信息。格式如下,
关键信息有:
  • OpCode操作码。由8个bit组成。前3个bit代表传输服务类型,如可靠连接/不可靠连接/可靠数据报/不可靠数据报/RAW数据报等。后5个bit代表操作类型,如SEND/READ/WRITE/ACK等。
  • Destination QP,目的QP号(Queue Pair Number)。与TCP端口号类似,代表了RDMA连接(称为Channel)的目的端。但与TCP端口不同的是,QP由Send/Recv两个队列组成,但用同一个号码标识。
  • Packet Sequence Number,包序列号,简称PSN。与TCP序列号类似,用于检查数据包的传输顺序。
  • Partition Key,分区键。可以将一个RDMA网络分为多个逻辑分区。在RoCE中可采用新一代的VxLAN等技术替代。
  • ECN,显示拥塞通知。用于拥塞控制,包含Forward和Backward两个bit,分别表示在发送和返回路径上遇到了拥塞,在RoCE中被IP头部的ECN替代。
BTH帮助接收方理解该包属于哪个连接以及如何处理接收到的包,包括验证包的顺序、识别操作类型等。
在BTH之后,还有RDMA Extended Transport Header,它包含远端的虚拟地址、密钥和数据长度等信息。格式如下,
其中:
  • VirtualAddress,虚拟地址,代表目的端内存地址。
  • DMA Length,直接内存访问长度,是要读写的数据长度,以字节为单位。
  • Remote Key,用于访问远端内存的密钥。
IB传输层通常由RDMA网卡硬件实现,在IB中称为Channel Adapter(CA),在RoCE中称为RoCE网卡,从而提升RDMA传输的性能。在一些高级的RoCE交换机中,还可以感知IB传输层信息并对RDMA数据流做加速处理。
  1. RDMA操作

借助RDMA扩展头,RoCE和IB的传输层对远程主机的地址进行直接的读写操作(Operation)。
  • RDMA写操作 (RDMA Write)
QP(Queue Pair) 建立后可以直接进行,允许发送方直接写入接收方的内存,不需要接收方的CPU参与,并且无需请求。这种操作方式是 RDMA 高性能和低延迟的核心特性之一。
RDMA Write 是一种单向操作。写入方在写入数据后不需要等待接收方的响应,这种操作与常规的 Send/Receive 模式不同,不需要接收方预先准备接收队列。
  • RDMA读操作 (RDMA Read)
允许发送方从接收方的内存中读取数据,不需要接收方CPU参与。目标地址和数据大小在发送方指定。如下图所示,在一次请求后,可以通过多次响应返回数据,提高了数据传输效率。
图7 RDMA 读操作
  • 发送/接收操作 (Send/Receive)
这是传统的消息传递操作,数据从发送方传递到接收方的接收队列中,需要接收方预先准备接收队列。
在RoCE中,RDMA跳过操作系统的TCP/IP协议栈,直接与RoCE网卡上的传输层连接,借助DMA机制,直接访问本地和远端内存,实现了零拷贝传输,大幅度提升了性能。
同样,IB网卡在硬件上实现RDMA操作,零拷贝传输,两者的性能相当。
当然,无论在RoCE还是IB中,RDMA 连接的初始化、资源分配、队列对 (QP) 管理、以及一些控制路径上的操作(如连接建立、内存注册等)仍然依赖于软件栈。
  1. 应用层

RDMA在数据中心、HPC集群、超级计算机中获得了广泛的应用,用于承载AI训练、推理、分布式存储等数据中心内部的关键业务。
例如,在AI训练/推理时, xCCL或者MPI使用RDMA实现点对点和集合通信;在分布式存储时,NVMEoF, Ceph使用RDMA对网络存储器进行读写操作。
  1. 网络层级对比小结

  • 在物理层,RoCE和IB都支持800G,但PAM4相比NRZ具有更强的升级潜力,以太网成本也低于IB,RoCE更胜一筹。
  • 在链路层,两者均实现了无损传输,RoCE的ETS能够为不同优先的流量提供带宽保证,且RoCE和IB的时延均达到了100ns级别,在实际应用中差不大。
  • 在网络层,RoCE借助IP的成熟的持续发展,更能适应大规模网络。
  • 传输层及以上,RoCE和IB使用同样的协议,没有区别。

RoCE与IB的较量,究竟谁更胜一筹

总的来说,RoCE和InfiniBand都由IBTA定义,没有本质的不同。RoCE实际上是将成熟的IB传输层和RDMA移植到了同样成熟的以太网和IP网络上,是一种强强联合,在保持高性能的同时,降低了RDMA网络的成本,能够适应更大规模的网络。
根据亚马逊的高级首席工程师Brian Barrett,AWS之所以放弃IB方案,主要是因为:“云数据中心很多时候是要满足资源调度和共享等一系列弹性部署的需求,专用的IB网络构建的集群如同在汪洋大海中的孤岛”。
出于AI算力建设对于成本和开放性的考量,越来越多的公司已经在使用以太网交换机用于大规模AI算力中心,例如当前全球最大的AI超级集群(xAI Colossus,造价数亿美元、配备十万片NVIDIA H100 GPU),便是采用64 x 800G,51.2T以太网方案构建集群网络。
CX864E-N是星融元专为AI训练、推理、高性能计算(HPC)等场景设计的一款行业内顶尖规格的RoCE交换机,拥有51.2T的超大交换容量,助力客户用更优的投入成本,实现与IB网络相当的性能。
CX864E-N
  • 8 x CX864E 支持 512 个 GPU 互连,每个端口速度为 400G
  • 192 x CX864E 支持 8192 GPU 互连,每个端口速度为 400G
  • 192 x CX864E 支持 128k ML/AI 节点互连,每端口速度为 100G

参考文献

https://mp.weixin.qq.com/s/PZ_Q5rS5a5YJlczao9SMXw
https://support.huawei.com/enterprise/zh/doc/EDOC1100203347
https://community.fs.com/cn/article/roce-technology-in-high-performance-computing.html
https://ascentoptics.com/blog/cn/understanding-infiniband-a-comprehensive-guide/
https://blog.csdn.net/jkh920184196/article/details/141461235
https://www.servethehome.com/inside-100000-nvidia-gpu-xai-colossus-cluster-supermicro-helped-build-for-elon-musk/

返回资源中心

最新动态

一文梳理:如何构建并优化GPU云算力中心?

从计算、网络到运维的全流程AI集群建设与降本工程指南

优化GPU集群算力中心网络的封面图

目前最常见的AI算力中心部署的GPU集群大小为 2048、1024、512 和 256,且部署成本随 GPU 数量线性增长。本文将以相对折中的1024 GPU卡(H100)的规模为例展开分析。

01 计算节点的选型

计算节点是AI算力中心的建设报价中最昂贵的部分,一开始拿到的 HGX H100 默认物料清单(BoM)往往使用的是顶级配置。不同于 DGX 是 NVIDIA 的系统品牌,HGX 作为 NVIDIA 授权平台允许合作伙伴构建定制的GPU系统。那么,根据业务实际所需,我们可从以下几个方面尝试优化成本。

默认 HGX H100 机箱物料报价单
组件和服务 数量
接近顶级性能的英特尔 Emerald Rapids 处理器 2
8 H100 +4 NVSwitch HGX Baseboard + 8 SXM5 Heatsinks 1
CPU RAM (per Gbyte) 2048
Storage (per TByte) 30
后端 ConnectX-7 NIC 80
Bluefield-3 DPU 2
主板 1
机箱(机箱、布线等) 1
冷却(CPU 散热器 + 风扇) 1
电源 1
组装 & 测试 1
OEM 增值/附加服用 1
合计($):270000+
来源:SemiAnalysis

1、选择中端CPU

LLM 训练是一项 GPU 高度密集型工作负载,对 CPU 工作负载要求低。CPU 运行是一些简单任务,例如 PyTorch ,控制 GPU 的其他进程、初始化网络和存储调用,或者运行虚拟机管理程序等。Intel CPU 相对更容易实现正确的 NCCL 性能和虚拟化,而且整体错误更少。如果是采用AMD CPU ,则要用 NCCL_IB_PCI_RELAXED_ORDERING 并尝试不同的 NUMA NPS 设置来调优。

2、 RAM 降级到 1 TB

RAM 同样是计算节点中相对昂贵的部分。许多标准产品都具有 2TB 的 CPU DDR 5 RAM,但常规的AI工作负载根本不受 CPU RAM 限制,可以考虑减配。

3、删除 Bluefield-3 或选择平替

Bluefield-3 DPU最初是为传统 CPU 云开发的,卖点在于卸载CPU负载,让CPU用于业务出租,而不是运行网络虚拟化。结合实际,奔着GPU算力而来的客户无论如何都不会需要太多 CPU 算力,使用部分 CPU 核心进行网络虚拟化是可以接受的。此外Bluefield-3 DPU 相当昂贵,使用标准 ConnectX 作为前端或采用平替的DPU智能网卡完全可满足所需。

综合考虑前述几项成本优化,我们已经可为单个服务器降低约5%的成本。在拥有 128 个计算节点的 1024 H100 集群中,这个比率背后的金额已经相当可观。

4、减少单节点网卡数量(谨慎选择)

标准物料清单中,每台 H100 计算服务器配备八个 400G CX-7 NIC,单服务器的总带宽达到 3,200Gb/s。如果只使用四块网卡,后端计算网的带宽将会减少 50%。 这种调整显而易见可以节约资金,但多少会也对部分AI工作负载性能造成不利影响。

02 集群网络的选型

集群网络是继计算节点之后的第二大成本来源。本文举例的 NVIDIA H100 集群有三种不同的网络:

  • 后端网络(计算网,InfiniBand 或 RoCEv2) 用于将 GPU 之间的通信从数十个机架扩展到数千个机架。该网络可以使 InfiniBand 或 Spectrum-X 以太网,也可以使用其他供应商的以太网。
  • 前端网络(业务管理和存储网络) 用于连接互联网、SLURM/Kubernetes 和网络存储以加载训练数据和Checkpoint。该网络通常以每 GPU 25-50Gb/s 的速度运行,满配八卡的情况每台GPU服务器的带宽将达到 200-400Gb/s。
  • 带外管理网络 用于重新映像操作系统、监控节点健康状况(如风扇速度、温度、功耗等)。服务器上的BMC、机柜电源、交换机、液冷装置等通常连接到此网络以监控和控制服务器和各种其他 IT 设备。
a

默认 HGX H100 集群网络 箱物料报价清单
组件和服务 数量
InfiniBand 计算网
Quantum-2 IB 交换机(MQM9700) 48
Nvidia LinkX IB 400G 单端口 SR4 收发器 (MMA4Z00-NS4400) 1024
Nvidia LinkX 800G 双端口 SR8 收发器 (MMA4Z00-NS) 1536
Nvidia LinkX 400G 多模光纤C 3072
前端光纤架构成本
主板 1
Spectrum Ethernet Switch (SN4600) 6
Nvidia LinkX 200G QSFP56 AOC 收发器 384
Nvidia LinkX 200G 收发器 256
Nvidia LinkX 100G 多模光纤 512
带外管理网
1GbE Spectrum Ethernet Switch (SN2201) 4
RJ45 Cables 232
合计($):490000+

来源:SemiAnalysis

1、计算网络:RoCEv2替代IB

与量大管饱的以太网解决方案相比,NVIDIA 提供的InfiniBand无疑更昂贵,但一些客户依旧笃定认为以太网性能要低得多,这主要是因为以太网需要进行必要的无损网络参数配置并且针对性调优才能发挥集合通信库的性能。

不过从对业务性能的影响角度看,目前技术背景下使用IB或是RoCEv2作为后端计算网没有并太多差异。毕竟 RoCE 实际上只是将成熟的IB传输层和RDMA移植到了同样成熟的以太网和IP网络上,这一点我们将在往后的另一篇文章来分析阐述。

计算网络:RoCEv2替代IB

大规模算力场景中用以太网替代IB组成高性能无损网络已形成业内共识,行业热点早已转向了如何更好地薅“以太网羊毛”:例如从以太网标准入手,推出下一代面向AI场景的新协议,以及一些厂商立足于现有协议标准在简化RoCE网络配置和提高可视化能力上做的创新尝试。 

参阅:Easy RoCE:在SONiC交换机上一键启用无损以太网

无论是在AI训推的测试场景,还是头部云厂商已有的工程实践里,AI以太网都有了大量案例可供参考。

据统计,在全球 TOP500 的超级计算机中,RoCE和IB的占比相当。以计算机数量计算,IB 占比为 47.8%, RoCE 占比为 39%; 而以端口带宽总量计算,IB占比为 39.2%,RoCE 为 48.5%。与IB相比,我们相信有着开放生态的以太网将会得到加速发展。

目前市场上提供适用于AI场景的高性能以太网交换芯片平台主要有Broadcom Tomahawk、Marvell Teralynx和Cisco Silicon One 等,NVIDIA Spectrum 芯片仅用于Spectrum-X平台,不单独销售。以上平台都推出了51.2T,800GbE/s的尖端型号,综合来看部署数量上 Tomahawk 明显占优,转发时延性能表现 Teralynx 更胜一筹。

厂商 Broadcom Marvell NVIDIA Cisco
芯片名称 Tomahawk5 Teralynx10 Spectrum-4 Sillcon One G200
制程工艺 5nm 5nm 定制4N工艺 5nm
吞吐量 51.2Tb/s 51.2Tb/s 51.2Tb/s 51.2Tb/s
端口速率及配置 64*800Gb/s,128*400Gb/s,256*200Gb/s 32*1.6Tb/s,64*800Gb/s,128*400Gb/s 64*800Gb/s 64*800Gb/s,128*400Gb/s,256*200Gb/s
特色功能 高效SerDes设计(借助64*[PM8x100]SerDes灵活配置端口) 延迟表现低至500纳秒 显著提升AI云网性能 采用P4可编程并行分组处理器,高度灵活可定制

2、前端网络:合理降低带宽速率

NVIDIA 和一些OEM/系统集成商通常会在服务器提供 2x200GbE 前端网络连接,并使用 Spectrum Ethernet SN4600 交换机部署网络。

我们知道,这张网络仅用于进行存储和互联网调用以及传输基于 SLURM,Kubernetes 等管理调度平台的带内管理流量,并不会用于时延敏感和带宽密集型的梯度同步。每台服务器 400G 的网络连接在常规情况下将远超实际所需,其中存在一些成本压缩空间。

3、带外管理网络:选用通用的以太网交换机

NVIDIA 默认物料清单一般包括 Spectrum 1GbE 交换机,价格昂贵。带外管理网络用到的技术比较通用,选择市场上成本更优的 1G 以太网交换机完全够用。

03 计算网络的架构优化

GPU集群计算网将承载并行计算过程中产生的各类集合通信(all-reduce,all-gather 等),流量规模和性能要求与传统云网络完全不同。

参阅:揭秘AI智算中心网络流量 – 大模型训练篇

NVIDIA 推荐的网络拓扑是一个具有无阻塞连接的两层胖树网络,理论上任意节点对都应该能同时进行线速通信。但由于存在链路拥塞、不完善的自适应路由和额外跳数的带来的通信延迟,真实场景中无法达到理论最优状态,需要对其进行性能优化。

轨道优化(Rail-optimized)架构

轨道优化架构下,4台服务器的32张 GPU 卡不再是连接到 TOR 交换机,而是来自32台服务器的同卡号 GPU 连接各自的轨道交换机——即32台服务器的所有 GPU#0 都连接到 Leaf 交换机#0,所有 GPU#1 都连接到 Leaf 交换机#1,依此类推。

轨道优化(Rail-optimized)架构

轨道优化网络的主要优势是减少网络拥塞。因为用于 AI 训练的 GPU 会定期并行底发送数据,通过集合通信来在不同GPU之间交换梯度并更新参数。如果来自同一服务器的所有 GPU 都连接到同一个 ToR 交换机,当它们将并行流量发送到网络,使用相同链路造成拥塞的可能性会非常高。星融元(Asterfusion)给出的1024卡,128计算节点 Scale-out 网络方案正是基于轨道优化后的架构,其中采用了24台 CX864E-N(51.2T的单芯片盒式交换机,8台作为Spine,16台作为Leaf),产生跨节点通信的同卡号GPU之间只会相距一跳。

参阅:星融元发布 51.2T 800G 以太网交换机,赋能AI开放生态

星融元(Asterfusion)CX864E-N交换机
星融元(Asterfusion)CX864E-N交换机

Scale-out网络
Scale-out网络

如果追求极致的成本优化,对于一个32到128个节点的计算集群甚至可以设计只有单层轨道交换机的Rail-only网络,理论上建网成本可以节约高达75%。

来源:星融元(Asterfusion)星智AI网络解决方案
来源:星融元(Asterfusion)星智AI网络解决方案

确定合适的超额订阅率

轨道优化拓扑的另一个好处可以超额订阅(Oversubscription)。在网络架构设计的语境下,超额订阅指的是提供更多的下行容量;超额订阅率即下行容量(到服务器/存储)和上行带宽(到上层Spine交换机)的比值,在 Meta 的 24k H100 集群里这个比率甚至已经来到夸张的7:1。

通过设计超额订阅,我们可以通过突破无阻塞网络的限制进一步优化成本。这点之所以可行是因为 8 轨的轨道优化拓扑里,大多数流量传输发生在 pod 内部,跨 pod 流量的带宽要求相对较低。结合足够好的自适应路由能力和具备较大缓冲空间的交换机,我们可以规划一个合适的超额订阅率以减少上层Spine交换机的数量。

但值得注意的是,无论是IB还是RoCEv2,当前还没有一个完美的方案规避拥塞风险,两者应对大规模集合通信流量时均有所不足,故超额订阅不宜过于激进。(而且最好给Leaf交换机留有足够端口,以便未来 pod 间流量较大时增加spine交换机)

现阶段如果是选用基于以太网的AI网络方案我们仍推荐1:1的无阻塞网络设计。

04 NVMe 存储

物理服务器数量

为了实现高可用性,大多数存储厂商都会建议部署至少 8 台存储服务器。8 台存储服务器每台可提供 250GB/s 到 400GB/s 的存储带宽,足以满足在 1024 台 H100 上运行的 AI 工作负载。我们可以从最小可用数量开始,但需要注意在存储系统上留出足够的端口、NVMe 驱动器托架、电源和机架空间,以便后续按需扩展。

存储网络

常见的方案是构建专门的200G无损以太网作为存储网络以确保性能,存储前后端网络在物理上合一。

部署存储网络的CX664D-N交换机

用于部署存储网络的CX664D-N

存储服务器也可以在后端计算网上运行——通常是将IB网卡绑定到 GPU 0来充当存储网卡。虽然存储基准测试的延迟和带宽表现很好,但在实际AI工作负载中将影响 GPU 0 的性能(IB网卡同时作为存储网卡会有流量冲突)。当存储集群中的磁盘发生故障将触发重建,会在计算网上造成大量的流量,形成更严重的拥塞。

05 带内管理

为了运行高可用的 UFM 和 CPU 管理节点,我们建议部署至少两个通用 x86 服务器,使用25GE/10GE以太网链路连接所有计算节点和管理节点,并接入外部网络。

部署带内管理网络的交换机为CX308P-48Y-N

业务管理网络

默认的NVIDIA Superpod 架构中包含了“NVIDIA AI Enterprise”或“Base Command Manager (BCM)”,其建议零售价为4,500 美元/GPU。BCM 是一个提供 AI 工作流和集群管理的软件包,这一部分软件费用可以考虑剔除后选择其他平替方案,或交由用户自定义。

此外带内管理系统还涉及到其他 IT 设备,例如防火墙、机架、PDU 等,这部分价格不会显著增加集群建设支出。

06 带外管理

带外管理系统主要是通过智慧平台管理接口(IPMI)去监视、控制和自动回报大量服务器的运作状况。IPMI可独立于操作系统外自行运作,并允许管理者在受监控的系统未开机但有接电源的情况下进行远程管理,但这种监控功能主要集中在硬件级别。

不同于带内管理,带外管理构建了单独的网络承载物理设备管理流量,不会承载业务流量。我们一般是每GPU计算节点和存储节点配置1条1 GE 链路连接IPMI和后端管理平台。用于部署带外管理网络的鹅CX206Y-M交换机

07 驱动和业务调度程序

GPU驱动程序

必要的 GPU 驱动程序有 cuda-drivers-5xxfabricmanager-5xx 以及 cuda-toolkit-12-x

  • Cuda-drivers-5xx 是 ubuntu/Linux 与 GPU 交互所需的内核空间驱动程序
  • fabricmanager-5xx 是一个负责配置节点内 NV 链路结构
  • Cuda-toolkit-12-x 包含所有用户空间工具和 API

网络驱动程序

MLNX_OFED

每个 GPU 服务器上都需要安装 Mellanox OpenFabrics Enterprise Distribution (MLNX_OFED) 驱动程序。此软件包是 ConnectX-7 InfiniBand NIC 的驱动程序,用于执行 RDMA(远程直接内存访问)和 OS 内核旁路。

GPU Direct RDMA

这是一个包含在 cuda-drivers-5xx 中的附加内核驱动程序,默认情况下未启用。如果没有此驱动程序,GPU 将需要先在 CPU RAM 中缓冲消息后才能发送到 NIC。

启用 GPUDirect RDMA 的命令是 sudo modprobe nvidia-peermem

NVIDIA HPC-X

主要用于进一步优化 GPU 与 NIC 的通信。

如果没有上述软件包,GPU 只能以 80Gbit/s 的速度收发流量,启用这些软件包后点对点收发速率应可达到 391Gb/s左右。

业务调度和启动程序

绝大部分的最终用户会希望拥有一个开箱即用的调度程序,可以基于SLURM 、K8s 或者其他供应商的软件平台。从0到1手动安装并调试以上平台,对于不是专精于此的工程师至少需要花费1-2天时间,因此闲置的 GPU 资源对于客户都是实打实的支出。

08 多租户隔离

参考传统CPU云的经验,除非客户长期租用整个GPU集群,否则每个物理集群可能都会有多个并发用户,所以GPU云算力中心同样需要隔离前端以太网和计算网络,并在客户之间隔离存储。

基于以太网实现的多租户隔离和借助云管平台的自动化部署已经有大量成熟的方案。如采用InfiniBand方案,多租户网络隔离是使用分区密钥 (pKeys) 实现的:客户通过 pKeys 来获得独立的网络,相同 pKeys 的节点才能相互通信。

09 GPU的虚拟化

与传统CPU云不同的是,AI用途的GPU云租户通常会将每个 GPU 计算节点作为一个整体来租用,深入到节点内部的更细粒度的虚拟化并无绝对必要。但为了进一步提高GPU资源利用率,很多人还是会选择GPU虚拟化,目前,GPU虚拟化技术一般分为三种:软件模拟、直通独占(pGPU)、直通共享(如vGPU、MIG)。

AI算力租赁场景的虚拟化程度一般是到单卡层次,即直通独占(pGPU)——利用 PCIe 直通技术,将物理主机上的整块GPU显卡直通挂载到虚拟机上使用,原理与网卡直通类似,但这种方式需要主机支持IOMMU。(一种内存管理单元,它将具有直接存储器访问能力的I/O总线连接至主内存。如传统的MMU一样,IOMMU将设备可见的虚拟地址映射到物理地址)

pGPU直通方式相当于虚拟机独享GPU,硬件驱动无需修改。因为没有对可支持的GPU数量做限制,也没有阉割GPU功能性,大多数功能可以在该直通模式下无修改支持。

GPU虚拟化

值得一提的是,NCCL 和 NVIDIA 驱动程序在 GPU 虚拟机内运行时无法自动检测 NUMA 区域和 PCIe 拓扑,需要通过 NCCL_TOPO_FILE 变量手动传递 /etc/nccl.conf中的 NUMA 区域和 PCIe 拓扑文件,否则 NCCL 性能将仅以应有带宽的 50% 运行。

10 监控方案

监控面板

在监控方面,我们至少建议通过 Prometheus + Grafana 构建一个集中的监控面板,以便用户跟踪 GPU 温度、电源使用情况等BMC指标,XID错误,甚至将业务和网络统一监测。

计算节点的监控包括在每个 GPU 节点上安装一个 IPMI 和 DCGM Exporter,然后在管理节点上部署 Prometheus 与 GPU 上的 Exporter 通信,并将数据存储在数据库中。Grafana 连接到 Prometheus 对收集来的数据进行可视化呈现。

网络侧的监控类似,在这种场景下采用SONiC交换机的优势明显,因其软件环境本身就是开放的容器化架构,我们能以 docker 形式在交换机运行 exporter 取得所需设备状态数据,还可借助RESTful API调用网络能力集成进上层管理平台。

Prometheus + Grafana 构建一个集中的监控面板

另外,结合带内网络遥测(INT)能力还可对RoCE网络实现亚秒级的精细监控,用以辅助网络拥塞控制。

提供的Prometheus + Grafana 毫秒级 RoCE 监控方案

常见错误

  • 诊断消息(dmesg)两个常见 dmesg 消息是电缆被拔出以及 NIC 或者光收发器过热。
  • 静默数据损坏 (SDC)没有收到诊断消息等错误报告,但却输出错误的矩阵乘法结果。这些错误称为静默数据损坏 (SDC)。确定 GPU 上是否有该问题的最简单方法是使用 Nvidia DCGMI 诊断级别 4 工具 sudo dcgmi diag -r 4。该工具将捕获 95% 的最常见静默数据损坏问题。
  • NCCL故障 常见NCCL故障包括死锁和停滞,可能会导致训练作业暂停 30-35 分钟, 而后 PyTorch 的 NCCL watchdog 会终止整个训练作业。对此可以考虑添加电力消耗监控来检查AI作业是否正常运行。更多NCCL排障请参考:https://docs.nvidia.com/deeplearning/nccl/user-guide/docs/troubleshooting.html
  • Infiniband UFM 的错误代码 常见如 110(符号错误)、112(链接中断)、329(链接中断)、702(端口被视为不健康)和 918(符号位错误警告)。遇到上述任何错误代码,应立即联系网络技术工程师进一步调查。

11 部署验收和日常维护

集群规模的验收测试应持续至少 3-4 周,尽可能排除早期失效期出现的节点组件故障。AI训练非常依赖网络、HBM 和 BF16/FP16/FP8 张量核心,而目前常用的高性能计算测试工具,例如LINPACK(国际上使用最广泛的测试浮点性能的基准测试)不会大量使用网络,也不会占用太多 GPU 的 HBM 内存,而是仅使用和测试 GPU 的 FP64 核心。稳妥起见,我们建议验收测试尽量以模拟真实业务的方式展开。

NCCL-TEST

nccl-test 工具是 NVIDIA 开源的一项用于测试 NCCL 集合通信的工具,我们建议在正式运行业务之前先使用nccl-test来检测集合通信是否正常、压测集合通信速率等,看看否存在任何性能不足或下降。关于nccl-test日志的分析我们将在接下来的主题中展开。

日常维护

集群中最常见的问题包括收发器抖动、GPU掉线、GPU HBM 错误和 SDC等。大多数情况下,这些问题只需简单地启动物理服务器的硬重启,或者断电后重启即可解决。重新插拔收发器或清除光纤电缆上的灰尘也可以解决一些意外故障。更复杂的情况请交给厂商技术服务团队处理。


产品型号: 星融元(Asterfusion)CX864E-N (64 x 800G OSFP)
功能特性:RoCEv2, PFC, ECN, DCBX ……
应用场景:GPU算力集群,分布式存储
最后更新:2026-05-18



产品型号: 星融元(Asterfusion)CX664D-N(64 x 200G QSFP56/QSFP28/QSFP+)
功能特性:RoCEv2, PFC, ECN, DCBX ……

应用场景:分布式存储,数据中心,GPU算力集群
最后更新:2026-05-26


相关文章

星融元数据技术有限公司是领先的开放网络解决方案提供商,产品包括网络操作系统、数据中心交换机、AI智算交换机、园区交换机、开放式企业级路由和新一代网络可视化产品等。为行业企业、数据中心和云运营商提供基于通用解耦硬件和 SONiC 软件框架的全场景交钥匙网络解决方案,帮助用户构建AI时代中立、透明,易于运维、高性价比的基础网络。

?关注 @星融元Asterfusion 微信公众号
WeChat QR Code

0成本5分钟!利用开源大模型搭建本地专属AI知识库


关注星融元


你一定经历过各种通用大模型一本正经胡说八道的时候吧,AI一通丝滑输出让人真假难辨,防不胜防。这种情况被称为AI幻觉。

大模型产生幻觉不幸“翻车”的原因很大程度上是“先天不足”,例如训练时来自特定领域的训练数据就比较缺失或存在偏差等。对于企业,AI的幻觉已经成为阻碍其落地应用的严重缺陷。

我们自然想让一些企业内部私有数据也进入到大模型推理分析的过程,让其更好服务于日常业务,但出于信息安全等考量,私有数据显然不可随意上传到第三方平台。针对这种情况,将企业内部知识库和大模型连接起来构建一个本地私有化的专属的AI知识库不失为一种简易的解决方案。

构建本地私有知识库的基本步骤

1. 整理出需要模型分析的私有数据,比如文本数据(doc、csv、ppt…),音视频数据,甚至一些网址链接。

2. 通过一个嵌入模型将这些信息转换成模型能够看得懂的向量信息,即信息的向量化。

3. 将向量化的信息存储到专属的向量数据库中,构建本地知识库。

这个时候当用户提问时,我们引入的通用大模型将会结合本地知识库中所存在的信息有针对性的回答,甚至也可以专门分析本地知识库中的信息来输出。

本地私有知识库构建

本地AI知识库的安装和配置

AnythingLLM 是一款构建本地知识库的工具,能够直接读取文档并处理大量信息资源,包括文档上传、自动抓取在线文档,然后进行文本的自动分割、向量化处理,以及实现本地检索增强生成(RAG)等功能。

AnythingLLM支持几乎所有的主流大模型和多种文档类型,可定制化程度高,安装设置简单,适用于MacOS、Linux和Windows平台,也可以使用Docker安装。AnythingLLM默认通过Ollama来使用LLama2 7B、Mistral 7B、Gemma 2B等模型,也可以调用OpenAI、Gemini、Mistral等大模型的API服务。除AnythingLLM以外,近期较为热门的知识库工具还有MaxKB、RAGFlow、FastGPT、Dify 、Open WebUI 等。

01、下载并安装Ollama(用于下载各类通用大模型)

访问 https://ollama.com/download 选择所需版本

下载安装Ollama

02、安装大模型和嵌入模型

我们示例中选择的是通义千问大模型和M3e嵌入模型,大家也可以根据自己的需要选择其他模型下载。Ollama支持的模型列表及资源占用情况可从官网查阅:https://ollama.com/library

安装大模型

嵌入大模型

03、下载并安装AnythingLLM

访问 https://anythingllm.com/download 选择对应版本

下载AnythingLLM

04、配置AnythingLLM

配置参数选择Ollama

配置Ollama

Embedder选择M3e

Embedder选择M3e

向量数据库选择LanceDB(默认)

向量数据库选择LanceDB(默认)

上传私有数据并验证AI问答效果

至此,一个AI驱动的本地私有知识库的基本架构已经搭建完成。接下来我们需要创建工作区,上传各种文档格式的企业私有数据,验证是否能正常工作。

上传

上传

上传

01、csv表格

随意生成一份原始数据如下:

对话结果(对数据进行排序和筛选):

02、docx文档

原始数据是星融元AsterNOS网络操作系统的文档,其中涉及到高可靠特性的部分如下。

文档

对话结果:

结果

03、网址

星融元CX-N超低时延交换机在官网的产品详情页,涉及到产品特性的片段如下。

特性

对话结果:

检验结果

可以看到,这个本地AI知识库已经在利用我们上传的私有文本数据回答问题了,下一步您需要持续不断地丰富私有内容,让其更加智能、可靠;大型企业则更需要对其“悉心调教”,例如充分考虑本地AI推理系统的并发接入性能,在网络基础设施上进行相应调整和升级,也要关注和其他内部工具的集成。

一文读懂:企业园区无线网技术及部署指南


关注星融元


前言:无线网络直接影响整体网络性能,在当今企业网环境中,已有超过一半的数据流量通过无线信道传输,随着物联网技术的普及,无线网将承载更多的关键业务流量。企业/园区场景的无线网络值得考虑的关键因素有很多,例如终端移动性,AP 漫游能力和覆盖范围、带宽和吞吐量、延迟、信道、射频干扰等。当然,还有网络安全配置和用户认证等等。


无论是新建还是升级无线网络,在采取行动之前回顾并更新有关无线网的关键知识是绝对必要的,我们将从以下几个方面入手,希望这篇文章帮助您做出更好的选择。

  • 无线网络基础概念和参数速查
  • 无线标准/协议的演进
  • 不同无线组网模式和适用场景
    ○ 常见的园区无线组网
    ○ 新一代云化网络
  • 无线AP部署要点

无线网基础概念和参数速查

在无线通信系统中,信息可以是图像、文字、声音等。信息需要先经过信源编码转换为便于电路计算和处理的数字信号,再经过信道编码和调制,转换为无线电波发射出去。其中,发送设备和接收设备使用接口和信道连接,对于有线通信很容易理解,设备上的接口是可见的,连接可见的线缆;而对于无线通信,接口是不可见的,连接着不可见的空间,称为空口(空间接口)

无线网络分类

无线网络根据应用范围可分为个人网络、局域网、城域网和广域网。

 个人网络 局域网 城域网 广域网
协议标准 BluetoothIEEE802.11b,IEEE802.11a,IEEE802.11g, IEEE802.11nIEEE 802.16,MMDS,LMDSGSM, GPRS, CDMA, 2.5-3G-4G
传输速度 小于1Mbps1Mbps~600Mbps22+ Mbps1-7Mbps-100Mbps
覆盖范围 10m100~300m十几公里几十到几百公里
应用场景 点对点、设备对设备企业、园区、学校、酒店等网络最后一公里接入移动电话

无线射频

无线电波是由振荡电路的交变电流产生的电磁波(日常使用中也被称为射频或无线电等),它能够通过天线发射和接收,无线电波的频率范围称为频段。所有的射频设备都有灵敏度等级,即无线终端在某个信号强度之上可以正确地解释和接收无线电信号。灵敏度单位是dBm。接收灵敏度值越小,说明接收性能越好。

常见无线频段
手机 GSM:900/1800MHz,CDMA:800MHz
5G方案 移动(2.6G 160MHz)/3.3G 100MHz室内共建,电信、联通3.5G 3400-3600MHz移动:4800-4900MHz,广电4900-5000MHz
调频87.5MHz-108.0MHz(民用广播)
70MHz-87.5MHz(校园广播)
108-160MHz(业余无线电通讯)
160MHz以上是对讲机和电视伴音通信频率,对讲机常集中在400~470MHz和136-174MHz
无绳电话 45~48MHz
无线网络 2.4GHz和5GHz( Wi-Fi 7还有6GHz )
蓝牙 2.4GHz

天线传播覆盖

天线是一种变换器,是在无线设备中用来发射或接受电磁波的部件,它可以将传输线上传播的导行波和在空间中传播的电磁波相互转换。天线一般有全向和定向两种信号覆盖模式(如下图所示)。

天线传播覆盖

空间流和MIMO

无线电在同一时间发送多个信号,每一份信号都是一个空间流。通常情况下一组收发天线间可以建立一个空间流。

MIMO指多输入多输出技术,也称多天线技术,分别使用多个发射天线和接收天线,实现多发多收,成倍地提高信道容量。空间流数是决定最高物理传输速率的参数。我们常用(AxB:C)数据格式表示多天线技术支持的最大发射天线数量(A)、最大接收天线数量(B)和最大空间数据流数量(C)。当前主流的802.11ac和802.11ax协议规定一个射频最大8个空间流;大多数智能终端使用 2×2:2 或 3×3:3 MIMO 无线电。

MIMO

MIMO系统中,发射端的多个天线可以各自独立发送信号(引入发射波束成形技术使多个天线的发射信号在接收机达到相同相位,从而增强信号强度),同时在接收端用多个天线接收信号并重组原始信息。

MIMO技术让1x1的客户端也能间接从中受益

MIMO技术让1×1的客户端也能间接从中受益

传播衰减

⑴ 自由空间路径损耗

自由空间路径损耗(FSPL)是指无线电波因自然扩展导致信号强度下降,这是波传播的自然属性。我们可以通过以下近似公式算出。

FSPL=32.44+(20log 10 (f))+(20log 10 (D))

FSDL=路径损耗(dB) ;f =频率(MHz);D=天线之间的距离(km)

实际部署时我们通常使用6dB法则进行估算,即:传输距离加倍将导致信号衰减6dB。

⑵ 穿透损耗(吸收)

电磁波穿过墙体、车体、树木等障碍物,被不同材质的吸收,导致信号衰减。下表总结了常见障碍物对无线信号的影响

典型障碍物厚度(毫米)2.4G信号衰减(dB) 5G信号衰减(dB)
普通砖墙 120 1020
加厚砖墙2401525
混凝土2402530
石棉834
泡沫板834
空心木2023
普通木门40 34
实木门40 1015
普通玻璃 847
加厚玻璃 12810
防弹玻璃302535
承重柱5002530
卷帘门101520
钢板803035
电梯803035

⑶ 反射损耗

当波撞击到一个比波自身更大的光滑物体时,波可能会往另一个方向传递。当无线发射信号与接收位置需要经过多次反射才可触达,我们可以通过尝试调整信号源位置并辅以定向天线来改善通信。

⑷ 衍射损耗

由于射频信号被局部阻碍,射频信号在物体周边发生的弯曲。位于障碍物正后方的区域称为射频阴影,它可能成为覆盖死角,一般是可以通过另一个AP的无线信号去消除。

无线标准/协议的演进

WiFi与 IEEE 802.11

WiFi 通常是指基于 IEEE 802.11 标准的无线网络。“Wi-Fi”一词由Wi-Fi 联盟(WFA)创造,该联盟是一个全球性联盟,致力于促进和认证无线设备的互操作性。简单来说,Wi-Fi 是描述无线网络技术的流行术语,而 IEEE 802.11 是定义无线通信底层协议和规范的技术标准。

技术标准

WiFi6 的核心技术

根据Wi-Fi联盟的报告,Wi-Fi 6 自2019年推出以来仅用3年就在全球市场份额超过了50%,而Wi-Fi 5用了4年时间。WiFi 6 为每个用户提供更大的总带宽,总频谱和信道,能够在高并发接入的环境下为每个用户较前代技术高 4 倍的吞吐量,其高带宽、高并发、低时延、低耗电的特点为未来的智能基础设施奠定基础。

⑴ 提升吞吐量:1024-QAM调制

802.11ax采用1024-QAM正交幅度调制,每个符号位传输10bit数据(2^(10)=1024);相对于802.11ac(采用256-QAM正交幅度调制,每个符号传输8bit数据)来说,802.11ax的单条空间流数据吞吐量提高了25%。使用1024-QAM调制对信道条件有较高要求。

⑵ 改善多用户并发接入:OFDMA 和上行+下行的MU-MIMO

MU-MIMO 代表多用户的多输入多输出,它允许单个 AP 设备同时通过多个通道与多个用户进行通信,802.11ax(WiFi 6)在原有基础上进行了增强,提高了并发上行用户数量,理论上能够在上行和下行链路上为最多 8 个用户提供服务,并向单个客户端同时提供 4 个流。MU-MIMO生效需要通信双方都支持MU-MIMO。

OFDMA(正交频分多址)将信道进一步细分为可单独分配的“资源单元”,这是实现性能优势的关键。它允许多达 30 个用户同时共享一个信道,从而减少延迟、提高容量并提高效率。

OFDMA

OFDMA 和 MU-MIMO 的技术作为先进无线网络中的互补技术,可以基于所服务的应用类型来改善用户体验。

对于流媒体电影或游戏等高带宽应用,MU-MIMO 允许多个终端并发传输数据,建立高带宽网络以达到每个客户端的的最大速率。此外,MU-MIMO 使访问无线网络的队列从一个变为多个,多个设备可同时访问而无需等待。

对于即时消息、电子邮件或网页浏览等低带宽应用,分配给每个客户端的资源单元数量取决于数据包大小、终端设备限制以及流量服务质量(QoS)配置等因素,而OFDMA使用单个频段可以为多个用户提供这类低流量传输服务,起到类似“拼车”的效果,大大提高了网络资源利用率。

⑶ 降低信道间干扰:空分复用技术(SR) & BSS Coloring

当相同或相邻信道上的AP和终端检测到单个信道资源利用率偏高,噪声强度超过阈值时,则会需要排队等待(CCA功率调节机制)。

WiFi6协议里采用了空间复用和着色机制以提升信道利用率,减少排队。它可以类比为在客户端和AP之间建立起了虚拟的“高架桥”,根据不同目的地在空间上划分为互相独立不干扰的通路。不同的AP会各自给下连的终端着色(例如下图左,同为信道6的3个AP分别着色),只要信道资源没有完全占满,就依然会传输数据。

⑷ 降低能耗调度:目标唤醒时间 TWT

TWT(目标唤醒时间)最早出现在 802.11ah “Wi-Fi HaLow” 标准中,用于支持大规模物联网环境中的能效,并随着 IEEE 802.11ax 的发展而得到扩展。它使用计划机制来告诉客户端何时唤醒和睡眠,而不是让它们一直在某个频道上监听。

在 TWT 中,客户端和 AP 之间会商定一个时间表,该时间表由时间段组成。它通常包含一个或多个信标(例如几分钟、几小时,甚至长达几天)。当时间到了,客户端被唤醒,等待 AP 发送的触发帧并交换数据,然后重新进入休眠状态。AP 和终端设备会独立协商特定时间,或者 AP 可以将终端进行分组,一次连接到多个设备。

Wi-Fi 6E 及其他

在 Wi-Fi 6 标准发布一年后,由于频谱短缺,Wi-Fi 6e 应运而生,将现有技术扩展到 6GHz 频段。Wi-Fi 6E 使用 WPA3 代替传统的 WPA2 来增强安全性,但它仍然使用 802.11ax,因此它算作 WiFi 6 的附加增强功能,而不是下一代标准。

此外,Wi-Fi 的演进还包括几个小众项目。例如,毫米波 Wi-Fi (802.11ad/ay) 以极低的覆盖范围为代价,支持高达 275 Gbps 的标称数据速率。大量用户无线访问的新兴交互式应用和新服务,例如8K 流媒体、AR/VR、游戏、远程办公、工业物联网、云计算等等,正在推动行业支持更高吞吐量的无线网络。

WiFi 7 还有多远?

Wi-Fi 7在Wi-Fi 6的基础上引入了320MHz带宽、4096-QAM、Multi-RU、多链路操作、增强MU-MIMO、多AP协作等技术,使得Wi-Fi 7相较于Wi-Fi 6将提供更高的数据传输速率和更低的时延。

由于国内暂未开放6G频段给Wi-Fi使用,Wi-Fi 7特性未能完整发挥。目前Wi-Fi7实际生效的有以下几项:

  • 4096QAM:每个符号位传输 12bit 数据,相比Wi-Fi 6 提升20%
  • 16x16MIMO:由8×8提升到16×16空间流,增强高并发能力
  • 多链路传输:AP 和 客户端之间同时建立多个链路进行数据通信,可以利用多条链路进行负载分担,提升单用户峰值吞吐量;利用多条链路进行多发选收,提高链路可靠性。
  • Multi-RU:Wi-Fi 6 标准下同一周期单用户只能分配到 1 个 RU ,必然有部分 RU 资源被闲置。Wi-Fi 7 突破了限制,允许单用户同时占用多 RU,且不同大小的 RU 之间可以进行组合,使得业务延时降低25%。

  • 前导码打孔:支持把受干扰的20M信道打孔、屏蔽,然后剩余的140MHz信道继续捆绑在一起传输信息,极大提高了信道利用率;Wi-Fi 6中的做法一般是将工作信道限制在20M内传输,剩余信道受阻。

前导码打孔

常见的无线组网模式

自治AP(胖AP)

此类AP设备是最早进入无线网络市场的类型,因其可以近乎“即插即用”的方式工作且无需额外的控制器,建网成本极低,非常适合例如家庭、小型商户和办公室等小型无线网场景,正如其名,每个自治AP都可独立工作并且内置了基础的网络配置、流量控制、认证等功能的完整逻辑,所以每个 AP 都需要单独手动配置。

自治AP

瘦AP+ AC(无线AP控制器)

这种集中式方法涉及 2 个无线产品,包括 AP 和无线 AP 控制器 (AC)。AC在该解决方案中扮演着最重要的角色,AP 仅提供基本的无线电频率,在物理层传输 802.11 数据包,并通过无线接入点控制和配置协议(CAPWAP)与控制器建立通信。

AC 可处理多种功能,例如访问控制、AP 配置和监控、数据包转发、漫游、安全控制。它的工作原理就像无线网络的大脑一样,允许在一个地方配置和管理整个无线网络。这些使其适用于具有许多接入点的大型企业网络。

⑴ AC部署模式

  • 串联模式:AC 串接进网络,现在比较少见。
  • 旁路模式:AC只管理AP,旁路连接到汇聚交换机,让据包经由AC集中转发再传输到上层网络,适合在不改变现有网络的情况下对无线网络进行改造。

⑵ 数据转发模式:直接转发和隧道转发

并不是所有的数据包都需要经过集中式AC的封装和处理。某些情况下,数据包可以直接转发到网络的上层,但这仅适用于二层网络。隧道转发模式下,数据包被封装在CAPWAP隧道中,然后由AC转发到上层网络。如下图所示,CAPWAP隧道可能是控制数据隧道,也可能是业务数据隧道。

AP+AC

⑶ VLAN 规划和 AC 备份

VLAN规划主要包括两个方面,一是划分管理VLAN和业务VLAN,二是根据需要映射业务VLAN和SSID。由于是集中式部署,需要考虑冗余的设备、链路、交换策略,确保单点故障不影响整个系统功能,所以AP+AC架构中往往还需要多个AC互为备份。如果要为大量无线接入用户实现AP漫游,这对网络工程师来说可能是一个巨大的挑战。

  • 方案一:尽量在二层网络中规划漫游区域,但二层网络越大,安全性越差。
  • 方案二:建立连接两个WAC的隧道,将漫游流量传回原AC,但这会导致网络配置复杂,流量绕行,影响漫游性能。

除了配置相对复杂之外,多家供应商都有自己的专有协议,并在自己的产品中不断更改这些协议以改善通信。一般来说不同供应商的产品无法实现通信和交互。

属性胖AP瘦AP
技术模式 传统 新型,管理加强
安全性 单点安全,无整网统一安全能力统一的安全防护体系,无线入侵检测
网络管理能力 单台管理统一管理
配置管理 每个AP需要单独配置,管理复杂配置统一下发,AP零配置
自动RF调节 没有射频自动调节能力自动优化无线网络配置
漫游能力 支持2层漫游功能,适合小规模组网 支持2层、3层快速安全漫游
可扩展性 无扩展能力方便扩展,对于新增AP无需任何配置管理
高级功能 对于基于WiFi的高级功能,如安全、语音等支持能力很差可针对用户提供安全、语音、位置业务、个性化页面推送、基于用户的业务/完全/服务质量控制等等

无线Mesh网络(WMN)

无线mesh网络最初是为军事应用而开发的,它是一种由无需连接到有线端口的无线电设备组成的架构。无线Mesh网络中的每个设备都像路由器一样工作,其中各个节点不仅可以增强信号,还可以计算网络拓扑并进行路由,将长距离数据传输划分为多个短跳。当配置好主节点信息后,配置将⾃动同步给整个网络中其他的节点。

Mesh组网在难以或无法布线的情况下特别有用,例如临时的室内或室外区域、老旧历史建筑内等。目前已有不少厂商提供了面向企业和家庭的Mesh网络解决方案,不过一般来说无线 Mesh AP 不兼容多供应商。

无线Mech网络

在为较小的区域设计无线Mesh网络时,我们可能只需要将一两个Mesh AP连接到有线网络,如果范围扩大,我们仍然需要将多个Mesh AP 插入有线网络以确保网络可用性。部署Mesh AP 时,应综合考虑数量、传输距离和电源位置,并且应将它们放置得更近以获得更好的信号,因此往往需要更多的 AP 来覆盖给定的区域,成本随之上升(甚至会抵消其他方面节省的费用)。

值得注意的是该种组网方式最大的问题:带宽损耗。因为无线mesh组网会占用一半的带宽(还有无线传输本身的损耗),经过中继后的AP的吞吐量一般会下降约50%。

新一代云化园区无线组网模式

分布式网关转发

云网络很早就开始采用分布式的网关架构,将网关部署到更靠近终端的接入/边缘层。这种架构在转发路径、网络运维、表项空间、安全性等方面都有着显著的优势,也为企业网络的创新提供了一种很好的思路。

在这样的 IP Fabric 中,分布式网关意味着所有子网都存在于每个接入交换机上,它们会自动同步整个网络的端点 IP/MAC 和安全策略。这样,每个接入交换机都得到充分利用,所有跨子网流量的转发/漫游都由最近的交换机处理,而无需经过很长的路径到达集中式 AC。

更多信息请参阅:下一代园区网络,“分布式网关”实现更高效的无线漫游!

 集中式网关(隧道转发)分布式网关
转发路径业务报文经过隧道封装,经由集中式网关统一转发业务报文在本地接入交换机上转发
运维部署部署时需要大量手动配置(例如AP分组规划,单独的SSID/VLAN等)较为复杂,日后维护起来难度大开局一次性配置分布式网关信息即可,无需其他额外操作
可靠性过于集中的网关功能有压垮设备的风险,一旦出现故障,影响面大网关功能分散到所有接入交换机上;但设备发生故障对业务影响小
扩展性承载着关键性的网关业务,需要高性能大容量的设备,也容易成为限制网络规模迅速扩展的瓶颈接入层交换机仅需存储本地表项,对设备容量要求不高,更容易扩展接入规模

去CAPWAP的集中式转发

这种新型WLAN的设计同样基于云网络技术,相比上文的“分布式网关”其最大的优势在于无需改变现有的有线网络架构,只需部署一台可编程交换机接入核心交换机作为集中式网关,然后将旧AP替换为新AP即可完成无线网络的升级。

VXLAN

每台网关交换机拥有 3.2Tbps 吞吐量,轻松支持 10K+ 接入点 100K+ 无线终端。接入点通过 VXLAN 隧道与网关通信,接入点上运行多个 VTEP 以实现网络隔离。此外,接入点可以是完全基于开源技术的白盒硬件,而且相对于CAPWAP,VXLAN 技术也更加开放和标准化。

至于惯常思路里的无线AC,在新一代云化园区的无线网络中已经不存在了,取而代之的是使用云原生控制器(Cloud SDK)来统一管理园区内的有线和无线网络设备并下发配置——它既可以融合部署在网关交换机或其他本地设备上,也可以灵活部署在云端,从手机、电脑随时随地通过加密域名访问。

更多信息请参阅:园区无线网新架构:无CAPWAP的集中式转发

无线接入点(AP)部署要点

影响AP覆盖范围的因素

  • 无线电发射功率:室内AP不超过100mW/20dBm,室外AP不超过500mW/27dBm
  • 天线增益:室内天线增益一般在3-5dBi,室外天线增益一般大于10dBi
  • 部署环境:周围环境是否有强电磁场、障碍物遮挡、同类型Wi-Fi干扰、相似类型无线干扰,金属或者电子设备等干扰,相同信道频谱干扰
  • 天线和终端接收灵敏度:与终端设备有关

影响AP接入量的因素

芯片性能:同等无线速率下,如果是不同的芯片等级,能同时并发的用户数也不一样

射频:

  • 单射频AP最大接入128/512
  • 双射频AP最大接入256/1024
  • 三射频AP最大接入384/1536

用户流量模型:不同的用户流量也直接影响了能同时并发多少用户。

比如办公场景每人4M,推荐人数在30人;公共上网场景每人1M,推荐人数在60-100人

所需无线带宽估算

估算带宽时可以根据人数模糊概论(尤其适用高密场景),假如要求有1000人同时接入,实际使用时同时接入的人数在600人;接入的600人并非所有终端同时并发,算下来约会在200左右。

并发用户数=估算接入人数 * 并发比率

根据用户数与单用户速率需求分析可以得到总带宽需求:

总带宽=并发用户数 * 单用户速率

下表仅供参考(单用户速率参考)

场景 终端类型 并发比率(按100人算) 最低标准 推荐标准 良好体验标准
办公室 笔记本 20%—50% 100KB/S下行
20KB/S上行
200KB/S下行
40KB/S 上行
300KB/S下行
100KB/S 上行
酒店
会议室
商超 手机 5%—30% 20KB/S下行
20KB/S 上行
50KB/S 下行
20KB/S 上行
80KB/S 下行
40KB/S 上行
室外
应用速率要求时延要求
网页浏览 160-512Kbps 200KB 的页面需要3~10s
P2P 流媒体1Mbps 实时
IM(如微信等)32-64Kbps 2KB/Session,0.5s
Email400Kbps 100KB/Session,2s
SNS(如微博等)200Kbps 50KB/Session,2s
VoIP512Kbps 实时
游戏 1Mbps 125KB,100ms
视频服务(标清) 2Mbps实时
视频服务(高清) 4Mbps 实时

AP通用部署原则

  • 尽量保证 AP 与终端之间可视无障碍物;
  • 优先考虑 AP 面积覆盖与间距合理,后考虑接入人数要求。
  • AP 以正六边形方式呈蜂窝状部署(同楼层平面,上下楼层同样)

AP通用部署原则

AP的覆盖部署

  1. 尽量减少信号穿过障碍物数量,一般建议最多穿透单层墙体(典型120mm砖墙)设计,部分特殊场景(如石膏墙、玻璃墙体等) 可考虑穿过2层墙体
  2. 240mm厚砖墙、混凝土墙体和金属材质墙体不建议穿透覆盖,如在不满足约束条件时仍采用AP穿透覆盖方案,则会导致穿墙后 弱信号和漫游不连续问题,针对此种情况,如需保障良好覆盖和漫游,网络规划时需要基于客户墙体结构新增部署AP点位
  3. 重点区域、VIP区域尽量保证单独部署AP以保障用户体验。
  4. 路口或拐角单独部署AP,保证信号覆盖连续性(大于-65dBm ),相邻AP可建立邻居关系表,保障良好漫游体验。
  5. AP安装位置远离承重柱3米以上

几条重要规则

  1. 不要采取在走廊部署吸顶AP去覆盖房间,除非拿设备验证过。像学校宿舍这种场景,如果有运营收费更不能放走廊。
  2. 任何场景 AP 间距不少于 8 米。同信道 AP 间距不少于 15 米。
  3. AP 吸顶安装时,需考虑吊顶材质,若为无机复合板、石膏板,衰减较小,可安装于吊顶内,若为铝制板,衰减较大,建议安装在吸顶安装于天花上,或用美化天线。
  4. 空旷的空间工勘时,一定要考虑后期放什么东西。比如宿舍,前期是空的,但之后可能放了金属桌子;空旷的仓库,之后可能放了很多金属货架。这些都会导致信号覆盖风险。
  5. 部署前务必先去现场工勘测试。不要“看图说话”。
  6. 室外项目中,为了保证使用效果,需使用定向天线,少用全向天线。不确定的情况找当地客服咨询。
  7. 室外项目务必要求施工方做好防水防雷,否则容易造成故障。

本文部分内容摘录整理自互联网公开知识,仅供各位读者参考,如有错漏和理解不当之处,敬请谅解、指正。

一文揭秘AI智算中心网络流量 – 数据存储篇


关注星融元


本篇为“揭秘AI智算中心网络流量“系列的第三篇,前篇请参阅:


01、生成式AI对数据存储有哪些需求?

对于较小规模的AI模型,本地连接的磁盘存储可能就足够;进入大模型时代,则通常需要基于对象存储或并行文件系统的共享存储。一个完整的生成式AI的工作流的各阶段对存储有不同需求,具体可拆解如下:

  • 数据挖掘:需要从多个来源收集非结构化的数据,一般与混合云集成,用数据湖作为存储平台;
  • 数据准备:进行数据汇总、标准化和版本控制,关注存储的效率和灵活的数据管理能力,多采用统一存储平台;
  • 模型训练和微调:在智算中心内部,结合GPU服务器本地内存和远端的并行/分布式存储系统。因为GPU的投入巨大,需要高性能存储来高效地提供数据,并在整个过程中保持高利用率;
  • 推理阶段:该阶段旨在利用已训练好的模型实时生成输出,需要将输入模型和推理生成的文字/图片/视频流存储下来作为备份。

02、智算中心的存储网络

我们大致可将AI智算中心内部的数据存储系统进行简单的层次分类,主要包括GPU内存、存储网和存储设备。

| 图片引自 NVIDIA技术博客

| 图片引自 NVIDIA技术博客

一般来说,在存储层次结构中位置越高,其存储性能(尤其是延迟)就越快。因为本文的定位在分析网络流量,我们将聚焦于存储网络(data fabric)层次,即智算中心内部GPU服务器内存与远端存储服务器之间传输的数据

在一个计算和存储分离的部署场景中,一般推荐部署2张Spine-Leaf架构的物理网:前端网和后端网。其中,存储前端网和业务网共用一张物理网。

存储后端网则单独使用一张物理网,以保证分布式存储集群能够快速无阻塞地完成多副本同步、故障后数据重建等任务。存储节点对网络接入侧的可靠性要求相对较高,因此推荐使用双归(MC-LAG)或者多归(EVPN-Multihoming)接入。

存储网络流量主要发生在模型训练的场景,它是一种单播流量,逻辑上仅需要以存储服务器为中心的星型连接。

  • 一是从存储服务器中分批加载训练数据集到GPU内存。
  • 二是训练的中间结果(定期保存的参数和优化器状态,即Check Point)要在存储服务器共享,并通过网络读写。

⑴ 数据集加载流量分析

在一个epoch中,整个训练集被遍历一次,如果进行评估,验证集也将被遍历一次。以下假设在每个epoch中进行评估,整个数据集的存储大小为D。

  • 数据并行时,整个数据集从网络存储读取,通过scatter操作分别加载到不同的GPU上,总网络流量为D。
  • 张量并行时,整个数据集从网络存储读取,通过broadcast操作发送给所有GPU,总的网络流量为 D x G。
  • 流水线并行时,整个数据集从网络存储读取,喂给流水线上第一个GPU,总网络流量为D。
  • 3D并行时,整个数据集从网络存储读取,在数据并行维度上分配,在张量并行维度上广播,总网络流量为D x G(tp) 。

以C4数据集为例,数据集的大小约38.5 TB,假设张量并行GPU数量为8,3D并行时每个epoch中加载数据集产生的网络流量为308TB

⑵ Checkpoint存储流量分析

Checkpoint中存储了模型参数、优化器状态和其它训练状态(包括模型配置、训练的超参数、日志信息等)。优化器包含了梯度、动量和二阶矩估计等,每一种数据大小都等于模型参数。其它训练状态的大小可以忽略不计。假设模型参数为P,数据格式为BFLOAT16,优化器为Adam/AdamW,则checkpoint总大小为:

2 x P + 2 x P x 3 = 8 x P

这个checkpoint要保存在存储服务器中,虽然在张量并行、流水线并行和3D并行时,这些数据从多个GPU上通过gather操作汇聚到存储服务器,但无论如何,数据总量是一个checkpoint大小。假设每个epoch存储一次。这样,每个epoch产生的流量为:

8 x P

以Llama3-70B模型为例,假设每个epoch均存储,则产生的网络存储流量为560GB

03、存储网设备选型:RoCE还是InfiniBand

相比训练场景,在智算中心存储网传输的流量与并行计算完全不在一个量级——虽然对链路带宽要求不那么高,但仍需满足高速分布式存储业务中所需的高吞吐、低时延、无损传输特性,并灵活满足存储集群规模调整所需的高可扩展性。

NVIDIA DGX SuperPOD™ 的方案在存储网采用的是200G的InfiniBand交换机。而事实上,随着近年来AI以太网技术的进步,RoCE与IB在转发时延上的细微差异,对分布式存储业务性能几乎没有影响。结合科学的网络参数调优,我们已在多个客户现场稳定测得了运行RoCEv2协议的交换机端到端性能全面优于IB交换机的结果。RoCE交换机作为IB平替已是不争的事实。

星融元 CX664P-N 是一款专为智算/超算中心设计的超低时延RoCE交换机,凭借以下特性在存储场景中脱颖而出。

型号为CX564P-664D-N数据中心交换机产品图

CX664D-N— 业务接口:64 x 200GE QSFP56, 2 x 10GE SFP+

  • CX-N系列一贯的超低延迟特性,端到端性能可媲美IB*(*测试数据详见方案手册)
  • 12.8Tbps 的线速 L2/L3 交换性能,提供高密度 200G/100G 以太网接口,满足主流存储网络需求并兼顾未来升级空间;另有两个 10G 端口用于管理网接入
  • 支持基于 RDMA 的 NVMe-oF (全端口标配RoCEv2)和EVPN-Multihoming → 什么是EVPN多归属,和MC-LAG的区别?
  • 搭载持续进化的企业级SONiC——AsterNOS网络操作系统,其开放的软件架构通过REST API开放全部网络功能给AI智算中心管理系统,实现无损以太网的自动化极简部署 → Easy RoCE:一键启用无损以太网

除存储网之外,基于通用、解耦、高性能的以太网硬件和开放软件框架,星融元可为大模型算力中心提供10G-800G的全场景互联能力。

一文揭秘AI智算中心网络流量 – AI推理篇


关注星融元


本篇为“揭秘AI智算中心网络流量“系列的第二篇,前篇请参阅:一文揭秘AI智算中心网络流量 – 大模型训练篇 。有关数据存储流量的分析将于下篇呈现,敬请关注。

AI推理是指从经过训练的大模型中获取用户查询或提示的响应的过程。

为了生成对用户查询的完整响应,AI推理服务器从一次推理迭代中获取输出token,将其连接到用户输入序列,并将其作为新的输入序列反馈到模型中以预测下一个token。这个过程被称为“自回归”计算,此过程重复进行,直到达到预定义的停止标准。

自回归

AI推理系统如何生成一次完整的响应?

⑴ 预填充/提示(Prefill):模型从用户那里获得输入序列。基于此输入,模型预测第一个输出token。

⑵ 解码(Decode):将生成的输出token连接到输入序列。更新后的输入序列被反馈到经过训练的模型中,然后生成下一个token。

⑶ 循环:解码继续进行,每个新token都是基于所有先前token的累积序列生成的。这种将输出token自回归地馈送到输入的过程确保模型在每个步骤的输出都受到所有先前token的影响,从而使其能够保持上下文和连贯性。

⑷ 终止:当模型达到停止标准时,它会终止该过程。停止标准可以是以下之一。

  • 最大序列长度:一旦达到总token(输入和输出)数量的定义限制
  • 序列结束 (EOS) :模型生成一个特殊token,表示文本生成的结束。
  • 上下文完成:当模型确定生成的文本已根据提供的上下文得出自然且合乎逻辑的结论

AI并行推理网络流量分析

由于在预填充阶段已知整个token输入序列,因此推理加速器可以并行计算所有输入token的信息,并执行模型来预测下一个输出token。

在大模型推理时,虽然模型经过了压缩(比如4bit量化),但模型尺寸仍可能超过单个GPU的内存,这时候就需要张量并行,即使单个GPU可以容纳整个模型,张量并行可以加速推理过程。如果并发用户数较大,单个GPU来不及及时响应,就需要数据并行

让我们再次回顾AI推理的两个关键阶段:

  1. 预填充(Prefill)阶段根据用户输入的prompt,生成输入token序列,并进行批处理,计算KV(Key, Value)缓存,并生成第一个输出token。这个阶段可以认为是大模型在理解用户输入,KV缓存存储了输入序列的上下文信息(为下面的Decode阶段缓存),其特点是需要大量的计算。
  2. 解码(Decode)阶段是一个循环过程,根据之前生成的token序列和KV缓存,计算下一个token,直到生成完整的输出。这个阶段可以认为是大模型在一个字一个字的说话。由于KV缓存的密集型计算已在 Prefill 阶段完成,因此此阶段仅处理上一阶段新生成的 token。因此,计算密集程度较低;但这一步需要从 KV缓存中读取前面所有token的Key,Value,所以需要高速的内存访问。

由于以上两个阶段对GPU的需求不同,我们可以采用Prefill-Decode解耦的方式,由2个不同类型的GPU分别承担Prefill和Decode阶段的计算任务,顺序执行。这时候就需要在两个阶段间传输KV缓存。

在生产部署时,通常结合上述几种方式。相比AI训练,AI推理只有前向传播过程,计算量相对较低,但需要快速的生成下一个token。流量产生有两个来源:

  1. 每次推理在Prefill GPU和Decode GPU之间传递KV缓存;
  2. Prefill GPU集群和Decode GPU集群分别实施张量并行,产生的中间激活的传递。不会有巨量的梯度同步流量。

假设并发用户数为U,数据并行维度为G(dp),张量并行维度为G(tp),用户输入序列的平均长度为S(in)个token,模型产生输出的平均长度为S(out)个token。

在张量并行时,前向传播产生了GPU间的网络流量,各个GPU计算出的中间激活值需要合并,由all-reduce操作进行求和。

假设模型有L层,在一次推理过程中,S(in)个输入token在模型的每一layer进行2次批量合并,共2L次,而对于每个输出Token,在模型的每个layer的中均进行2次合并,共 2xS(out) x L 次。此外,在Prefill阶段和Decode阶段之间有一次KV缓存的传递。AI并行推理网络流量如下图所示:

假设模型的隐藏状态大小为H,GPU数量为G,计算激活使用的数据格式为FLOAT16(2个字节表示一个数),每次all-reduce操作的通信量为

2 x H x (Gtp-1)x Gtp

在Prefill阶段,所有输入Token,在模型的每个layer的中均进行2次批量合并,共2xS(in)xL次。在Decode阶段,对于每个Token,在模型的每个layer的中均进行2次合并,共2xS(out)xL次。因此,U个用户的并发推理,中间激活值的总网络流量为

4 x U x(Sin+Sout)x L x H x (Gtp-1)x Gtp

另外,在一次推理中,KV缓存的大小为

4 x Sin x L x H

因此,U个用户的并发推理,KV缓存传递的网络流量为

4 x U x Sin x L x H

以Llama3-120B模型为例,模型层数140, 隐藏状态大小8192,张量并行度为4,用户prompt的平均长度S(in)为256个token,产生的输出的平均长度S(out)为4096个token。则要支持100个并发用户请求所需要的推理流量为:

4 x 100 x (256 + 4096)x 140 x 8192 x (4-1)x 4 + 4 x 100 x 256 x 140 x 8192 = 21.896TB

其中,KV缓存传递的流量虽然不大,每个用户约1.17GB,但需要在10ms左右的时间内一次传递完成。如果用1个800G端口传递,最快需要11.7ms。

AI推理对网络的需求

超高频率

AI推理流量虽然远小于训练时的网络流量,但值得注意的是,推理需要在很短的时间内完成,每个token在每一层产生2次流量,并要求在极短时间内传输完毕。假设至少要达到100token/s的推理速度,并行加速比为90%,那么每个token的推理速度要小于1ms,KV缓存需要在10ms左右完成。整个网络吞吐量应大于

4 x 100 x 140 x 8192 x (4-1)x 4/0.001 + 4 x 100 x 140 x 8192/0.01 = 5551GB/s 44.4Tbps

严格时间同步

无论是训练还是推理流量,都具有非常严格的周期性规律。基于木桶原理,如果GPU的时钟不同步,将造成同样的计算量花费不同的时间,计算快的GPU不得不等待计算慢的GPU。

开放与兼容性

AI推理进程涉及应用已训练好的AI模型进行决策或识别。对比AI训练,AI推理芯片门槛相对更低,我们的确也看到推理领域萌生出了开放生态的雏形,不少新兴初创企业加入竞争,涌现出基于不同算力架构的技术方案。

另一方面,在实际生产部署中的AI推理业务往往会与前端的业务/应用网络形成紧密配合,经由现有数据中心和云网络基础设施对外提供服务。

这便要求基础设施具备相当的开放性——网络不但要连接底层的异构算力(GPU、CPU、NPU)系统,还需要实现与上层管理系统的对接集成,例如与基于K8s的算力调度平台、已有的云管平台等等。

随着大模型的应用不断深化,AI算力部署将从训练场景逐步转向推理,推理需求也逐渐从云端迁移至边缘/终端,并呈现出垂直行业定制化的趋势。在云-边-端之间,我们需要构建一个更为均衡、通用化的网络基础设施体系。

在已被用户场景充分验证的数据中心开放云网能力之上(BGP、VXLAN、Calico容器路由、RoCE、NVMe-oF等),星融元推出的 星智AI 网络解决方案基于通用、解耦、高性能的以太网硬件和开放的SONiC软件框架,为AI智算中心提供10G-800G速率的以太网交换机,灵活支持单一速率或混合速率交换机组网,在保持极致性能的同时可编程、可升级,帮助客户构建高性能的AI智算中心网络,提供用于AI训练、推理、分布式存储、带内外管理等场景的互联能力。

  • 最大支持64个800G以太网接口,共51.2T交换容量
  • 超低时延,在800G端口上实现业界最强的560ns cut-through时延
  • 全端口标配支持RoCEv2
    200+MB大容量高速片上包缓存,显著减小集体通信时RoCE流量的存储转发时延
  • Intel至强CPU + 大容量可扩展内存,运行持续进化的企业级SONiC——AsterNOS网络操作系统,并通过DMA直接访问包缓存,对网络流量进行实时加工
  • INNOFLEX可编程转发引擎:可以根据业务需求和网络状态实时调整转发流程,最大程度避免网络拥塞和故障而造成的丢包
  • FLASHLIGHT精细化流量分析引擎:实时测量每个包的延迟和往返时间等,经过CPU的智能分析,实现自适应路由和拥塞控制
  • 10纳秒级别的PTP/SyncE时间同步,保证所有GPU同步计算
  • 开放的软件架构(生产就绪的SONiC,AsterNOS)通过REST API开放全部网络功能给AI智算中心管理系统,与计算设备相互协同,实现AI算力集群的自动化部署

AI Open Ecology

一文揭秘AI智算中心网络流量 – 大模型训练篇


关注星融元


前言:自2017年起,AI模型的规模每半年翻一番,从初代Transformer的6500万增长到GPT-4的1.76万亿,预计下一代大语言模型将达到10万亿规模。另一方面,用于模型训练的数据量持续增长,如C4数据集,原始数据量累计超过9.5PB,每月新增200-300TB,目前经过清洗加工后的数据集大小约38.5 TB,训练样本数364.6M。进一步,随着多模态大模型的兴起,训练数据从单一的文本过渡到图像和视频乃至3D点云,数据规模将是文本数据的1万倍以上。

AI模型的规模巨大并持续快速增长,不仅将带来数据中心流量的指数型增长,独特的流量特征也将为数据中心网络带来崭新的需求。

深入分析AI大模型在训练、推理和数据存储流量将帮助数据中心建设者有的放矢,用更低的成本,更快的速度、更健壮的网络为用户提供更好的服务。

本篇我们将聚焦于介绍AI大模型训练场景下的网络流量,AI推理和数据存储场景会在接下来的文章中呈现,敬请关注。

AI model

AI训练程序首先将模型参数加载到GPU内存中,之后将经历多个epoch(即使用所有训练集对模型进行一次完整训练),每个epoch的处理过程可以简单描述为4步:

  1. 加载训练数据,在每个epoch中,根据batch size将整个数据集分为若干个mini-batch,分批次加载训练数据,直到遍历整个训练数据集。
  2. 训练,包括前向传播、计算损失、反向传播和参数/梯度更新,每个mini-batch都进行上述步骤。
  3. 评估,使用评估数据集对模型的指标进行评估。这一步是可选的,可以在整个训练完成后单独进行,也可以间隔若干个epoch进行一次。
  4. 保存checkpoint,包括模型状态、优化器状态和训练指标等。为了减少存储需求,通常经过多个epoch后保存一次。

在大模型出现之前,整个过程在可在一台AI服务器内部完成,训练程序从服务器本地磁盘读取AI模型和训练集,加载到内存中,完成训练、评估,然后将结果存储回本地磁盘。虽然为了加速训练,也会采用多块GPU同时训练,但所有的I/O均发生在一台AI服务器内部,并不需要网络I/O。

AI大模型训练的网络流量有哪些?

进入大模型时代,AI训练的流量路径和其网络需求发生了巨大变革。

首先是模型的参数规模超出了单个GPU的内存,采用GPU集群协同计算,则需要相互之间通信以交换信息,这类信息包括参数/梯度、中间激活值等。

庞大的数据集被所有GPU共享,需要集中存放到远端的存储服务器中通过网络调用,分批加载到GPU服务器上。此外,定期保存的参数和优化器状态也需要通过存储服务器共享,在每个训练epoch中,都要通过网络读写数据。

由此,AI大模型训练的网络流量可分为以下两类:

  • 第一类是GPU之间同步梯度和中间激活的网络流量,它发生在所有GPU之间,是一种广播式流量,逻辑上需要所有GPU全连接。
  • 第二类是GPU和存储服务器之间的流量,它仅仅发生在GPU和存储服务器之间,是一种单播流量,逻辑上仅需要以存储服务器为中心的星型连接。

并行训练技术

其中,GPU之间的网络流量与传统数据中心内部流量迥然不同,这与AI大模型的训练方法息息相关——并行训练技术。

并行训练:AI智算中心的主要流量来源

当前广泛应用于AI训练并行计算模式主要有以下三类:

数据并行将不同的样本数据分配给不同的GPU,以加快训练速度;用在主机之间
张量并行将模型的参数矩阵划分为子矩阵,并分配到不同的GPU上,以解决内存限制并加速计算。一般用在主机内部。
流水线并行将模型分为多个阶段,每个阶段分配给不同的GPU,以改善内存利用率和资源效率。一般用在主机之间

并行训练

常见的集合通信流量模式(如下图)

Collective communication

1.数据并行(Data Parallelism)

在数据并行时,主要的网络流量来源于梯度同步,它发生在每次mini-batch处理之后,由一个all-reduce操作计算平均值。理想情况下,所有GPU全连接,每个GPU给其它G-1个GPU单独发送数据,共需发送G x(G-1)份数据。

FSDP(完全分片数据并行)是一种改进的数据并行技术,旨在优化内存使用和通信效率。它通过将模型参数和梯度在多个GPU之间分片(shard)存储,实现更高效的内存利用和通信。

在FSDP时,网络流量来自前向传播的参数收集以及反向传播中的梯度同步。

前向传播的参数收集由all-gather操作完成,all-gather的通信复杂度与all-reduce相同。

后向传播的梯度同步由all-reduce操作完成,由于每个GPU的参数只有原来的1/G,一个epoch中总的网络流量只有普通数据并行的1/G。

2.张量并行(Tensor Parallelism)

在张量并行时,模型参数分布到G个GPU上,每个GPU只存储1/G参数。网络流量主要来自前向传播过程的中间激活值的传递以及反向传播过程中的梯度同步。

前向传播中,各个GPU计算出的中间激活值需要合并,由一次all-reduce操作进行求和。对于每个Token,在模型的每个layer的中均进行2次合并,共2xTxL次通信。

反向传播中,梯度需要在GPU之间同步,这种在每一层的处理中发生2次,由all-reduce操作将各个GPU上梯度求和。这种同步发生在每个mini-batch的每个layer的处理过程中。共2×N×L次通信。

3.流水线并行(Pipeline Parallelism)

在流水线并行时,网络流量主要来自前向和反向传播过程的中间激活值的传递。与张量并行不同,这些流量的传递发生在模型的前后两个阶段之间,使用Point-to-point通信而非all-reduce操作,并且频率也大大减小了。

综上,在三种并行方式中,张量并行的网络流量最大、频率最高,流水线并行的流量最低,数据并行的通信频率最低。如下表所示,P为模型参数,T为token数,L为模型层数,H为隐藏状态大小,G为GPU数量,N为mini-batch的数量,采用BFLOAT16数据格式,每个参数占2个字节。在每个epoch过程中:

 流量模式后向传播总网络流量反向传播同步次数前向过程总网络流量前向过程传递次数
数据并行all-reduce2 × N × P × G × (G-1)100
FSDPall-gather + all-reduce2 × N × P × (G-1)L2 × N × P × (G-1)L
张量并行all-reduce4 × N × P × L × (G-1)2 × L4 × L × T × H × (G-1) × G2 × L × T
流水线并行Point-to-point2 × T × H × (G-1)G-12 × T × H × (G-1)G-1

以具有80层(L)的Llama3 70B(P)模型和C4数据集为示例计算:采用BFLOAT16数据格式,每个参数占2个字节,隐藏层维度设为8192(H),使用8个GPU(G)进行数据并行。C4数据集token(T)总数约156B,样本数364.6 millions;batch size为2048,则每个epoch包含约178,000个mini-batch(N)

计算可得每个epoch过程中:

 反向传播总网络流量(PB)反向传播同步次数前向过程总网络流量(PB)前向过程总网络流量
数据并行1396 PB100
FSDP1758017580
张量并行2662216021840160*156*10^9
流水线并行17.9717.97

3D并行技术下的网络流量

数据并行、张量并行和流水线并行三个技术通常会组合起来使用,可进一步提高训练大模型时的效率和可扩展性。这时候,GPU也就按照这三个维度组成了GPU集群。

3D并行技术

假设共有G(tp)×G(pp)×G(dp) 个GPU组成的3D并行阵列,全部P个参数将分割为G(tp)×G(pp)份,每一份大小为P/G(tp)/G(pp)。在模型并行、流水线并行和数据并行三个维度上都存在网络流量。接下来我们将深入到每个epoch的训练过程,分别计算不同阶段的网络流量组成和规模。

3D并行技术

1.反向传播中的网络流量

在每个mini-batch中,反向传播时的梯度同步分为:

  1. 张量维度上的梯度同步,在模型的每一层和数据维度的每一组中进行,总共 LxG(dp) 次,每次包含2个all-reduce操作。
  2. 数据维度上的梯度同步,在流水线维度的每个阶段和张量维度的每一组中进行,总共 G(tp)xG(pp) 次,每次包含1个all-reduce操作。

如下图所示:

反向传播中的网络流量

这样,在一个epoch中,梯度同步的总网络流量为:

4xNxP/Gtp/GppxGtpx(Gtp-1)xLxGdp+2xNxP/Gtp/GppxGdpx(Gdp-1)xGtpxGpp=2xNxPxGdpx[2xLx(Gtp-1)/Gpp+(Gdp-1)]

3.流水线并行维度的中间激活梯度传播,流量为:

2xTxHx(Gpp-1)

因此,在一个epoch中,整个反向传播的总流量为:

2xNxPxGdpx[2xLx(Gtp-1)/Gpp+(Gdp-1)]+2xTxHx(Gpp-1)

2.前向传播中的网络流量

前向传播时,中间激活的传递依次在张量并行、流水线并行维度上交替进行,其中张量并行的激活传递每次包含2个all-reduce操作。

如下图,以一个Token的前向传播所示:

Token的前向传播

因此,在一个epoch中,前向传播总网络流量为:

4xTxHxLxPxGtpx(Gtp-1)+2xTxHx(Gpp-1)

即:

2xTxHx(2xLxGtpx(Gtp-1)+(Gpp-1)

由此,我们以Llama3-70B模型为例,采用8路张量并行 x 8路流水线并行 x 16路数据并行的模式,在共1024个GPU上进行训练,一个epoch产生的总流量约为85EB。如此庞大的流量规模,如果用1个交换容量为51.2T的交换机,24小时满负荷运行,需要约20天才能传输完毕。

考虑到一次预训练通常包含100个左右epoch,如果需要在100天完成训练,至少需要20台51.2T交换机来传输训练过程产生的数据。

AI训练对智算中心网络的要求

通过以上分析和计算,我们可以得出一个典型的AI智算中心对计算网的核心需求。

  • 超高带宽:一个epoch就会产生85EB的数据量,相当于整个互联网2.5天的流量。
  • 超低时延:一个训练样本的处理,就会产生100GB以上的数据,并需要在小于1毫秒的时间传输完毕。相当于1000个800G接口的传输速度。
  • 集合通信:GPU服务器之间的All-reduce, All-gather操作带来广播式流量,在上万个GPU之间,也就是上亿个GPU-GPU对之间同步。
  • 零容忍丢包:基于木桶原理,在集体通信过程中,仅仅是一对GPU之间流量的丢包和重传,也会造成整个集体通信的延迟,进而造成大量GPU进入空闲等待时间。
  • 严格时间同步:同样基于木桶原理,如果GPU的时钟不同步,将造成同样的计算量花费不同的时间,计算快的GPU不得不等待计算慢的GPU。

星融元CX-N系列交换机正是为智算中心AI训练场景而生的超低时延以太网交换机——在保持极致性能的同时,实现可编程、可升级的能力,与计算设备形成协同,共同打造10万级别的计算节点互联,将数据中心重构为可与超级计算机媲美的AI超级工厂。

  • 最大支持64个800G以太网接口,共51.2T交换容量。
    超低时延,在800G端口上实现业界最强的560ns cut-through时延。
  • 全端口标配支持RoCEv2,支持Rail-only,全连接Clos以及200G/400G混合组网,灵活适应不同的算力中心建设方案
  • 200+ MB大容量高速片上包缓存,显著减小集体通信时RoCE流量的存储转发时延。
  • Intel至强CPU + 大容量可扩展内存,运行持续进化的企业级SONiC——AsterNOS网络操作系统,并通过DMA直接访问包缓存,对网络流量进行实时加工。
  • INNOFLEX可编程转发引擎,可以根据业务需求和网络状态实时调整转发流程,最大程度避免网络拥塞和故障而造成的丢包。
  • FLASHLIGHT精细化流量分析引擎,实时测量每个包的延迟和往返时间等,经过CPU的智能分析,实现自适应路由和拥塞控制。
  • 10纳秒级别的PTP/SyncE时间同步,保证所有GPU同步计算。
  • 开放API,通过REST API开放全部功能给AI数据中心管理系统,与计算设备相互协同,实现GPU集群的自动化部署。

Easy RoCE:在SONiC交换机上一键启用无损以太网

EasyRoCE 工具包

EasyRoCEToolkit封面图


关注星融元


RDMA(远程直接内存访问)技术是一种绕过 CPU 或操作系统,在计算机之间直接传输内存数据的技术。它释放了内存带宽和 CPU,使节点之间的通信具有更低的延迟和更高的吞吐量。目前,RDMA 技术已广泛应用于高性能计算、人工智能工作负载、存储和许多其他场景。

1、RoCEv2对网络的需求和挑战

RoCEv1 基于以太网链路层实现,通过交换机上的流量控制技术确保物理层的可靠传输。RoCEv2 在 UDP 层之上实现,弥补了 InfiniBand 的一些局限性,支持更广泛的 RDMA 应用。

与 TCP 协议相比,UDP 速度更快,消耗的资源更少,但没有TCP的滑动窗口和确认响应等机制来确保可靠传输。在 RoCEv2 网络中,如果出现数据包丢失,网卡将丢弃所有收到的数据包,而发送方需要重新传输所有后续数据包,导致网络传输性能大幅下降。因此,我们通常使用 PFC(优先级流量控制)和 ECN(显式拥塞通知)等功能来保证可靠性。

在以太网交换机上配置上述功能需要熟悉 QoS 机制、配置逻辑和相关命令行。对于长期为客户配置 RoCEv2 网络的工程师来说,这可能并不困难。但对于大部分从事高性能计算和存储领域的技术人员,他们通常专注于服务器侧的相关技术,这种相对复杂的,但又必须调通的网络配置给他们带来了很多麻烦,甚至以往运维过IB网络的工程师也需要花时间学习相关知识。

2、在SONiC交换机上用常规步骤配置无损以太网

现在让我们快速回顾一下如何在SONiC交换机上按常规方法配置 RoCEv2 无损以太网。这里使用的是星融元CX-N系列超低时延交换机,搭载SONiC企业级发行版AsterNOS3.1 R0405P01版本,但没有使用其上的 EasyRoCE 功能。

在部署 RoCEv2 网络时,务必首先确认网络硬件条件:低延迟网络交换机需要能支持 PFC 和 ECN 等功能,服务器侧的网卡也需要支持 RoCEv2 。常规步骤下:

  1. 启用和取消需要分别配置 PFC 和 ECN。
  2. 故障排除或状态检查通常需要进入不同的命令行视图并多次执行 “show “命令,以确定当前队列映射、缓冲区、启用的队列、阈值、队列吞吐量、暂停和 CNP 触发器。

第一步,确保服务器网卡工作在 RoCEv2 模式下,为业务流量配置 PCP 或 DSCP,并启用 ECN。


#设置网卡RDMA CM的工作模式
[root@server ~]# cma_roce_mode -d mlx5_0 -p 1 -m

#设置网卡的优先级类型为DSCP
[root@server ~]# mlnx_qos -i enp1s0f0 –trust=dscp
DCBX mode: OS controlled
Priority trust state: dscp

#在队列3上开启PFC
[root@server ~]# mlnx_qos -i enp1s0f0 -f 0,0,0,1,0,0,0,0

#在队列3上开启DCQCN
[root@server ~]# echo 1 > /sys/class/net/enp1s0f0/ecn/roce_np/enable/3
[root@server ~]# echo 1 > /sys/class/net/enp1s0f0/ecn/roce_rp/enable/3

#设置CNP DSCP
[root@server ~]# echo 48 >


然后,在交换机端口配置以启用 PFC 和 ECN 功能并指定队列。您需要在以太网交换机的指定队列(需与服务器上的队列匹配)上启用 PFC 和 ECN,并调整缓冲区和阈值。


# 设置PFC门限值
sonic(config)# buffer-profile pg_lossless_100000_100m_profile
sonic(config-buffer-profile-pg_lossless_100000_100m_profile)# mode lossless dynamic -2 size 1518 xon 0 xoff 46496 xon-offset 13440
sonic(config-buffer-profile-pg_lossless_100000_100m_profile)# exit

# 在3、4队列开启PFC功能(AsterNOS的PFC功能默认使能3、4队列,无需配置)
sonic(config)# priority-flow-control enable 3
sonic(config)# priority-flow-control enable 4
sonic(config)# exit

# 设置ECN门限值
sonic(config)# wred roce-ecn
sonic(config-wred-roce-ecn)# mode ecn gmin 15360 gmax 750000 gprobability 10
sonic(config-wred-roce-ecn)# exit

# 配置Diffserv map
sonic(config)# diffserv-map type ip-dscp roce-dmap
sonic(config-diffservmap-roce-dmap)# ip-dscp 48 cos 6

# 配置Class map
sonic(config)# class-map roce-cmap
sonic(config-cmap-roce-cmap)# match cos 3 4
sonic(config-cmap-roce-cmap)# exit

# 配置Policy map
sonic(config)# policy-map roce-pmap
sonic(config-pmap-roce-pmap )# class roce-cmap
sonic(config-pmap-c)# wred roce-ecn
sonic(config-pmap-c)# priority-group-buffer pg_lossless_100000_100m_profile
sonic(config-pmap-c)# exit
sonic(config-pmap-roce-pmap )# set cos dscp diffserv roce-dmap
sonic(config-pmap-roce-pmap )# exit

# 进入以太网接口视图,绑定策略,将RoCE网络配置在接口上使能
sonic(config)# interface ethernet 0/0
sonic(config-if-0/120)# service-policy roce-pmap


3、使用AsterNOS上的Easy RoCE快捷配置无损以太网

星融元在 AsterNOS 上推出了 “EasyRoCE” 功能,该功能将无损以太网相关的配置命令行进行了封装和模板化,大大简化了RoCEv2网络配置和部署流程。请注意,以下命令行仅简单展示交换机上与该功能相关的部分关键配置,完整的验证演示流程请参考文末视频

一键启用无损以太网

一键RoCE

故障排除或状态检查

AsterNOS 的 Easy RoCE 功能支持 show roce 命令行,用于一站式查看全局或接口视图的RoCE 配置和计数,以及清除所有配置和计数。

# 检查RoCE配置
sonic# show qos roce

故障排除

# 查看特定接口的计数
sonic# show counters qos roce interface 0/0 queue 3
# 清除全部计数
sonic# clear counters qos roce

状态检查

自动化配置和网络可见性

上述命令可帮助您快速配置无损以太网,如果您需要微调参数,Easy RoCE也支持自定义更改设备提供的默认模板,该模板也可通过上层管理平台向设备下发。

基于 AsterNOS 的开放式架构,我们还开发了一个容器化部署的 roce_exporter,用于提取设备 RoCE 相关信息,并与 Prometheus 无缝对接以提高网络可见性。

自动化配置

EasyRoCEToolkit封面图

  • EasyRoCEToolkit封面图

实战演练:一文教你将交换机纳入K8s,对容器进行纳管


关注星融元


随着云计算的发展和云原生应用的兴起,容器技术成为一种流行的应用部署和管理方式。容器化应用程序具有轻量、可移植和可扩展的特点,能够快速部署和运行在不同的环境中。Kubernetes作为一个容器编排平台,为云原生应用的部署、管理和自动化提供了强大的支持,因此得到了广泛的关注和采用。

AsterNOS由于其系统的开放性,能够提供计算资源给用户以部署容器化服务。在客户拥有K8s管理集群的条件下,可以通过K8s纳管AsterNOS设备,将第三方应用部署在AsterNOS上,从而简化应用程序的管理和运维过程。通过使用K8s进行容器编排和自动化管理,便能实现应用的自动伸缩、自动恢复和自动升级,减少了人工干预和操作的工作量。可以提高运维效率,降低运维成本,并提供更好的应用程序可用性和稳定性。

流程图

配置K8s之前,先给读者们讲个故事:

在K8s诞生时,CNCF(云原生计算基金会——主导了K8s项目)便致力于推行一个标准的容器对接方案CRI,符合该容器标准的容器技术能够被K8s纳管,但是docker当时已经作为市场主流方案被接受,因此不符合该标准。出于市场原因K8s最开始在内部运行了名为docker-shim的垫片程序作为与docker的临时对接方案,在1.24版本后,K8s便放弃了与docker的兼容工作,将该垫片剥离出去。这方面工作就由Mirantis公司(docker母公司)接手,开发出名为cri-dockerd的垫片程序进行兼容工作。自此,如果想使用K8s管理docker,便需要使用一个名为cri-dockerd的容器运行时作为中间垫片。


因此,方案整体采用docker + cri-dockerd + K8s 的架构进行部署验证。

方案主体

可以通过两种方式将CX-N作为K8s集群中的工作节点:

  • CX-N作为普通node节点纳入集群,在此方案中K8s中的kube-proxy以及kubelet作为必要组件会运行在工作节点中。该方案所占资源更多但是更加通用,能够实现K8s所有的功能。
  • 将CX-N作为边缘设备纳入集群,该方案使用kubeedge组件,在主节点启用cloudcore,边缘节点启动edgecore加入主节点。此方案所占用性能更低,但是如果将该节点当作普通node来使用可能会出现兼容性以及功能方面的缺失问题。

组网拓扑

1、IP规划

名称IP
K8s-master10.230.1.26/24
CX532P-N10.230.1.10/24
CX308P-N10.230.1.21/24
Pod-cidr10.244.0.0/16
Service-cidr10.96.0.0/12

2、kubeedge方式部署

kubeedge方式部署

(1)软件环境

机器名称版本
K8s-masterLinuxUbuntu 20.04.6 LTS
dockerdocker ce:26.0.0
containerd:1.6.28
cri-dockerv0.3.11
keadmv1.16.1
kubeedgev1.16.1
kubeadm、kubelet、kubecliv.1.27.6
flannelv0.24.4
CX532P-Ndockerdocker ce:26.0.0
containerd:1.6.28
cri-dockerv0.3.11
keadmv1.16.1
kubeedgev1.16.1
cni-pluginv1.4.1

(2)最终效果

在主节点上显示节点信息:

节点信息
节点信息

显示容器信息:

master节点容器信息
master节点容器信息

在CX-N设备上显示容器信息:

node节点容器信息
node节点容器信息

3、node方式部署

(1)软件环境

机器名称版本
K8s-masterLinuxUbuntu 20.04.6 LTS
dockerdocker ce:26.0.0
containerd:1.6.28
cri-dockerv0.3.11
kubeadm、kubelet、kubecliv.1.27.6
flannelv0.24.4
CX532P-Ndocker
docker ce:26.0.0
containerd:1.6.28
cri-dockerv0.3.11
kubeadm、kubelet、kubecliv.1.27.6
flannelv0.24.4

(2)最终效果

master节点容器信息
master节点容器信息

node节点容器信息
node节点容器信息

4、结论

两种方案对比:

 kubeedge节点普通K8s node节点
功能边缘计算能力,能在边缘设备上运行容器化应用和进行边缘计算完整的容器编排和管理能力,适用于云端和数据中心环境
生态支持生态对比普通Kubernetes有所不足成熟的生态系统和广泛的社区支持
设备边缘设备和边缘计算基础设施的支持普通计算节点
网络要求离线工作支持,能在无网络连接的情况下继续工作需要高速稳定的网络连接和可靠的云端基础设施
性能占用边缘设备的资源限制可能影响应用程序的性能和可扩展性性能占用略高,不适合特定于边缘计算场景的要求
部署管理部署和管理边缘节点更复杂部署管理较为简单
资源控制node资源控制能力不足完善的pod,namespace以及node资源控制管理能力

总的来说,kubeedge是专属于为边缘计算场景设计:

  1. 边缘计算环境:能够在边缘设备上运行容器化应用和进行边缘计算。因此,KubeEdge 特别适用于需要在边缘设备上进行实时数据处理、低延迟计算或离线工作的场景。
  2. 边缘数据处理:要求边缘设备具有本地数据处理能力,可以减少数据传输到云端的延迟和带宽消耗。这使得 KubeEdge 适用于需要实时数据处理、减少云端数据传输、保护数据隐私等场景,如物联网应用、视频监控、智能交通等。
  3. 离线工作支持:即使在边缘设备失去网络连接的情况下,仍然能够继续工作,适用于偏远地区或断网环境下的场景。

而普通的K8s节点更适用于如下场景:

  1. 云端和数据中心环境:节点具备完整的容器编排和管理能力,适用于在云端和数据中心部署和管理大规模的容器化应用。
  2. 易于扩展和管理的场景:普通 Kubernetes 节点在扩展性和管理性方面具有优势,可以轻松地扩展和管理大规模的集群,适用于需要高度可扩展性和灵活性的场景。
  3. 依赖云端资源的场景:普通 Kubernetes 节点通常依赖于云端的弹性和资源来处理工作负载,适用于需要利用云端资源来处理应用程序的场景。
  4. 广泛的生态系统和社区支持:普通 Kubernetes 在生态系统和社区支持方面非常强大,有着广泛的工具、插件和文档资源,适用于需要成熟的生态系统和广泛的社区支持的场景。

通过以上两种方式,星融元AsterNOS设备上能够运行K8s容器,想要自行配置体验?方案获取:解决方案-基于Kubernetes的AsterNOS资源管理方案

相关文章

大型语言模型(LLMs)是怎样“学习”的?一封给网络工程师的大模型指南


关注星融元


数字时代,人工智能(AI)及其相关技术正日益成为许多领域的热门话题。其中,生成式人工智能(Gen AI)和大型语言模型(LLMs)引起了广泛的兴趣和讨论。然而,尽管这些术语在科技界和专业领域中频繁出现,网络工程师对其的理解却不多。

什么是生成式人工智能和大型语言模型?本文将为大家介绍大型语言模型和生成式人工智能的基本概念、应用领域及大语言模型的运行原理,阅读本文后您将更全面地了解这些领域的前沿技术,我们一同踏上这段探索新领域的科普之旅吧!

什么是生成式人工智能和大型语言模型?

“生成式人工智能(Generative AI,一般简称为Gen AI)”是一种人工智能技术,专注于创造或生成新的内容,例如图像、文本或音乐。这些内容不是直接复制或派生自现有的示例,而是由计算机自己创造的。生成式AI的一个重要应用是生成文本,比如自动写作、诗歌创作或对话生成。

“大型语言模型(Large Language Models,LLMs)”是一类生成式AI,它们通过深度学习算法在大量自然语言数据上进行训练。这些模型学习人类语言的模式和结构,并能够对各种书面输入或提示生成类似人类的回应。最近的LLMs表现出了接近人类的水平,例如GPT-3.5,它能够产生几乎完美的文本回应。

这些近乎完美的类人化回应,包括来自chatGPT和其他最近的LLMs,得益于模型架构的进步。这些模型采用高效的具有数十亿个参数的深度神经网络(DNNs)经过大规模数据集的训练得出,其中大部分参数被用于训练和推理的矩阵权重。而训练这些模型的浮点运算次数(FLOP)几乎与参数数量和训练集大小成线性关系。这一系列运算是在专门用于矩阵运算的处理器上执行的,例如图形处理单元(GPUs)、张量处理单元(TPUs)和其他专用的AI芯片等。GPU、TPU、AI加速器以及它们之间的通信互联技术的进步让庞大模型训练成为现实。

LLMs有哪些应用?

大型语言模型(LLMs)具有许多用例,几乎每个行业都可以从中受益。不同的组织可以根据自身的特定需求和领域对模型进行微调。微调是指在特定数据集上对预先存在的语言模型进行训练,使其更专业化并适应特定任务。通过微调,组织可以在利用这些训练模型预先存在能力的同时,将其调整得能够满足自己得独特需求,这让模型能够获取领域特定的知识,从而提高其生成组织用例所需输出的能力。通过微调的模型,组织可以在多个用例中使用LLMs。

例如,根据公司文档进行微调的LLMs可用于客户支持。LLMs可以通过创建代码或支持他们创建部分代码来帮助软件工程师。当与组织的专有代码库进行微调时,LLMs有可能生成类似于并符合现有代码库的软件。

LLMs的众多用例包括用于评估客户反馈的情绪分析、将技术文档翻译成其他语言、总结会议和客户电话以及生成工程和营销内容。

pictures

随着这些LLMs的规模持续呈指数级增长,对计算和互连资源的需求也显着增加。只有当模型的训练和微调以及推理有足够成本效益时,LLMs才会被广泛采用。

LLMs如何使用深度学习算法进行训练?

为了使用自然语言文本训练LLM,通常需要收集大量数据,包括网络抓取(爬取网页)、维基百科、GitHub、Stack Exchange、ArXiv等。大多数模型通常使用开放数据集进行训练。这些数据集中的大量文本首先会进行标记化,通常使用字节对编码等方法。标记化将来自互联网的原始文本转换为整数序列(标记,tokens)。一个标记(唯一整数)可以表示一个字符或一个单词,甚至可以是单词的一部分。例如,单词“unhappy”可能会被分成两个标记——一个表示子词“un”,另一个表示子词“happy”。

编码

比如这段文本先被标记化,再被编码化

根据数据集的不同,可能会有成千上万个唯一标记,数据集本身可能映射到数千亿个标记。序列长度是模型在训练过程中预测下一个标记时要考虑的连续标记的数量。GPT-3和LLaMA(Meta的LLM)的序列长度约为2000。一些模型使用的序列长度甚至达到10万。表1比较了GPT-3和LLaMA模型的训练参数。

为了训练模型,标记被分成大小为batch_size(B)x序列长度的数组,然后将这些批次馈送给大型神经网络模型。训练通常需要几周,甚至几个月,并且需要大量的GPU集群。

模型参数 GPT-3 LargeLLaMA
词汇量大小 50,25732,000
序列长度 2,0482,048
最大训练模型参数 1750亿650亿
训练数据集中的标记数3000亿1到1.3万亿
GPU数量10,000 x V100 GPUs2,048 x A100 GPUs
训练时间一个月21天

一旦基础模型训练完成,通常会进行监督微调(Fine-Tuning,SFT)。这是一个可以让LLMs扮演助手角色,回答人们提示问题的重要步骤。在有监督微调中,人们会创建一个精心策划的数据集(数量较少但质量很高的数据集),其中包含提示和响应的形式,然后使用这个数据集重新训练基础模型。经过训练的SFT模型会成为一个能对用户提示作出类似人类回应的助手。

以上是对LLMs的简单解释,接下来将直接讲述LLMs的模型计算过程。(敲黑板,上强度了!)

模型计算

一个具有1750亿参数的模型通常需要超过1TB的内存来存储参数和计算过程中的中间状态。它还需要存储检查点的训练状态(以防在训练迭代过程中遇到硬件错误)。一万亿个标记通常需要4TB的存储空间。像Nvidia的H100这样的高端GPU具有80GB的集成HBM内存(如果想用H100装下一个一万亿标记的模型,需要4TB➗80GB=51.2张卡)。一个GPU的内存是无法容纳模型参数和训练集的。

根据维基百科的说法,大型语言模型(LLM)通常每个参数和标记需要进行六次浮点运算(FLOP)。这相当于对GPT-3模型进行训练需要进行3.15 x 10^23次浮点运算,其中GPT-3模型的训练耗时为三周。因此,在这三周的时间内,它需要5.8 x 10^16次每秒的浮点运算能力(FLOPs)。

pictures

一卡难求的H100长这样?

然而,尽管Nvidia的最高性能H100 GPU在FP32模式下可以达到约67 TeraFLOPS(每秒万亿次),但在许多训练工作负载中,由于内存和网络瓶颈,GPU的利用率通常只能维持在30%左右。因此,为了满足训练需求,我们需要三倍数量的GPU,大约是6,000个H100 GPU。原始的LLM模型(表1)是使用较旧版本的GPU进行训练的,因此需要10,000个GPU。

由于有成千上万个GPU,模型和训练数据集需要在这些GPU之间进行分区,以实现并行运行。并行性可以在多个维度上发生。

数据并行性

数据并行性(Data Parallelism)涉及将训练数据分割到多个GPU上,并在每个GPU上训练模型的副本。典型流程包含数据分布、数据复制、梯度计算、梯度聚合、模式更新和重复等。

  1. 数据分布:训练数据被划分为小批量,并在多个GPU之间分布。每个GPU获得一个独特的小批量训练集。
  2. 模型复制:模型的副本被放置在每个GPU上(也称为工作节点)。
  3. 梯度计算:每个GPU执行一次模型训练迭代,使用其小批量数据进行前向传播以进行预测,并进行反向传播以计算梯度(这些梯度指示模型参数在下一次迭代之前应如何调整)。
  4. 梯度聚合:来自所有GPU的梯度被汇总在一起。通常通过计算梯度的平均值来完成此步骤。
  5. 模型更新:汇总的梯度被广播到所有GPU。各个GPU更新其本地模型参数并进行同步。
  6. 重复:此过程重复多次,直到模型完全训练完成。

数据并行性可以在使用大型数据集时显著加快训练速度。然而,它可能会导致大量的GPU间通信,因为每个GPU都必须与训练中涉及的其他GPU通信。这种全对全的通信(All-to-All)可能会在每次训练迭代中在网络中产生大量的流量。

ALL-to-ALLALL-to-ALL

训练大型语言模型(LLMs)时,我们使用了一些方案,例如环形全局归约(Ring All-Reduce),将梯度以环形模式从一个GPU发送到另一个GPU。在这个过程中,每个GPU将其从前一个GPU接收到的梯度与本地计算的梯度进行聚合,然后将其发送到下一个GPU。然而,这个过程非常缓慢,因为梯度聚合分布在多个GPU之间,最终结果需要在环形拓扑中传播回所有GPU。如果网络拥塞,GPU之间的流量会因等待聚合梯度而停滞。

ALL-REDUCE

ALL-REDUCE

此外,具有数十亿参数的LLMs无法适应单个GPU。因此,仅靠数据并行性无法满足LLM模型的需求。

模型并行性

模型并行性(Model Parallelism)旨在解决模型无法适应单个GPU的情况,通过将模型参数(和计算)分布到多个GPU上。典型的流程包含模型分区、前向传播、反向传播、参数更新、重复等。

  1. 模型分区:将模型划分为若干个分区,每个分区分配给不同的GPU。由于深度神经网络通常包含一系列垂直层,因此按层次划分大型模型是合乎逻辑的,其中一个或一组层可能分配给不同的GPU。
  2. 前向传播:在前向传播过程中,每个GPU使用“整个”训练集计算其模型部分的输出。一个GPU的输出作为下一个GPU的输入传递。下一个GPU在接收到前一个GPU的更新之前无法开始处理。
  3. 反向传播:在反向传播过程中,一个GPU的梯度传递给序列中的前一个GPU。在接收到输入后,每个GPU计算其模型部分的梯度。与前向传播类似,这在GPU之间创建了顺序依赖关系。
  4. 参数更新:每个GPU在其反向传播结束时更新其模型部分的参数。需要注意的是,这些参数不需要广播到其他GPU。
  5. 重复:此过程重复多次,直到模型在所有数据上训练完成。

流水线并行性

流水线并行性(Pipeline Parallelism)将数据并行性和模型并行性相结合,其中训练数据集的每个小批量进一步分成几个微批量。在上面的模型并行性示例中,一个GPU使用第一个微批量计算输出,并将该数据传递给序列中的下一个GPU。与在反向传播中等待从该GPU获取输入不同,它开始处理训练数据集的第二个微批量,依此类推。这增加了GPU之间的通信,因为每个微批量都需要在序列中相邻的GPU之间进行前向传播和反向传播的通信。

张量并行性

张量并行性(Tensor Parallelism)是一种用于加速深度学习模型训练的技术。与模型并行和流水线并行技术不同,张量并行性在操作级别(或“张量”级别)上划分模型,而不是在层级别上划分。这种方法允许更精细的并行处理,对某些模型来说更高效。

具体来说,张量并行性的步骤如下:

  1. 模型分区:将模型划分为多个操作(或“张量”),每个操作分配给不同的GPU。这样,每个GPU只负责计算部分操作的输出。
  2. 前向传播:在前向传播过程中,每个GPU使用整个训练集计算其操作部分的输出。一个GPU的输出作为下一个GPU的输入传递。这样,模型的计算被分散到多个GPU上。
  3. 反向传播:在反向传播过程中,梯度从一个GPU传递到序列中的前一个GPU。每个GPU计算其操作部分的梯度。与前向传播类似,这也创建了GPU之间的顺序依赖关系。
  4. 参数更新:每个GPU在其反向传播结束时更新其操作部分的参数。这些参数不需要广播到其他GPU。

数据并行性、模型并行性、流水并行性、张量并行性……没搞懂不同并行技术的处理逻辑?下面这个案例或许可以给你一些启发,相信作为网工的你一定能很快理解~

假设我们有2台机器(node0和node1),每台机器上有8块GPU,GPU的编号为0~15。

我们使用这16块GPU,做MP/DP/TP/PP混合并行,如下图:

MP/DP/TP/PP混合并行

MP:模型并行组(Model Parallism):

假设一个完整的模型需要布在8块GPU上,则如图所示,我们共布了2个model replica(2个MP)。MP组为:[[g0, g1, g4, g5, g8, g9, g12, g13], [g2, g3, g6, g7, g10, g11, g14, g15]]

TP:张量并行组(Tensor Parallism)

对于一个模型的每一层,我们将其参数纵向切开,分别置于不同的GPU上,则图中一共有8个TP组。TP组为:[[g0, g1], [g4, g5],[g8, g9], [g12, g13], [g2, g3], [g6, g7], [g10, g11], [g14, g15]]

PP:流水线并行组(Pipeline Parallism):

对于一个模型,我们将其每一层都放置于不同的GPU上,则图中一共有4个PP组。PP组为:[[g0, g4, g8, g12], [g1, g5, g9, g13], [g2, g6, g10, g14], [g3, g7, g11, g15]]

DP:数据并行组(Data Parallism):

经过上述切割,对维护有相同模型部分的GPU,我们就可以做数据并行,则图中共有8个DP组。DP组为[[g0, g2], [g1, g3], [g4, g6], [g5, g7], [g8, g10], [g9, g11], [g12, g14], [g13, g15]]

读完本文,相信你对训练大语言模型(LLMs)的三个步骤已经很熟悉:

  1. 通过网络抓取等方式进行数据集集成;
  2. 将源文本分割为标记;
  3. 通过模型参数并行处理的方式进行模型训练

相信你也对大数据模型的多种并行类型有了初步认识:无论使用何种并行性类型,LLM 凭借其参数和数据集的庞大规模,都会通过连接这些 GPU 的结构产生大量的 GPU 间流量。结构中的任何拥塞都可能导致训练时间过长且 GPU 利用率极低。之后将继续推出AI系列科普文,为大家介绍GPU/TPU 集群设计,以了解互连以及它们如何进行 LLM 训练。

实际应用中,训练完大语言模型(LLMs)之后,需要对模型进行微调以满足不同组织(企业)的个性化需求,该如何优化LLMs模型?后续的推文将为您解答这些疑惑。

星融元作为一家网络公司,为什么会那么关注AI、LLMs这些看似与自身业务关系不大的领域,甚至开辟专栏为网络工程师科普相关知识?主要出于技术和市场竞争方面的考虑。

1.技术方面,网络在大语言模型(LLMs)的训练过程中至关重要:

LLMs训练之初便需要通过网络抓取大量的数据集成数据集,数据集中的大量参数和数据需要通过网络传输到GPU上进行并行处理,网络连接的质量直接影响了数据传输的速度和效率。LLMs的训练会涉及到多个GPU的协同工作,连接这些GPU的网络结构会产生大量的GPU间流量,如果网络拥塞,数据传输会受到影响,导致训练时间过长且GPU利用效率降低。

因此,网络的稳定性、速度和带宽都对LLMs的训练效果至关重要。网络拥塞可能导致训练效率下降,因此需要优化网络架构,确保数据传输的高效性。

2.市场竞争方面,AI离不开LLMs训练,市场潜力无穷:

人工智能作为人们高度关注的热点话题,在许多领域拥有巨大的市场潜力。LLMs训练完毕后,大模型与用户的交互过程中(如chatGPT爆火,全球很多用户都在使用的情况),网络质量会直接影响用户对Gen AI应用的体验。拥有先进技术和工具是企业保持竞争优势的关键,星融元顺势而为,持续关注智算市场的发展,并推出HPC、AI等场景的网络解决方案,为用户提供良好的网络环境,实现用户与自身的双赢!

参考:Large Language Models – The Hardware Connection (juniper.net)
数据并行(DP)、张量模型并行(TP)、流水线并行(PP)_tp pp dp-CSDN博客

相关阅读:星融元针对LLM大模型承载网发布星智AI网络解决方案

相关文章

对星融元产品感兴趣?

立即联系!

返回顶部

© 星融元数据技术(苏州)有限公司 苏ICP备17070048号-2