英伟达斥巨资收购Mellanox,数据中心级高性能计算时代水煮三国,英伟达,微软还是…谷歌?
最近半导体领域发生了一件备受关注的收购案:英伟达击败英特尔,以69亿美金收购以色列晶元厂商Mellanox。英伟达是全球知名的GPU制造商,带动也得益于AI的蓬勃发展,已经成为半导体炙手可热的公司。另一方面,Mellanox以InfiniBand和乙太网产品线知名。此次收购的目的,是将英伟达的加速计算平台与Mellanox全球知名的加速网路平台结合,共同创建新一代数据中心级解决方案。英伟达葫芦里卖的什么药?GPU在数据中心加速的现状如何,优势与劣势又在何处?GPU,网路和数据中心,这三者又是如何结合起来的?
实际上,通过乙太网连接加速器已经不是什么新鲜玩意儿,微软早在2015年就开始在其云计算服务Azure中布局了通过乙太网连接的FPGA在数据中心对服务进行加速的方案Project Catapult。该方案在每台伺服器的CPU和NIC之间放置一个有自己协议栈的FPGA,FPGA之间利用伺服器之间的乙太网进行互联通信。该项目现在已经在Bing、Azure等业务上大规模的投入使用。在计算机网路系统NSDI2019上,微软发表了最新的互联系统Direct Universal Access,进一步增强了整个数据中心的资源的互联互通。
英伟达为了实现GPU互连,提出了NVLink和NVSwitch技术,基于此,英伟达在2017和2018年发布了DGX-1和DGX-2,其中DGX-2实现了16个GPU的两两互连。然而这种方案在数据中心层面的可扩放性(scalability)十分有限。首先,NVSwitch作为单板交换机,带宽的可上升空间已经不大,可以预测通过NVLink+NVSwitch方案进行互连的GPU数量不会再有大幅上涨。此外,由于Intel并不买NVSwitch的帐,因此CPU成了限制GPU更大规模互连的瓶颈,这也将DGX限制在了单个主机上。(关于上面两种互连方案的细节,可参见笔者另一篇文章
曼殊:AI时代加速器互联高性能计算解决方案比较,FPGA+Ethernet VS GPU+NVSwitch
如此看来,如果使用乙太网连接GPU,就能从根本上解决GPU在数据中心层面的可扩放性问题。然而,与FPGA不同,GPU本身作为一个加速卡的存在,是无法作为一个主机使用的,无法单独支持乙太网协议栈,直接处理网卡中的数据。也就是说GPU就无法像微软Project Catapult中的FPGA那样,绕开CPU独立作为网路中的一个节点实现互连。
非常巧妙地,英伟达使用RDMA技术解决了这个问题,RDMA协议中应用程序可以绕开CPU直接与网卡交换数据,GPU支持与网卡分享内存。这样,RDMA协议就能够使GPU通过网路,直接读取另外的GPU中的数据。通俗点说,既然GPU不能做主机,就让网卡来做主机。英伟达此次收购的Mellanox的InfiniBand是最早实现RDMA的网路协议,Mellanox与英伟达在2014年初发布了支持GPUDirect RDMA的网卡驱动程序。(GPU Direct RDMA技术细节参见阿里云栖社区
浅析GPU通信技术(下)-GPUDirect RDMA综上,三种加速器互联方案的优缺点分别是
微软:FPGA+Ethernet
优点:可扩放性好,可支持的互连规模理论可以非常大。可以分布在数据中心不同主机上,可靠性高。使用乙太网互连,可直接使用数据中心的网路,不需要增加太多的额外设备,因此功耗低。
缺点:相比于使用软体,FPGA硬体开发的难度大、周期长,后期维护困难。且生态环境比GPU差
英伟达:GPU+NVLink
优点:无需硬体定制,因此系统开发难度低,NVLink和NVSwitch的带宽很大,因此系统的算力与带宽都很大
缺点:系统体积、功耗大。受制于Intel CPU,只能在单机中使用,不适合数据中心。支持NVSwitch的PowerPC的生态环境也远不如Intel
英伟达:GPUDirectRDMA
优点:基本与FPGA+Ethernet的优点相同,且开发难度低
缺点:InfiniBand和传统TCP/IP网路的差别大,需要专用的硬体设备,价格贵
各方案优缺点比较总结如下表