数据处理单元(Data processing unit,DPU)是一种可编程电子电路,它具有数据处理以及硬件加速功能,数据处理单元主要用于数据中心内的数据计算处理。一个DPU通常含有一个中央处理器 、 网卡和可编程数据硬件加速引擎,因此DPU可以像中央处理器那样处理数据的同时还可以处理网络封包。
CPU v GPU v DPU: What Makes a DPU Different? A DPU is a new class of programmable processor that combines three key elements. A DPU is a system on a chip, or SoC, that combines:
An industry-standard, high-performance, software-programmable, multi-core CPU, typically based on the widely used Arm architecture, tightly coupled to the other SoC components. A high-performance network interface capable of parsing, processing and efficiently transferring data at line rate, or the speed of the rest of the network, to GPUs and CPUs. A rich set of flexible and programmable acceleration engines that offload and improve applications performance for AI and machine learning, zero-trust security, telecommunications and storage, among others.
DPU的核心功能就是网络数据处理,既包括网络协议的分析,也可以是直接满足应用需求的加工计算。随之可以减少 22~80%的 CPU 性能,因此也被称为“卸载”(offload)。DPU 的部分前身功能在智能网卡(SmartNIC)上实现,完整的 DPU 芯片本身也通常会被集成到板卡(网卡)上。
DPU中的“D”有三种解释: (1)Data Processing Unit,即数据处理器。这种解释把“数据”放在核心 位置,区别于信号处理器、基带处理器等通信相关的处理器对应的“信号”,也区别于GPU对应的图形图像类数据。 (2)Datacenter Processing Unit,即数据中心处理器。这种解释把数据中心作为DPU的应用场景,特别是随着WSC(Warehouse-scale Computer)的兴起,不同规模的数据中心成为了IT核心基础设施。目前来看,DPU确实在数据中心中使用前景非常广阔。
但是计算中心的三大部分:计算、网络、存储,计算部分是CPU占主导,GPU辅助;网络部分是路由器和交换机,存储部分是高密度 磁盘构成的的RAID系统和SSD为代表非易失性存储系统。在计算和网络中扮演数据处理的芯片都可以称之为Datacenter Processing Unit,所以这种说法相对比较片面。 (3)Data-centric Processing Unit,即以数据为中心的处理器。Data-centric,即数据为中心,是处理器设计的一种理念,相对于“Control-centric”即控制为中心。而数据为中心的理念与数据流 (Data Flow)计算一脉相承,是一种实现高效计算的方法。同时,现在试图打破访存墙(Memory Wall)的各种近存(Near-memory)计算、存内(Inmemory)计算、存算一体等技术路线,也符合数据为中心的设计理念。
随着云平台虚拟化技术的发展,智能网卡SmartNIC的发展基本可以分为三个阶段:
第⼀阶段:基础功能⽹卡
基础功能网卡(即普通网卡)提供2x10G或2x25G带宽吞吐,具有较少的硬 件卸载能力。在云平台虚拟化网络中,基础功能网卡向虚拟机(VM)提供网络接入的 方式主要是有三种:由操作系统内核驱动接管网卡并向虚拟机(VM)分发网络 流量;由OVS-DPDK接管网卡并向虚拟机(VM)分发网络流量;以及高性能场 景下通过SR-IOV的方式向虚拟机(VM)提供网络接入能力。
第⼆阶段:硬件卸载⽹卡 可以认为是第一代智能网卡,具有丰富的硬件卸载能力,比较典型的有OVS Fastpath硬件卸载,基于RoCEv1和RoCEv2的RDMA网络硬件卸载,融合网络中无损网络能力(PFC,ECN,ETS等)的硬件卸载,存储领域NVMe-oF的硬件卸载,以及安全传输的数据面卸载等。这个时期的智能网卡以数据平面的卸载为主。
第三阶段:DPU智能⽹卡 可以认为是第二代智能网卡,在第一代智能网卡基础上加入CPU,可以用 来卸载控制平面的任务和一些灵活复杂的数据平面任务。目前DPU智能网卡的 特点首先是支持PCIe Root Complex模式和Endpoint模式,在配置为PCIe Root Complex模式时,可以实现NVMe存储控制器,与NVMe SSD磁盘一起构建存储服务器;另外,由于大规模的数据中心网络的需要,对无损网络的要求更加严 格,需要解决数据中心网络中Incast流量、“大象”流等带来的网络拥塞和时延问题,各大公有云厂商纷纷提出自己的应对方法,比如阿里云的高精度拥塞控制(HPCC,High Precision Congestion Control),AWS的可扩展可靠数据报 (SRD,Scalable Reliable Datagram)等。DPU智能网卡在解决这类问题时将会引 入更为先进的方法,如Fungible的TrueFabric,就是在DPU智能网卡上的新式解 决方案。还有,业界提出了Hypervisor中的网络,存储和安全全栈卸载的发展方向,以Intel为代表提出了IPU,将基础设施的功能全部卸载到智能网卡中,可以 全面释放之前用于Hypervisor管理的CPU算力。