最近的Computex上,大部分人关注的都是英伟达新发布的DGX GH200和MGX——这俩都算是英伟达的系统级AI产品,甭管是参考设计,还是完整的服务器了。CPU和GPU相关的芯片、板卡、系统,始终是如今英伟达的大热门,毕竟AI与HPC就是这么热。
但实际上,在AI HPC,尤其是生成式AI、或者现在很多人说“大模型”计算的背景下,还有个东西也很重要,就是networking。也就是说,需要很多服务器一起算,需要一个大规模集群才能搞定,算力扩展跨系统、跨节点,那么性能问题就不光是一个节点内的CPU、GPU、AI芯片算力那么简单了。
此前谷歌就提到过,整体AI基础设施里,系统级架构的重要程度甚至要高于TPU芯片微架构——当然这个“系统级”未必涵盖了跨节点的networking,但显然当一大堆芯片一起做计算的时候,系统、网络都成为性能发挥的短板。
这其实也是DPU变得重要的原因所在——之前我在专栏文章里就提过,英伟达的DPU和其他networking产品,都更像是针对自家产品所做的短板补足,主观上都不像是为了单卖,或者和市场上的现有产品做竞争的。从这个角度来说,英伟达的硬件产品是横向构成了完整生态的:如DPU主观上并不是要跟谁竞争,而是自家现有产品的一环。
这次的Computex上,英伟达发布networking相关的产品主要是Spectrum-X Ethernet以太网平台——英伟达宣称这是全球首个专为AI设计的高性能以太网产品,尤其“生成式AI负载需要新型Ethernet”。我们过去很少谈英伟达的networking产品,包括DPU其实谈得也不算多。借着Spectrum-X的机会,本文尝试谈一谈这款Ethernet产品,以及英伟达networking产品的存在逻辑。
英伟达为什么要造“交换机”?
Spectrum-X平台内部的两个核心组件是Spectrum-4 Ethernet Switch交换机,和BlueField-3 DPU。有关DPU的部分就不多解释了;另一部分Spectrum交换相关的,实际去年GTC上英伟达就发布了Spectrum-4 400Gbps交换机。芯片层面是基于Spectrum ASIC——黄仁勋在Computex主题演讲展示了这颗芯片(应当就是下面这颗ASIC,虽然黄仁勋只是说了句“this is the chip”),这是个囊括1000亿晶体管、90x90mm、芯片封装底部800个焊球、功耗500W的大家伙。
这次宣布这个专为AI准备的“首个高性能Ethernet架构”Spectrum-4 Ethernet Switch系统准备就绪(available),这里的“准备就绪”应该是说面向CSP准备就绪了。
具体的配置可以看图,Spectrum-4总共128个端口,可达成的总带宽是51.2TB/s,和传统的Ethernet交换机相比高出2倍的有效带宽。“能让网络工程师,AI数据科学家,云服务提供商以更快的速度产出结果、做出决策”,“使能生成式AI云”。高带宽和低延迟,是确保GPU规模化扩展时,跨节点连接缓解性能瓶颈的关键。整个交换机的功耗是2800W。
一听“交换机”,是要和市场面上的网络交换机产品抢市场啊?去年GTC上,英伟达就专门解释过这东西不是为了和市面上那些网络交换机竞争,不是为了处理常规的“mouse flow”流量,而重在处理“elephant flow”流量,充分发挥大规模AI、数字孪生、模拟等应用的硬件产品。
“连接的传统交换机对于处理现在的生成式AI负载太慢。而且我们现在还处在AI革命的开端。传统的交换机对于普通的商品云可能是够用的,但对于生成式AI的AI云负载而言,就无法提供规模化所需的性能了。”英伟达Networking SVP Gilad Shainer在主题演讲中说。
会前Pre-briefing上,有记者还特别问到了英伟达Spectrum是否与Arista之类的交换机直接构成竞争关系。Shainer的回答是没有竞争关系:“市场上的其他Ethernet交换机是用来构建普通商品云的,或者包括用户访问和云控制的南北向流量(north-south traffic);但对于生成式AI云,市场上还没有解决方案,没有Ethernet能够满足生成式AI的需求。而Spectrum-4作为全球首个用于生成式AI东西向流量(east-west traffic)的Ethernet网络,则针对这个目标打造了全新的Ethernet解决方案。”
似乎在答记者时,Shainer还提到了包括博通现有交换产品,与Spectrum-4也并不构成竞争关系。介绍中,英伟达强调Spectrum-X打造的是无损(lossless)Ethernet网络,这一点可能在解释Spectrum-X平台时也尤为紧要。
Ethernet与InfiniBand之争
学过网络工程的同学,对于Ethernet——以太网应该非常熟悉。Ethernet也是个挺有年头的网络标准了,随时代发展也一直在进化。
之所以特别说无损lossless,是因为最初Ethernet设计就是个为有损lossy网络环境准备的。换句话说这种网络是允许丢包的。为了确保可靠性,IP网络上层需要TCP协议参与,即在数据包传输过程中如果发生了丢包,则TCP协议能够让发送方重新传输丢失的数据包。
因为这些错误修正机制,延迟即相应增加,对于某些类型的应用而言也就会有问题。而且为了应对网络中瞬时流量激增,交换需要付出额外的cache资源来临时存储信息,所以之前我们会说Ethernet交换芯片尺寸和成本会高于同等定位的InfiniBand芯片。
但“超算数据中心无法承受lossy网络。”黄仁勋说:“整个超算跑的负载成本都很高,网络中的任意损失都会很难承受。”再加上性能隔离之类的需求,lossy网络的确难以承载。关注英伟达和我们此前相关英伟达AI超算构建架构文章的同学,应该知道英伟达一直在用一种叫InfiniBand的networking通讯标准。InfiniBand常见于需求高吞吐、低延迟的HPC应用。和Ethernet更加通用的属性不同的是,InfiniBand更适用于数据密集型应用。
它其实也不是英伟达的专属,最早是包括Intel、IBM、微软等在内的不少企业都参与进来的——还有个专门的联盟叫IBTA。Mellanox是大约2000年前后开始推InfiniBand产品的。维基百科的介绍中提到,InfiniBand最初的目标是要在I/O方面替代PCI,在机房、集群互联替代Ethernet的。
很可惜InfiniBand赶上了互联网泡沫破裂的年代,其发展一度受到了抑制。Intel、微软之类的参与者都相继有了新选择。但据说2009年的超算TOP 500列表里,内部互联基于InfiniBand的已经有181个(其余的都是Ethernet),2014年这个数量过半——虽然很快万兆Ethernet在后续2年又后来居上。2019年英伟达收购Mellanox之时,Mellanox就已经是市面上仅剩的InfiniBand通讯产品主要供应商了。
其实单从设计初衷来看,80年代就诞生的Ethernet仅是追求多系统的信息互通。而InfiniBand的诞生,最初就是为了消除HPC场景下集群数据传输的瓶颈,比如延迟层面,其2层交换处理的设计就相当直接,可大幅降低转发延迟。所以它天然地适配HPC、数据中心、超算集群:高吞吐、低延迟、高可靠性都如此。
从可靠性的角度来看,InfiniBand本身有网络1-4层的完整协议定义:它藉由端到端流控机制来防止丢包,本身就达成了lossless无损属性。另外两者一个比较大的区别是,InfiniBand基于交换fabric网络设计,而Ethernet是基于shared medium共享通道。理论上来说,前者更能避免网络冲突问题。
既然InfiniBand这么好,英伟达为什么要搞Ethernet呢?从直觉来思考,Ethernet的市场基础、通用性和灵活性应该是个重要因素。黄仁勋在主题演讲中就谈到“我们想把生成式AI带到每个数据中心”,那么就要求向前兼容;“许多企业部署的都是Ethernet”,“要获得InfiniBand的能力对他们而言很难,所以我们将这样的能力带到了Ethernet市场”。这是Spectrum-4推广的业务逻辑。不过我们认为这绝对不是全部。
英伟达同时在搞Ethernet和InfiniBand产品,前者就是Spectrum Ethernet平台,而后者名为Quantum InfiniBand。如果去看英伟达的官方页,会发现InfiniBand解决方案“以更低的成本和复杂性,在HPC、AI和超级集群云基础设施之上,达成无以比拟的性能”;而Spectrum是为AI和云加速Ethernet交换。显然这两者是发生了某种程度的竞争的。
为什么是Ethernet?
黄仁勋在主题演讲中科普了一下不同类型的数据中心——实际上去年GTC上英伟达曾明确将数据中心分成六大类。而在我们今天讨论的AI场景下,数据中心可以分成两大类。其中一类是需要负责一大堆不同应用负载的,租户可能很多,负载之间的依赖关系也很弱。
但还有一类典型如超算或者现在流行的AI超算,其上租户非常少(裸金属少到1个),负载紧密耦合——针对大型计算问题需求高吞吐。这两种数据中心需求的基础设施差别是很大的。从直觉来判断,最原始的lossy环境的Ethernet就不适合后一种需求。原因前文已经谈到了。
最近SemiAnalysis写了一篇文章,特别谈到了InfiniBand存在的诸多问题——主要是技术层面的,可作为英伟达同时发展Ethernet的参考。这里提取其中的一些——虽然这些固有缺陷很难说有什么新鲜的,毕竟任何标准、协议或技术总是有利有弊的;姑且仅作参考。实际无论InfiniBand还是Ethernet,自身也都在不停进化。
InfiniBand的流控用的是credit-based flow control机制,翻译过来叫基于信用/积分的流控。每个链接会预分配一些特定的积分——反映链接带宽之类的属性。当某个数据包被接收、处理之后,接收端会向发送端返回积分(credit)。理想情况下,这样的系统能够确保网络不会过载,因为发送端在发出更多数据包之前,需要等待返回积分。
但这样的机制也存在不少问题。比如说某个发送端节点,给接收端节点发数据,如果发送数据的速度,快于接收端处理数据的速度,则接收端的buffer就可能被填满,接收端无法给发送端返回积分,那么因为积分耗尽,发送端也就无法发出更多的数据包;再比如接收端无法返回积分,若发送端也是其他节点的接收端,在带宽超载的情况下也就无法返回积分,导致背压扩散到更大范围;还有deadlock、不同组件产生的错误率导致的问题等等。
InfiniBand固有的一些问题,会随着整个系统的规模、复杂性增加而变得更严重。目前最大规模的InfiniBand商用实施方案应该来自Meta,某研究集群总共部署了16000个NIC和16000张A100 GPU。
这个规模当然不可谓不庞大,不过SemiAnalysis表示GPT-4的训练就需要更大规模,且未来“大模型”发展应当还有集群扩充的需求。理论上InfiniBand还能继续扩大整体容量,但它将遭遇固有问题的影响会越来越显著。从推理(inference)的角度来看,延迟和性能仍可受惠于InfiniBand,但对于推理负载而言,不同请求会以各种速度做持续性的传输;而且未来的架构,是需要在同一个大型集群内,以各种batch size囊括多个大型模型,这就要求持续不断的credit-based flow control变化。
积分流控机制很难快速响应网络环境的变化,网络内如果存在大量多样化的流量,接收端buffer状态快速变化;若网络出现拥塞,则发送端还在处理更早的积分信息,问题会变得更加复杂。而且如果发送端本身不停地在等待积分,以及数据传输两种状态间切换,也很容易造成性能颠簸。
再说点儿实际的:英伟达目前的Quantum-2达成的带宽在25.6TB/s,起码就数字来看是不及Spectrum-4的51.2TB/s的。更快的Quantum芯片和基础设施要等到明年,这在步调上就不大一样。另外从成本的角度来看,达成相同规模(8000+ GPU)的GPU常规部署,Quantum-2需要多一层交换,以及多得多的线缆——而且是成本比较高的光缆。则典型规模的InfiniBand网络部署成本是明显高于Ethernet的。(此处似乎没有考虑DPU、NIC的成本)
从客户的角度来看,Ethernet的市场还是比InfiniBand要大出许多的——这对于降低部署成本也是一部分。还有一些更具体的可对比项,比如说传统服务前端系统都是基于Ethernet的,以及InfiniBand对客户而言存在供应商绑定的问题,而Ethernet显然是给出了更多的选择的,在部署的弹性和扩展性上可能也会更好;技术层面,Ethernet似乎还存在一些光传输基础设施未来部署的潜在价值,有兴趣的读者还是可以去看一看SemiAnalysis的文章。
这些可能都是英伟达着力Ethernet的理论依据,或者英伟达在生成式AI云上选择了Ethernet的部分原因。但部分依据仅供参考的原因是,InfiniBand在英伟达手上实际也是多有进化的,很多固有问题都有缓解方案。
最后还是要谈一下文章最初提到的一个问题,即Ethernet原本是个lossy有损的网络。但实际上随着RoCE(RDMA over Converged Ethernet)之类技术的发展,原本InfiniBand的一些优势项也带到了Ethernet上。实际上技术扩展某种程度上就是集合不同技术的优点的,包括InfiniBand的高性能和lossless,Ethernet的通用性、成本和弹性等。
Spectrum-X平台特性中提到的RoCE就达成Ethernet网络的lossless,基于PFC(priority-based flow control)优先级流控来达成——这项机制仅依托于端点侧的NIC,而不是交换机设备。
另外RoCE++有一些新的优化扩展,比如说ASCK——处理丢包和抵达顺序问题的,接收端告知发送端只需要重传丢失或损坏的数据包,达成更高的带宽利用率;还有像是ECN、流控机制与错误优化,都有利于提升效率和可靠性。除此之外,为了缓解端点NIC在标准Ethernet with RoCE网络上的规模扩展问题,Bluefield NIC模式可以发挥作用;DPU的总体成本还是可以被Ethernet和一些新技术摊薄的。
黄仁勋在主题演讲里还特别提到Spectrum-X,主要为Ethernet带来了adaptive routing和congestion control两项重要特性。此外英伟达此前有特别和IDC合作,出过一篇Ethernet交换解决方案商业价值的白皮书报告,有兴趣的同学可以下载查看。
在大规模AI应用里,或许Ethernet未来会是个必然选择。所以在Spectrum-X的宣传上,英伟达的口径是特别为生成式AI云所准备,“首个”针对生成式AI东西向流量的解决方案。但或许不止是Ethernet的通用性强这一个缘由,在AI HPC负载下,有一定概率全面转向Ethernet的可能性。
还是那句话,不同标准的发展本身就是在不停查漏补缺、汲取精华的过程,就像InfiniBand解决固有缺陷也存在各种缓解方案,InfiniBand的部分扩展属性亦对其应用于AI很有帮助。这就是选择和技术本身发展的比较问题了。我们可以等等看,后续英伟达是否会在InfiniBand和Ethernet的发展上有所倾斜,即便当前这两者有其各自的应用场景。