陈根:DPU蔚然成风,搅动传统计算体系

文/陈根

很长一段时间以来,算力的天下都由中央处理器(CPU)和图形处理单元(GPU)平分,也是因为CPU和GPU为庞大的新超大规模数据中心提供了动力,才使得计算得以摆脱PC和服务器的繁琐局限。

然而,近几年,随着系统中的CPU承受越来越多的网络和存储工作负载,已有的通用CPU和GPU开始不能完全满足快速变化的应用需求,性能更强大,更加专用,更加异构的数据处理单元(DPU)登上了历史的舞台

当前,DPU已成为以数据为中心的加速计算模型的三大支柱之一。其改变计算体系的端倪也正在浮现。

从二分天下到三分天下

自1950年代以来,中央处理器(CPU)就一直是每台计算机或智能设备的核心,是大多数计算机中唯一的可编程元件。并且,CPU诞生后,工程师也一直没放弃让CPU以消耗最少的能源实现最快的计算速度的努力。即便如此,人们还是发现CPU做图形计算太慢在这样的背景下,图形处理单元GPU应运而生

英伟达提出了GPU的概念,将GPU提升到了一个单独的计算单元的地位。GPU是在缓冲区中快速操作和修改内存的专用电路,因为可以加速图片的创建和渲染,所以得以在嵌入式系统、移动设备、个人电脑以及工作站等设备上广泛应用。1990年代以来,GPU则逐渐成为了计算的中心。

事实上,最初GPU还只是用来做功能强大的实时图形处理后来凭借其优秀的并行处理能力,GPU已经成为各种加速计算任务的理想选择。随着机器学习和大数据的发展,很多公司都会使用GPU加速训练任务的执行,这也是今天数据中心中比较常见的用例。

相较于CPU,大多数的CPU不仅期望在尽可能短的时间内更快地完成任务以降低系统的延迟,还需要在不同任务之间快速切换保证实时性。正是因为这样的需求,CPU往往都会串行地执行任务。而GPU的设计则与CPU完全不同,它期望提高系统的吞吐量,在同一时间竭尽全力处理更多的任务。

设计理念上的差异最终反映到了CPU和GPU的核心数量上GPU往往具有更多的核心数量。当然,CPU和GPU的差异也很好地形成了互补,其组合搭配在过去的几十年里,也为庞大的新超大规模数据中心提供了的动力,使得计算得以摆脱PC和服务器的繁琐局限。

然而,近几年,随着系统中的CPU承受越来越多的网络和存储工作负载,已有的通用CPU和GPU开始不能完全满足快速变化的应用需求。据IDC统计,近10年来全球算力增长明显滞后于数据的增长。每3.5个月全球算力的需求就会翻一倍,远远超过了当前算力的增长速度

在此驱动下,全球计算、存储和网络基础设施也在发生根本转变,一些复杂的工作负载,在通用的CPU上不能很好的处理。或者说,以CPU为中心的数据中心架构已经不能满足需求,以数据为中心才能更好满足市场和应用需求

英伟达网络事业部亚太区市场开发高级总监宋庆春此前就表示:“以前计算规模和数据量没那么大,冯诺依曼架构很好地解决了提高计算性能的问题。随着数据量越来越大,以及AI技术的发展,传统的计算模型会造成网络拥塞,继续提升数据中心的性能面临挑战。”

数据处理单元DPU的出现或将解救这一困境,作为最新发展起来的专用处理器的一个大类,DPU为高带宽、低延迟、数据密集的计算场景提供计算引擎。当前,DPU已成为以数据为中心的加速计算模型的三大支柱之一,其还将成为CPU的卸载引擎,释放CPU算力到上层。

DPU蔚然成风

按照技术出现的时间顺序和特点,DPU的发展则可以分为三个阶段

第一阶段智能设备阶段,这一阶段也可以称为DPU的史前时代。在这一阶段,解决节点间流量问题的最简单的方式是增加网卡的处理能力,通过在网卡上面引入SoC或者FPGA的方式加速某些特定流量应用,从而加强网络的可靠性,降低网络延迟,提升网络性能。

其中,Xilinx和Mellanox在这个领域进行的比较早,可惜由于战略能力不足,错失了进一步发展的机会,逐渐被DPU取代,最终被淘汰。其中Mellanox被Nvidia收购,Xilinx被AMD拿下。智能网卡成为DPU的应用产品而存在。

第二阶段数据处理芯片阶段,这个阶段是数据芯片真正开始被重视的阶段。最开始由Fungible在2019年提出,但没有引起太多反响英伟达将收购来的Mellanox重新包装之后,2020年10月又重新定义了DPU这个概念,这一次的重新定义使得DPU这个概念一炮而红。

具体来看,DPU被定义为一种新型可编程处理器,集三个关键要素于一身包括:行业标准的、高性能及软件可编程的多核CPU,通常基于已应用广泛的Arm架构,与其的SOC组件密切配合;高性能网络接口,能以线速或网络中的可用速度解析、处理数据,并高效地将数据传输到GPU和CPU;以及各种灵活和可编程的加速引擎,可以卸载AI、机器学习、安全、电信和存储等应用,并提升性能。

第三阶段则是基础设施芯片阶段。第三阶段的方案由Intel提出,变成FPGA+Xeon-D的模式,通过PCB版的方式放在一个智能网卡上。不难发现,Intel将IPU定位成host CPU上面一个“外挂”的小CPU。并且,未来这个“外挂”CPU和FPGA会封装到一个芯片中,形成一个通过PCIe总线互联的两个CPU系统。

当然,无论处于哪个阶段,所有这些DPU功能对于实现安全的、裸性能的、原生云计算的下一代云上大规模计算都具有重要意义。正如英伟达首席执行官黄仁勋此前在演讲中表示,“它将成为未来计算的三大支柱之一”,“CPU用于通用计算,GPU用于加速计算,而数据中心中传输数据的DPU则进行数据处理”。

一方面,GPU更安全,因为控制平面可以在系统内和系统集群之间与数据平面分离。DPU可以执行原本需要CPU处理的网络、存储和安全等任务。这就意味着如果在数据中心中采用了DPU,那么CPU的不少运算能力可以被释放出来,去执行广泛的企业应用。

另一方面,DPU还释放了服务器的容量,以便它们可以恢复到应用程序计算。在一些具有大量I / O和沉重虚拟化的系统上内核成本缩减一半,因此吞吐量提高了2倍。除了内核的成本,还要计算整个机器的成本,包括其内存和I / O以及所释放的工作量。

此外,DPU丰富的、灵活和可编程的加速引擎可减轻和改善AI和机器学习应用的性能。所有的这些DPU功能对于实现隔离的裸机云原生计算至关重要,它将定义下一代云规模计算,其改变存储行业的端倪也正在浮现。

以数据为中心

DPU广阔的市场空间,也让国际巨头开始纷纷提前布局。目前DPU主要厂商有Intel (收购Bearfoot), Mellanox(已被Nvidia收购),Marvell(收购了Cavium),Broadcom, Fungible(初创),Pensando(初创)等

其中,Intel是基于FPGA实现的,主要面向交换机、路由器芯片;Broadcom基于Arm实现,也是主要面向交换机、路由器芯片;Marvell通过收购Cavium,基于Arm实现,主要面向5G的基带;初创公司Pensando通过软件定义网络处理器,主要面向支持 P4的SDN。

中科驭数的创始团队国内较早进行DPU芯片研发的先行者。他们创新性提出了软件定义加速器技术(Software Defined Accelerator),自主研发了KPU(Kernel Processing Unit)芯片架构,2019年设计了业界首颗数据库与时序数据处理融合加速芯片,已经成功流片。

此外,以KPU架构为核心,在2019年流片第一颗芯片的基础上,中科驭数宣布了其下一颗DPU芯片研发计划,功能层面包括完善的L2/ L3/L4层的网络协议处理,可处理高达200G网络带宽数据。其次融合数据库、大数据处理能力,直接面向OLAP、OLTP及大数据处理平台,如Spark等。另外还囊括机器学习计算核以及安全加密运算核。该芯片预计将于2021年底流片

几乎可以确定,DPU已成为未来以数据为中心的必须。但DPU依然面临其本身需要克服的关卡。现在,DPU最大的问题就是“过热”,即功耗太高。以前一个网络DMA芯片功耗才5瓦左右,现在一个DPU动则100瓦以上(Fungible F1 120瓦)。

这意味着,大部分应用场景将无法用承受这么大功耗的网络设备。尤其是在100/200G以上,光模块功耗已经超过网络设备的情况下,再增加一个100瓦的网络DPU,会极大的提升网络的能源消耗,所以必须解决DPU功耗问题。

和功耗一样当前的的DPU还面临成本太高的问题,基于DPU的解决方案变没有降低网络互联的成本。此外,目前DPU都是面向数据中心的应用场景。但服务器增长空间更多在边缘计算中心,而且未来边缘计算互联将成为网络技术趋势。因此,DPU还必须考虑边缘计算场景。

当然,无论如何,DPU的出现并非要替代CPU和GPU,而是更好地满足数据中心市场的需求。可以预见,从CPU、GPU再到DPU的一体的架构将会让管理程序、调度程序都会变得更加容易。从边缘到核心数据中心,统一架构、统一管理、统一调度或将在不久之后得以实现。

(0)

相关推荐