Spectrum-X方案到底强在哪?

2024-09-12 10:54

2023年5月29日,老黄在台北的Computex 2023大会上发布了很多硬件产品的更新,印象最深刻的是面向AI以太网的Spectrum-X方案和支持大语言训练的超级AI集群GH200。今天我们来聊聊其中的Spectrum-X方案。

简单来说我理解Spectrum-X是全球第一款专为生成式AI提供的完整端到端以太网络方案,这里包括Spectrum-4系列交换机,Bluefield-3 DPU网卡,连接端到端的LinkX 400G为主的线缆模块,还有可支持硬件加速的一整套全栈软件方案。所以Spectrum-X是一个整体软件和硬件耦合的解决方案,单独拿出某一部分都不能发挥出最大价值。

截止今天各大顶流芯片厂家已经各自推出面向AI和ML领域的专用芯片,并将单芯片的速率提升到了51.2Tbps,比如博通的Tomahawk5,Jericho3-AI(14.4T),Marvell的Teralynx10,思科的SiliconOne G200,当然还有英伟达Spectrum-4芯片。那么传统的数据中心交换芯片难道不能用在AI场景么?当然可以,但是效率会很低。我们来细数一下到底传统以太网有哪些地方不适合跑AI这种以训练和推理为主的流量模型。

image.png

1.ECMP带宽的负载不均

传统以太网数据中心通常跑的应用主要是用户的网页访问,音频和视频,普通办公等互联网应用流量,特点是flow流量小但是数目繁多,五元组分布比较平均和随机,TCP session的建链和拆链也比较快,这样flow的多样性能够保证在基于静态hash的ecmp多链路中均匀的分配带宽。而在AI大模型训练中,AI训练的模型和参数、GPU、CPU、网卡等因素是紧耦合的关系,网络流量主要是大带宽的allreduce和alltoall操作为主,一般一块GPU对应一块高带宽网卡,而一个网卡在训练的每一个过程中建立的flow连接数都相对较少,但是每条flow的流量相当于一个大象流,在很短时间内,几条大象流就可吃掉整个网卡带宽。比如H800 GPU集群的网络里AllReduce对单网卡带宽要求达到了400Gbps规模,几条大象流由于哈希熵分布较集中,很容易集中到一起并将部分ecmp上行链路堵死,而其它一些上行链路反而很空闲。由于flow数目少,单个flow带宽瞬时大,传统的基于五元组hash方式就很难适应这种场景,造成ecmp上行链路负载不均的结果,严重影响AI训练的整体完成时间。目前业界主要有两类解决方案,一个是从上层做文章,通过NCCL设置让AI计算过程的连接数尽可能多,达到多Flow的效果,或者通过IB Verbs API改变每条RoCE中的QP五元组信息,让flow五元组尽量多元化从而哈希到不同的link上,另一种则是直接对flow报文做文章,比如用flowlet方式将一条flow切分成报文间隙相对均匀的报文组,或者将报文打碎成size相同的cell,把小盒子组成的Fabric全网看成是一个交换大机框来传输cell报文,还有基于per packet spray的方式来提高整体ecmp带宽利用率。

2.较高的延迟和抖动

传统以太网上的应用还是基于TCP/IP的socket编程,CPU将用户数据从用户态拷贝到内核态,最后再从内核态拷贝到达网卡driver层进行中断处理发送给对方,这样既增加了延迟又加重了CPU负载。所以目前AI算力集群中需要支持RDMA技术的Infiniband或者RoCE无损网络,利用内核bypass和零拷贝的方式大大降低了应用数据的传输延迟。另外GPU direct RDMA和GPU direct storage技术更是通过RDMA,将GPU内存数据的传输延迟降低了一个数量级。同时由于NCCL无缝支持RDMA接口,大大降低了AI应用从TCP转向RDMA框架的开发难度。

在上亿参数的大模型训练中,经常要将数据和模型拆分成数据并行和模型并行,上千张GPU在立体的各种并行交叉结构中互相传递参数和汇总结果,高效稳定的完成分布式并行训练的每一步变得尤为重要,任何一个环节中的GPU出现问题或单个节点通讯出现延迟都会拖累全局的总体训练完成时间,一个节点的延迟产生的是木桶原理,最终影响整个训练加速比和训练效果,因此支持Lossless网络内采用RDMA技术来降低网络延迟,提升网络总体高带宽吞吐成为AI网络芯片的必备功能。

3.较差拥塞控制

分布式的并行训练总会偶尔出现多打1的incast流量,传统的以太网络是尽力而为的运行机制,端到端的Qos即使做的再好还是免不了遇到丢包或者限速丢包的情况,经常需要靠上层传输的一些重传机制来弥补丢包造成的损耗。RDMA的lossless以太网络需要最大化支持零丢包。这里出现了两个技术,一个是每一跳的flow control机制,另一个就是多打1的拥塞控制机制, 在RoCE网络里主要是PFC和DCQCN机制。近几年很多互联网大厂都在DCQCN优化的基础上,提出了自研可编程的congestion control的机制,主要基于端侧硬件发送RTT报文来探测网络拥塞情况,同时结合报文经过每一跳交换机的inband telemetry信息,可以做到更精准的拥塞探测。这种可编程的CC算法对无论是网络侧还是端侧的硬件芯片都提出了更高的要求,传统的以太网络芯片和普通网卡已经不能满足AI大集群RDMA无损网络的需要,因此AI网络芯片和DPU的端网软硬件结合成为目前大厂的首选。

说了这么多传统以太网在AI训练中的弊端,那么Spectrum-X方案又是怎么解决这些问题,并且在众多芯片厂家中独树一帜呢?通过近期英伟达公布的Spectrum-X方案技术白皮书中,我们可以看到一些端倪:

1.剑指AI Cloud

image.png

首先老黄用AI工厂和AI Cloud来明确区分了Infiniband和AI以太网两个市场。AI工厂面向的是少数CSP大客户,对于大语言模型训练有着极致的需求,而且需要提供顶级能够支持万卡GPU以上规模的超大算力网络,那么NVLink+Infiniband是黄金首选。而针对AI Cloud用户则有着不同的需求:

a.需要支持多租户和多训练任务的隔离,每个用户单一算力规模并不大,比如生成式AI的各种应用;

b.支持云原生级别的容器和灵活的资源调度;

c.与其他以太网络的兼容与整合,比如ipv6或者vxlan的网络连接;

d.支持开源的以太网协议和软件,比如Sonic,PTP等;

image.png

Spectrum-X方案主要定位是解决AI Cloud中的东西向流量,也就是大量GPU训练和推理的计算流量,它具有紧耦合, 要求支持RDMA的lossless网络,低抖动和减少长尾时延,无阻塞的高速网络,以及应对各种多打一带来的瞬时burst流量的承载。而南北向则还是交给传统的以太网络,支持多租户的隔离和管理,支持分布式存储网络等。

2.Adaptive Routing自适应路由

image.png

这个feature可以说是Spectrum-X方案里的杀手级功能,针对传统以太网由于静态哈希导致ECMP带宽不均问题,Spectrum-X可以通过网络侧交换机和端侧DPU的紧耦合联动,做到实时动态监控ECMP各个链路的物理带宽和端口出口拥塞情况,来做到基于每个报文的动态负载分担,将普通以太网只有50-60%左右的链路带宽利用率提高到97%以上。

image.png


通过链路带宽利用率的提升来减少AI中由于各种大象流拥挤造成的长尾时延,如上图所示,ECMP下由于各个链路带宽利用率不均,极端情况下导致某些flow的完成时间大大增加,而自适应路由可以将各个flow均匀的在各个链路上传输,各个flow传输时间大大缩短且比较平均,从而减少每一个训练任务的完成时间。


image.png

由于有效提升了链路带宽利用率,所以针对AI训练里典型的AllReduce和AlltoAll两种流量模型下,Spectrum-X方案都比传统以太网有着显著提升,集合通讯的报文字节越大,效果越明显。

3.Direct Data Placement

虽然per packet的负载均衡可以显著提高带宽利用率,很多厂家也有类似的解决方案,但是随之带来一个主要问题就是接收端收到报文的乱序重组,有的厂家是靠网络侧来解决,有些是靠端侧解决,但是受限于硬件性能,到目前为止都没有一个相对很好的解决方案。而Spectrum-X凭借Spectrum4交换机网络侧和BF3端侧两者硬件协同来完美解决这个问题。我们来看下图RoCE乱序处理的过程:

image.png


首先是左边看到不同GPU内存发出来的训练流量经过自身的发送端BF3网卡进行标记,并且送到直连的TOR Spectrum-4交换机。

image.png


然后TOR交换机硬件识别BF3标记的报文,根据上行链路的实时带宽和buffer情况来做自适应路由,将各个flow的报文以per packet的方式均匀的负载分担到各个上行链路,也就是送到4台Spine交换机上。

image.png

报文经过各自的Spine交换机到达目的侧TOR交换机,最终到达目的侧服务器BF3网卡,这时候报文有可能是乱序的。

目的BF3会通过硬件识别到发送端BF3标记的报文,然后通过DDP技术读取报文的内存地址,直接将报文放入目的GPU的内存中,并最终组合成有序的报文组合,消除由于报文经过网络侧不同路径和不同设备的差异造成的乱序。通过自适应路由和DDP两种硬件加速技术的结合,完美的解决了传统以太网ECMP带宽不均和报文乱序问题,也消除了一些应用由于处理乱序造成的长尾延迟问题。

image.png

4.多租户性能隔离

image.png

在RoCE网络中多租户或者多任务场景下,可以很容易用vxlan等技术隔离开,但是各个租户的流量拥塞或者说之间的性能隔离一直是个棘手问题,有些应用明明在物理裸机环境下跑的性能,放到云里却达不到相同的性能。比如上图有workload A和workload B两种租户流量,在workloadA里发生了3打1的拥塞流量,从而启动拥塞控制机制并触发传导到source1-3降速成1/3带宽。但是此时由于source3和source4共用一个交换机出口,导致拥塞降速的命令也传导到source4,造成source4也降速成了1/3的带宽,而source4到destination2的workloadB流量本应该享受2/3的带宽,所以成为一条Victim flow受害流。在寸土寸金的AI Cloud世界里,每一个租户都不希望自己就是那条受害流,希望得到媲美在物理AI世界里相同的性能。

image.png

Spectrum-X凭借着BF3上强大的可编程拥塞控制硬件,可以提供优于传统DCQCN的拥塞控制算法。发送端和接收端BF3协同通过硬件发送RTT探测报文,同时结合中间交换机的inband telemetry信息,该信息记录比如报文经过该交换机的时间标签,出口buffer利用率等信息,这样两者综合起来精准的评估各条flow经过路径的拥塞状况,同时BF3的硬件可以做到每秒处理上百万的CC控制报文,从而真正做到基于不同workload的拥塞控制,达到性能隔离的目的。workloadA和workloadB性能隔离后,使得source4到destination2的通路完全享受2/3的带宽。

5.Direct Drive光模块

Spetrum4交换机和BF3都采用英伟达自研的100Gbps PAM4 SerDes技术, 并且通过Direct Dirve的LPO技术将光模块的SerDes直接连接到Spectrum-4 ASIC芯片上,省去光模块中间的DSP或者CDR部件,这样可以大大节省光模块的功率,把400G和800G光模块从十几瓦功耗降到个位数。对于插满端到端400G光模块的交换机和DPU可以明显降低整体功耗。

6.全栈式端到端软件优化

image.png

上面提到的几个优势基本都是Spetrum-X利用硬件层面的加速,从软件层面该方案也提供了很多特性,比如可以监控AI端到端流量的可视化智能网管软件NetQ。可以从本地视角和全局网络视角来监控RoCE流量的情况:

本地视角:

image.png

利用每台交换机本地的故障镜像功能,可以监控每台交换机上本地丢包情况,实时统计各种丢包类型和丢包原因。针对常见的RoCE多打1造成的出口Buffer拥塞丢包也可以实时统计。

全局视角:

image.png

Flow Analysis是一种更加节省资源的基于流的telemetry遥测技术,在flow报文经过的每一跳的交换ASIC上推送ACL,然后mirror镜像报文,一跳发送到Netq,在报文中包括时间戳,buffer延迟和深度,经过交换机端口信息,报文头部等详细metadata信息,NetQ收集和整理分析这些信息后在GUI表现出来。通过上图可以展示完整的端到端网络拓扑,和所有报文经过路径的每一跳交换机的延迟和Buffer利用情况,通过颜色从绿到红由浅入深来展示延迟或者Buffer拥塞的严重程度。

白皮书中还提到Spectrum-X方案通过加强RoCE的NCCL算法,可以有效减少网络中的拥塞和集合通讯效率,同时针对GPT,BERT,RetinaNet,Spark等常见的AI场景进行了专门测试和软件优化。

7.ISRAEL-1

image.png

为了证明Spectrum-X方案支持大规模AI算力集群的能力,老黄还宣布年底前在以色列建立一个名为"israel-1"的AI Cloud大集群。就如同当年A100刚出来的时候,英伟达建立了4千GPU卡的名为"Selene" IB大集群,用来验证Superpod组网方案,同时提供一个可支持各种大模型训练的试验场。israel-1集群主要采用Spectrum-X 400G解决方案,包括Dell定制的256台HGX H100服务器,总共2048块H100 80G GPU,2560片BF3DPU,80多台Spectrum-4以太交换机,每台HGX服务器应该是2张BF3做南北向的管理和存储,8张BF3做东西向的大规模AI计算。由于Spectrum芯片和BF3都来自于之前收购的以色列mellanox研发团队,所以这个AI集群可以作为未来超大AI Cloud的"梦工场",相信未来还会推出更多的AI Cloud端到端优化方案。

8.产品形态


SN5600交换机:

image.png

采用Spectrum-4 51.2Tbps单芯片2U的盒式交换机,该芯片具有1000亿个晶体管和台积电的4N纳米技术,整机具有64个800G OSFP端口,最大支持128个400G接口或者256个200G接口。最大33.3Bpps的报文转发速率, 支持512K转发表项,160MB的Buffer缓存,可支持172字节的小包线速。支持Cumulus和Sonic等操作系统。在Spectrum1代到4代的演进中支持的feature也越来越多:

image.png

BlueField-3 DPU:

image.png

具有16个64位 A78 Arm芯片,最大400Gbps能力的ConnectX-7 ASIC芯片,独立的加速处理引擎,DPA可编程硬件模块,DPDK最大支持267Mpps,RDMA最大支持370Mpps,可支持网络、安全和存储等领域的卸载,隔离和加速。目前2口200G和单口400G的BF3已经上市,可以同时支持以太或者IB两种模式。当然Bluefield最强大的还是下图DOCA2.0的软件开发框架,以后有时间我们会详细介绍:

image.png

线缆方面主要支持400G端到端的4*100G PAM4的连接,可支持OSFP和QSFP112的MSA, 覆盖从DAC、ACC到多模和单模光模块形态。如上图交换机800G OSFP口可支持1分2个400G OSFP端口。

总结

Spectrum-X是英伟达提出的全球第一个针对AI以太网的完整端到端解决方案,凭借自研的Spectrum-4 ASIC交换机,Bluefield DPU智能网卡,支持Direct Drive的Link-X光模块线缆等强大硬件,结合自适应路由,端侧乱序纠正,新一代可编程拥塞控制算法,DOCA2.0,全栈的AI软件加速等软件特性,为用户在生成式AI领域提供了一个强大的软硬结合的算力底座,试图开拓基于传统以太网和Infiniband之间的一个专门支持AI Cloud的庞大以太网市场。