云计算的技术内核是分布式计算,而分布的算力,需要高速的网络连为一体。随着数据量越来越大、网络接口速度越来越高,把所有的数据都送到CPU去处理,网卡(NetworkInterfaceCard,NIC)只充当流量中转站,就不太符合分布式计算的理念。
在网卡上增加算力资源(如处理器),执行底层的数据处理任务,就得到了智能网卡(SmartNIC)。显然,智能网卡可以卸载(Offload)原本也要交给CPU处理的任务,而不是一切以CPU为中心(Onload),用Mellanox(迈络丝)的话说,这种架构是“以数据为中心”(Data-centric)。
△NVIDIABlueField-3DPU:配套存储和带外管理,就像一台小服务器
GPU巨头NVIDIA(英伟达)通过收购Mellanox进入网络市场后,将其BlueField系列产品放到DPU(DataProcessingUnit,数据处理器)的高度大力宣传。一时间DPU成为新的流行,譬如Marvell在年6月推出其OCTEON10DPU家族时,把上溯到年的前代产品都算作了DPU。也是在这个时段,CPU大厂英特尔发布了IPU(InfrastructureProcessingUnit,基础设施处理器)。
DPU/IPU与智能网卡有什么区别?英特尔认为,智能网卡主要是卸载(数据处理),仍由CPU控制;而IPU有控制平面,可以由自己控制。相对于在数据层面上实现加速的智能网卡来说,DPU更进一步实现了控制层面的加速,通过可编程的多核处理器和加速引擎、高性能网络接口以及软件栈的支持,实现了传统计算与数据交互的分离,也更符合未来安全、高效、云原生的大规模计算应用时代。
不过从宣传的角度来说,上述定义并没有得到严格遵守。以BlueField为例,随着其归属的变化,在产品描述中也先后经历了SmartNIC、SmartNIC与DPU共存、DPU的“演进”。
智能网卡也好,DPU或IPU也罢,起码都有两个不可或缺的核心部件:一个当然是网络接口部分,通常是高速网卡;另一个就是计算单元,可以是FPGA(FPGA也可以提供网络功能,这个不讨论),也可以是CPU。总体趋势是网卡速度越来越高,计算能力越来越强,可以承担的处理任务也越来越多——除了网络,还有存储等功能的卸载,所以再叫“智能网卡”确实有些局限。
△英特尔代号MountEvans的GIPU结构图,左边为网络子系统,右边为计算复合体
以IPU为例,它承担基础设施(Infrastructure)的处理工作,作用可以体现在三个方面:
把基础设施与租户的功能隔离开,IPU运行存储、网络、管理等通常由云服务提供商(CSP)开发的代码和功能,CPU运行客户的软件(上层应用);
基础设施功能的卸载,让CPU更好的服务于应用。Facebook有一篇报告指出,在微服务的场景中,CPU有高达31~83%的时钟周期花费在微服务功能上,而IPU可以接管这些烦琐的“底层”工作,把CPU解放出来;
无盘服务器架构,可以通过网络使用(便于共享的)虚拟存储,给计算端提供足够的灵活性。
年第四季度,阿里云发布神龙架构,AWS发布Nitro系统,两者具体实现不同,但都能卸载网络、存储的流量,让CPU资源可以专心服务客户,也符合现在DPU或IPU的定义。
算力演进
在计算单元的选择上,通用处理器,也就是CPU,是目前市面上DPU的主流。其中,固然有英特尔OakSpringsCanyon这样使用自家x86处理器(Xeon-D,至强D)的例子,但在这个市场上,还是Arm的生态更具优势。
以英伟达的BlueField为例:
最初采用8或16个ArmCortex-A72核心,每2个核心共享1MiBL2Cache,运行频率不超过1.3GHz;
BlueField-2采用8个ArmCortex-A72核心,运行频率提高到2.0~2.5GHz;
BlueField-3的指标全面升级,包括16个ArmCortex-A78核心,8MiBL2Cache和16MiBL3Cache,板载16GBDDR5内存,网口速率从Gb/s提高到Gb/s,PCIe接口从16通道PCIe4.0换代为32通道PCIe5.0,基本都是两倍乃至四倍的提升。
BlueField-3具有多达亿个晶体管,单论数量,快赶上早一些的服务器CPU了——譬如AWSGraviton2。
英特尔代号MountEvans的GIPUSoC,集成多达16个ArmNeoverseN1核心,3个LPDDR4内存通道(见上面图)。
Marvell的OCTEON10则成为业界首个基于ArmNeoverseN2平台的处理器系列,采用台积电5nm制程,具有多达36个N2核心,36MiBL2Cache和72MiBL3Cache,12个DDR5-5内存控制器。其他如G以太网(GbE)、PCIe5.0,都足以与BlueField-3对标。
不太准确的说,可以把NeoverseN2视为Cortex-A78的“Armv9
数据中心”版,加上明显的数量优势,所以单从纸面来看,OCTEON10的CPU算力要超过BlueField-3。总之,无论是A72→A78、NeoverseN1→N2的架构迭代,还是核数与频率的提升,“更高、更快、更强”的趋势,与服务器CPU是一致的。以上几款DPU/IPU还有一个共性,就是选择NeoverseN系列这样追求性能、功率、面积(PPA)平衡的Arm平台。一方面,网卡这个载体空间相对有限,对芯片面积和功率限制比较多;另一方面,随着Arm架构与配套制程的提升,可以享受到性能的持续增长。
以OCTEON10系列中规格最高的DPU为例,虽然运行频率可达2.5GHz,典型功率也就60瓦(W)的水平。
其他功能模块,如包处理、Inline加密,RDMA、NVMe,也可以在不同的DPU或IPU里看到。
BlueField
从智能网卡到DPU,“卸载”都是核心能力。通过将网络、存储、管理等基础设施任务从CPU转移至DPU,释放CPU的资源,使更多的服务器CPU核可用于运行应用程序,完成业务计算,从而提高服务器和数据中心的效率。传统业务模型中,CPU在计算之余还要兼顾数据互联,势必造成性能分散和效率的降低;而在将这些任务“卸载”到DPU之后,则可以从软硬件层面加速业务运行,甚至获得超越CPU的处理效率,从而大幅减少长尾延时,提升应用性能。
英伟达曾在红帽容器化平台中进行过相关测试,结果显示,通过将网络相关的数据处理(如VxLan和IPSec等)卸载到DPU加速执行,在25Gb/s网络条件下,OpenShift部署DPU用来加速,达到25Gb/s性能,对CPU的占用只有无DPU方案的三分之一;而在Gb/s网络条件下,无DPU的方案将达不到Gb/s网络线速,DPU可以带来10倍的性能优势。
如果说“卸载”提供了效率提升的话,那么零信任则保障了DPU的安全稳定运行。零信任(ZeroTrust)是一种以安全性为中心的模型,基于以下思想:企业不应对其内外的任何事物授予默认信任选项,任何时候都需要不断的校验。从实际效果来看,零信任可以减少数据泄露、拒绝未授权的访问,因此在数据安全方面价值巨大。面对当下日益严重的病*勒索与攻击,英伟达也从BlueFieldDPU、DOCA软件栈和Morpheus网络安全人工智能框架等三个层面为企业提供了零信任的保护。
通过将控制平面由主机下放到DPU,系统能够实现主机业务和控制平面的完全隔离,数据将无法进行穿透,保证安全性。如果主机遭受入侵,安全控制代理与被入侵主机之间的DPU隔离层可防止攻击扩散至整个数据中心。这样DPU就解决了企业不愿直接在计算平台上部署安全代理的情况。通过在完全隔离于应用程序域的DPU上部署安全代理,企业不仅能获得对应用程序工作负载的可见性,还能在其基础设施中执行一致的安全策略。
BlueFieldDPU在国内已经有了不少用户,譬如UCloud的裸金属服务器(BareMetalServer)就采用英伟达BlueFieldDPU“满足客户高带宽、低时延的网络需求,并使用NVIDIAASAP技术实现了客户无缝接入NVGREOverlay虚拟网络,为客户提供更灵活优质的服务。”
第三代BlueFieldDPU于年4月发布,年正式供货。按照英伟达的规划,未来还将有第四代BlueFieldDPU的出现,预计要等到~年。
正如英伟达在人工智能领域的成功离不开CUDA,BlueField系列DPU也有名为DOCA的软件开发包保驾护航。DOCA(DataCenterOnAChipArchitecture,片上数据中心基础设施架构)包含利用BlueFieldDPU来创建、编译和优化应用的运行时环境,用于配置、升级和监控整个数据中心数千个DPU的编排工具,以及各种库、API和日益增加的各种应用,如深度数据包检测和负载均衡等。随着每代DPU的演进,原先使用DOCA开发的应用程序都可以完全向后兼容,且DPU路线图上的后续产品依然保证完全向前兼容。这意味着在目前BlueFieldDPU上运行的应用程序和数据中心基础设施,在不久的未来能不加修改地加速运行在BlueField-4DPU等后续产品上,这也从根本上保障了BlueField系列DPU强大的生命力和生态系统。
上图所示的是DOCA1.1软件栈,其中包括驱动程序、库、服务代理和参考应用。这个软件栈一方面包括了DOCASDK,另一部分是用于实现开箱即用部署的DOCA运行时(Runtime)软件。DOCA在底层硬件API上提供一个抽象层给上层的业务,开发者可以使用标准的API更快速、更轻松地进行开发,实现和上层业务的集成,并经优化后提供出色的性能,或者与底层接口合作达到更精细的控制。DOCA还具备基于容器化服务的DPU调配和部署,包含用于简化DPU设置、配置和服务编排的工具。目前,英伟达提供的DOCA软件栈已经达到了1.2版本,并在不断地扩展和完善。
小结
与x86的两强并立不同,更为开放的Arm架构目前已经呈现出百花齐放的局面,无论是在美国还是在中国,亦或是其他国家都有出色的芯片产品(比如日本排名第一的超级计算机富岳同样使用了Arm架构)。尤其是在当下强调多元算力的时代,Arm一方面可以帮助我们打造更多的应用场景,特别是云边协同的互动模式;另一方面对自研芯片来说,Arm也提供了一个很好的基础,允许用户进行创新和发挥。这就好比你买了许多乐高积木的零件重新组装一样,可以按照自己的想法搭建高楼、桥梁、汽车等等,提供了极大的自主性和创造空间。
就本次数字中国万里行的考察来看,不少数据中心都已经尝试使用Arm架构的平台。在我们调研的北京顺义、天津西青、云南大理等多个地区的数字城市建设中,Arm平台同样发挥着不可估量的巨大作用,在推动数字城市发展、加速地方数字化转型、提升数字竞争力方面也作出了突出的贡献。伴随着应用的不断深化和生态的日益完善,我们相信在今后的活动中,将会看到更多Arm平台的身影,也将为读者们呈现出更多的应用场景和优质案例。