CPU和GPU广泛应用于数据中心,它们非常昂贵,需要消耗大量电力,有时却被要求处理一些并不擅长的工作。 工欲善其事必先利其器,如果把CPU、GPU和DPU看成工具,使用CPU和GPU处理数据,就好比杀鸡用牛刀,而DPU这个新工具可以大大节省技术人员大量的时间和精力。在数据中心引入了DPU这种新工具,可以大大提高数据处理效率。 几年前DPU 处理器的出现某种程度上是为了解决特定的数据处理需求。在数据中心场景,随着DPU作用的扩展,经过精心设计的DPU可以比CPU或GPU以更低的功耗和成本更高效地处理数据。在存储呈指数级增长的大型数据中心中,节省成本和电力尤为重要。
DPU Vs CPU Vs GPU
在现代数据中心,CPU和GPU是DPU处理器替代工作负载的主要目标。理想的数据中心中,CPU、GPU和DPU将协同工作,每个处理器按照能力各司其职。
| CPU、GPU和DPU的拓扑结构 CPU 已经存在了几十年,并且一直被迫保持通用性,以便可以在它必须支持的大量应用程序中实现向前和向后兼容。CPU日复一日为成千上万依赖于它的应用程序而坚持。 CPU既昂贵又耗电,但它的优势在于一代又一代的一致性。 世界上所有的编程工具都是以此为生态构建的,但CPU对于纯数据处理相关任务的效率不高。 另一方面,GPU是用于视频和图形数据的高度专业化处理器,它比 CPU 更昂贵,而且非常非常耗电。GPU的数据处理指标很差,在某种程度上很难被用于与图形处理无关的任务,因为它们很难编程。 DPU 处理器是一种低功耗、低成本的专用处理单元,处理数据的效率远高于同类处理器。
以数据为中心的工作负载 那么,DPU是什么?
笔者认为,DPU是一组比数据中心中的其他处理器更高效地处理、移动和存储数据的资源。关键词是“更高效”,DPU 应该显著提高性能指标,比如数据中心的每瓦性能和每美元性能。 上述说法并没有从物理上定义 DPU 是什么。在笔者看来,DPU 可以是芯片,也可以是卡。在某种程度上,它是对功能的抽象,可以以多种方式实现。 DPU 处理器必须处理的任务包括数据保护/安全、数据移动和数据操作/分析等功能。由于每个数据中心都具有不同的架构和要求,因此 DPU 必须是高度可编程的。 DPU 可编程性使 DPU 能够在高度变化的工作负载和要求下提升效率。DPU可以采用一组处理器的形式,这些处理器具有面向数据处理的特定指令,或者采用协处理器和硬件加速的形式,以增强处理单元来有效地处理数据。 处理器需要专用的低功耗内核和具有卸载功能的协处理器才能达到最高效率。最优的DPU需具备处理器和加速器的完整组合以及决策能力,以便知道何时调动资源应用于与数据相关的问题。
| 三种处理器的区别 在上文的定义中,数据移动是DPU 处理器的关键标准,因此DPU必须具有高速且以数据中心为中心的接口。如果一个高效的处理器不与数据中心中的任何东西连接,它又有什么用呢? 因此,DPU至少需要一个 Gen 4 PCIe 接口,以允许与其他硬件(如 SSD 或 CPU)进行内部通信,并需要一个高速外部接口(如多个 100GbE 接口),以与其他数据中心设备进行外部通信。 至此,DPU有了相对完整的轮廓——以 NVMeoF/TCP 和 RoCE 协议进行通信的外部网络接口;将 NVMe 作为Root Complex或端点进行通信的内部 PCIe 接口;大量的特殊内核、协处理器和加速器;最后是运行于其上的软件堆栈。 在上文中,频繁地出现了“高效”一词。 DPU 出现的原因之一是为了降低 TCO(Total Cost of Ownership,总拥有成本),DPU需要分担数据中心其他处理器的工作(可能是网络卸载、计算卸载或数据服务卸载)来节省成本,尤其是降低进入数据中心的资本成本和降低数据中心的运营成本。 DPU 处理器必须比其他处理单元消耗更少的功率和成本,并且必须简化数据中心的构成,从而使其更加可靠。
不同类型的处理器
如前所述,DPU 是各种体系结构中特性和功能的抽象。不同于已经相对固化的CPU,DPU可以从头开始设计,具有专门的内核和加速功能。 DPU可以采用纯 ASIC 或 ASIC + CPU 内核的形式,甚至可以采用 FPGA 的形式,它们各有利弊。
数据平面不灵活的 DPU
某些DPU 结合了处理器和硬连线加速功能,其差异主要表现在使用了哪些内核,使用了多少内核,以及内核和硬连线逻辑之间的工作分离是什么。它们大多还共享如 PCIe 总线和 100GbE 端口等高速接口。 内核和硬连线功能的结合看似完美,但事实并非如此。大多数 DPU 处理器有 8 到 64 个 ARM 内核,主要用于控制平面功能。 除功耗更低外,ARM 内核在数据处理方面相比x86 处理器并无明显优势,但如果仅在硬连线逻辑中处理数据平面,则很难使DPU发挥ASIC设计灵活性的功能。 总之,这种类型的 DPU 处理器有一个非常不灵活的数据平面和一个名义上的处理控制平面,这节省了一些功率。针对特定的网络、安全或存储卸载任务,如 TLS、IPsec、纠删码或压缩,那么这些类型的 DPU 将工作得很好。
处理能力较弱的 DPU
处理能力很弱或没有处理能力的 DPU 在很大程度上依赖于硬连线功能,通常以 ASIC 或 FPGA 的形式出现。它们在成本和功率方面都非常高效,而且在网络、安全和存储卸载功能方面都有很好的选择。但是,它们对数据操作和分析任务非常不灵活。
结合了低功耗和高性能数据处理的可编程 DPU
另一种 DPU依赖于众多低功率、Data-Efficient 内核和硬件加速引擎,以提供最高效和灵活的解决方案。 数据平面和控制平面的处理都在内核中进行,其中每个内核或内核组都可以就何时以及如何使用协处理器或加速器来增强功能做出最佳决策。每个内核的功耗都远低于 ARM 或 x86 内核,因此可显着降低功耗。该 DPU 处理器的内核在其指令集中效率更高,因此与典型的 CPU 内核相比,可以有序处理更多数据。 总之,这种类型的DPU通过降低功耗和成本最大限度地降低 TCO,并提供最大的灵活性来处理固定任务。同时,它还有能力执行数据操作任务,例如 AI 或推理工作负载。
DPU 处理器在数据中心的作用是什么?
CPU、DPU 和 GPU 在数据中心中都发挥着至关重要的作用,它们各司其职,每一个都在执行自己擅长处理的功能。 CPU 将始终执行运行中的用户应用程序、虚拟机和容器的繁重工作,而 GPU 将处理繁重的并行计算。DPU 是两者的粘合剂,执行 DPU 网络、DPU 安全和 DPU 存储功能,这些功能是 CPU 和 GPU 都做不好的。由于未来数据中心将节省TCO,可以预见此后几年 DPU 的集成将大大增加。
(文章来源:SDNLAB)