DPU(Data Processing Unit)数据处理器
DPU:5G边缘云
5G时代带来通信带宽的巨大提升,更多的带宽使能更多的应用。数据量的迅猛增多,服务器网络带宽的快速增长,都已经远超计算能力的增长,有线速I/O处理需求的应用程序,受到CPU和内存的限制,现有系统因为CPU资源占用,致延迟增加,包处理性能出现波动。
5G时代带来互联终端设备的大爆发,也带来数据大爆发。据统计2019年全球产生数据45ZB,预计到2024年这一数字将达到142ZB,其中24%的数据将来自终端实时数据。海量数据条件下,低时延网络传输,及数据处理的算力需求,及性能压力巨大。
5G时代带来个性化定制私域网络时代。5G网络不止用于公众客户,更主要的赋能各行各业,作为新基建的重要组成,推动社会发展。5G将大量部署在网络边缘,提供实时应用和服务。据IDC统计,近10年来全球算力增长,明显滞后于数据的增长。每3.5个月全球算力的需求就会翻一倍,远超算力增长的速度。算力,作为先进生产力,承载了十万亿美元规模经济。在5G的推动下,计算组织从“端-云”一体,到“端-边缘-云”一体;从内存计算发展到网内计算。基础设施云资源作为5G发展的重要基石,也发生了极大的变化。
5G的需求
5G MEC是一种分布式计算部署架构,将计算能力、业务以及部分5G网络能力部署到网络边缘,实现低时延的就地数据处理、敏感数据本地处理。MEC可以很好的适配低频、频次不确定性同时时间敏感的业务场景。
5G MEC包括5G网关UPF、边缘应用平台MEP、行业应用APP以及虚拟化基础设施。5G MEC作为一体式设备,部署在靠近终端用户侧的边缘位置,提供大带宽、低时延的网络连接能力,AI、图像渲染等计算能力,以及面向行业的安全能力。
图1:边缘云网融合架构
边缘计算将从传统的集中式互联网交换(Internet Exchange IX)模型,扩展到边缘交换模型。位于边缘的最终用户和设备远离主要IX点,流量到达这些位置所需的距离,会降低性能并显著增加传输成本。网络互联需要在靠近最终用户的最后一公里网络附近的边缘进行。数据在边缘互联和共享,不涉及核心网。边缘互联将更多流量保留在本地。
低延迟网络是边缘计算的重要组成,要求网络节点尽可能靠近本地。随着越来越多的数据在本地产生本保存,网络互联密度将在边缘激增,骨干网将延伸到边缘,对等互联和数据交换将发生在接入网的1-2跳内。随着边缘计算基础设施的建设,许多设施将发挥网络间数据交换点的作用。网络汇聚于这些节点,为边缘服务提供支持,降低边缘服务延迟,缩短光纤距离,减少网络跳数。随着计算向边缘扩展,网络交叉连接也将更加分散。预计到2025年,75%的数据将在工厂、医院、零售、城市的边缘产生、处理、存储和分析。
5G具有灵活的前导码,以满足低延迟连接的需求。随着边缘计算需求的增长,现有的回传网络处理速度无法匹配5G网络数据产生的速度和容量需求,需要在边缘部署新的、更快和更高容量的路由。
5G虚拟化网络功能需要高度分布式的数据中心。这类数据中心可以部署足够多的服务器,在运行5G网络的同时运行边缘云服务。
将工作负载置于边缘要求对应用构建和运行的方式进行调整,让代码可以从数据中心的服务器到客户场所设备中的微控制器。需要管理高度分布式的应用和数据,编排大规模的边缘操作。(云原生技术和DevSecOps技术)推送到边缘的代码应该是自包含的,每个组件必须完整,包含代码、配置、库以及软件定义的环境,代码作为一个整体构建、测试和部署,确保容器或虚拟机可以在任何地方运行。
DPU的出现
在云基础设施领域,CPU用于通用计算,构建应用生态,虚拟化技术例如Hypevisor等占用大量的内存和CPU资源,而真正用作共享的资源受到较大的影响。以网络协议处理为例,解析报文需要接近100个cycle,线速处理10G的网络需要约4个Xeon CPU的核,单做网络数据包处理,就可以占去一个8核高端CPU一半的算力。而GPU用于加速计算,专注于图像处理、流媒体处理,并继续朝着AR、VR处理,AI加速的方向发展。在云基础设施领域,需要一种技术,能够卸载CPU负荷,最大限度的将硬件资源共享给租户。
十年前,网络处理器(NP)主要用于包处理、协议处理加速,应用在各种网关、防火墙、UTM等设备上,多采用多核NOC架构。后来Intel推出了DPDK技术,在用户空间上利用自身提供的数据平面库手法数据包,绕过linux内核协议栈,极大提升了包转发速率,原来需要NP来实现的网关类设备,现在X86就能满足性能要求。而DPU则是5G时代集网络加速为一体的新型数据处理单元。DPU内部融合了RDMA、网络功能、存储功能、安全功能、虚拟化功能。接手CPU不擅长的网络协议处理、数据加解密、数据压缩等数据处理任务,同时兼顾传输和计算的需求。DPU起到连接枢纽的作用,一端连接CPU、GPU、SSD、FPGA加速卡等本地资源,一端连接交换机/路由器等网络资源。总体而言,DPU不仅提高了网络传输效率,而且释放了CPU算力资源,从而带动整体数据中心的降本增效。
1950年以来,CPU是计算机或智能设备的核心
1990年以来,GPU登上舞台
5G的时代是数据革命时代,也是DPU的时代。
什么是DPU
DPU是相当于智能网卡的升级版本,增强了网络安全和网络协议的处理能力,增强了分布式存储的处理能力,将软件定义网络、软件定义存储、软件定义加速器融合到一个有机的整体中,解决协议处理,数据安全,算法加速等计算负载,替代数据中心用于处理分布式存储和网络通信的CPU资源。
DPU本质上是分类计算,是将数据处理/预处理从CPU卸载,同时将算力分布在更靠近数据发生的地方,从而降低通信量,涵盖基于GPU的异构计算,基于网络的计算(In-NetworkComputing)、基于内存(In-Memory-Computing)的计算等多个方面。DPU定位于协同处理单元,是数据面与控制面分离思想的一种实现,其与CPU协作配合,后者负责通用控制,前者专注于数据处理。在局域网场景下DPU通过PCIe/CXL等技术连接同一边缘内各种CPU、GPU,广域网场景下主要通过Ethernet/infiniband等技术实现边缘与边缘间、边缘与云之间的连接。
DPU包括特定的报文处理引擎,如P4、POF等,此外还包含ARM等协处理器能够处理路由器场景中的大量分支预测。具备低延迟的交换能力,能将不同类型的数据包快速分发给不同的处理单元。
基于DPU的网络处理模块是完全可编程的。相比于ASIC,DPU能随着网络、协议、封装和加密算法的快速变化,以软件的速度改变硬件的能力。通过DPU提高每个网络节点上的计算能力,相比标准网卡,同等算力所需的服务器数量更少,降低了前期成本、空间、电力和散热的要求,DPU会降低大规模部署网络服务的TCO。
DPU将成为新的数据网关,集成安全功能,使网络接口成为隐私的边界。可将开销巨大的加解密算法如国密标准的非对称加密算法SM2、哈希算法SM3和对称分组密码算法SM4,交由DPU处理。未来,随着区块链技术的成熟,共识算法POW、验签等都会消耗大量的CPU算力也可以固化在DPU中。
DPU将成为存储的入口。分布式系统中NVMeof协议扩展到InfiniBand或TCP互联的节点中,实现存储的共享和远程访问。这些数据流的协议处理可以集成在DPU中,作为各种互联协议控制器。
DPU将成为云服务提供商管理资源的工具,云服务提供商将云资源管理占用全部下沉至DPU,将CPU、GPU全部释放出来,作为基础设施提供给云租户。提供者与使用者两者之间的资源严格区分,管理界面清晰,方便使用。
DPU实现的方式:
不同厂商DPU实现方式不一:
Marvell收购了Innovium,提供面向5G的基带处理 DPU,其OCTEON 10系列DPU,采用台积电5nm制程,首次采用ARM Neoverse N2 CPU内核; Netronome,其NFP4000流处理器,包括48个数据包处理内核和60个流处理内核,所有这些内核都可以通过P4编程; Pensando其Capri处理器具有多个可编程的P4处理单元。 Fungible,其DPU基于MIPS,面向网络、存储、虚拟化,包含52个MIPS小型通用核以及6个大类的专用核。
英伟达 2019年3月,收购以色列芯片公司Mellanox,其推出的BlueField-2包括8个ARM Cortex-A72核及多个专用加速核区域。DOCA(data center infrastructure-on-a-chip Architecture)作为 DPU上的软件开发平台,提供标准API,将驱动程序、库、示例代码、文档和与包装的容器组合在一起,支持基于DPU应用和服务的快速开发。
英特尔,收购了深度学习芯片公司Nervana System,以及移动和嵌入式机器学习公司Movidius,将CPU与FPGA结合在一起构建DPU。提供DPDK(Intel Data Plane Development Kit),为用户空间高效的数据包处理提供库函数核驱动的支持,通过SR-IOV技术,实现不同应用通过DMA直接与PCIe设备一起工作。FPGA扩展到300万个逻辑单元,可以与其他处理模块一起实现网络、内存、存储和计算。
Broadcom基于Arm实现DPU,主要面向交换机、路由器芯片。以NetXtreme E系列控制器为基础,搭载TruFlow技术,推出了Stingray SmartNIC。
Xilinx 2019年收购了solarFlare,其最新发布的Alveo SN1000系列基于 16nm UltraScale+FPGA架构,容量为100万个LUT,包含一个NXP的16核ARM处理器,可以在FPGA上每秒处理400万个状态连接和1亿个数据包。其solarFlare onl oad(TCPDirect)功能应用于全球90%的金融交易所。
AWS Nitro,采用了网络卡、存储卡、控制器卡多卡形态来实现DPU功能。收购了以色列芯片上Annapurna labs。
阿里云,推出了MOC卡产品,集成了志强D处理器、FPGA,是一种单卡形态产品。
英伟达的DPU(BlueField-2)功能特色
从2021中国5G网络创新论坛上英伟达沈宇希嘉宾的演讲中获知,英伟达的BlueField-2采用SoC架构设计,最大200Gbps带宽,编码方式支持NRZ 25Gbps模式和PAM4 50Gbps模式,内置ConnectX-6 Dx网卡芯片,支持RDMA,同时支持TLS/IPSec。
图2:BlueField-2 DPU芯片
DPU可以提供实时时钟。搭载ConnectX-6DX的DPU,通过PHC2SYS能够实现服务器与网卡之间400ns的同步精度,ConnetX-6DX之间借助PTP4l可以实现20ns的同步精度,满足5G无线DU时钟同步需求。
DPU增强边缘网络部署智能。DPU支持裸金属、虚拟化、容器化部署模式。裸金属控制层通过DPU仿真NVMe设备,数据层借助DPU的ASIC芯片高速转发,并通过NVMatrix基于Infiniband或RoCEv2无损网络连接后端高通量分部式集群。DPU可为裸金属物理机接入灵活可扩展的高速云盘服务。
DPU可以提供灵活可扩展的网络设备。DPU可以配置为两类设备:一类为NVIDIA原生设备,包括PF/VF、SF;另一类为VirtIO-Net设备。其中,SF专门针对基于裸金属的大规模容器开发,功能与VF设备相当,支持RDMA、内核协议栈,开启无需打开SR-IOV。该DPU最大支持512个SF(SubFunction)。
图3:DPU示意图
DPU对网络加速。DPU采用了ASAP2网络加速技术。ConnetX-6DX内置了Embeded switch(E-Switch),能够实现网络设备之前的数据交换和处理。E-Switch可编程,支持查表操作及表跳转,表项与OVS数据面匹配。OVS数据面可卸载至E-Switch,通过ASIC实现了内核OVS的卸载,转发性能高。通过ASAP2 将OVS数据面、控制面、管理面分开,后两者通过DPU的ARM计算组件来实现,数据面卸载到E-Switch,从而实现加速的效果。E-Switch支持多种Overlay协议的卸载,如VXLAN、GRE等,支持报文头修改,实现NAT功能。E-Switch支持Connection Track,实现TCP连接的状态监控,此外还支持流量统计和限速、镜像;E-Switch与现有SDN控制器及编排工具无缝兼容。基于该DPU,裸金属云可以快速部署,实现网络性能的提升。
DPU提供高可靠的存储。相比于智能网卡,DPU增加了存储卸载功能,通过SNAP技术向主机OS呈现多个存储设备。应用对DPU的访问由IO Processor统一处理,包括SPDK和硬件卸载两种处理方式。用户可以在DPU连接的存储设备上安装操作系统,并启动,从而构建本地完全没有磁盘的裸金属架构,实现比本地磁盘更高的可靠性。租户对存储的定义和访问都通过DPU完成,对主机操作系统无依赖,同时可以充分利用远端存储支持数据快速迁移(分钟级)。
小结
当前,虽然有众多巨头的参与,DPU市场仍然处于初级阶段。随着网络流量指数上涨,在任何有大流量的地方,DPU都将存在,市场前景广阔。在DPU加持下,5G时代边云协同、云网一体都将逐渐成为现实。
DPU数据处理器
DPU-数据中心的心脏
一种新型领域专用处理器DPU正悄然兴起。DPU,是Data Processing Unit的简称,是面向数据中心的专用处理器。DPU产品还处于发展初期阶段,但顺应数据要素化的爆发浪潮,已吸引了从半导体巨头到创业公司的广泛关注。
CPU优势是通用和所承载的复杂的业务生态,具有丰富的软件生态和稳定的系统的可用性。GPU作为图像处理的核心,将继续向虚拟现实、增强现实、深度学习等方向发展。DPU将软件定义网络、软件定义存储、软件定义加速器融合到一个有机的整体中,解决协议处理、数据安全、算法加速等负载。
DPU将助力隐私计算的发展
基于隐私保护技术的数据要素化,使得数据所有权和使用权分离,使得数据价值可以流动。这显然是有巨大代价的。主要是算力和网络的两方面:
- 多方安全计算、联邦学习、同态加密、差分隐私、零知识证明等密码学方法,性能低,需要的计算资源比明文多几个数量级;
- 算力不足可以用硬件加速缓解,但是网络带宽,尤其是公网环境,有限的带宽是目前落地的瓶颈。尤其是多方安全计算MPC、联邦学习等需要多轮网络交互的技术。
对于性能问题,DPU可以带来改善。DPU的本质是将计算向存储靠近。类似的方案有存内计算、近内存计算等框架,还有将计算和数据融合的雾计算。以数据为中心的处理器首先解决的是性能问题。
在数据的流动,即网络传输,是数据中心的第二大职能。诸如网络协议处理、传输压缩、数据加密等任务都是网卡设备的职能。DPU可以被集成到SmartNIC(下一代网卡)中,从而带来网卡的性能提升,那么它不仅可以处理物理层和链路层的数据帧,也有能力承担网络层和应用层的职能。
如果DPU可以将网络和算力的性能分别提升2个数量级以上,将会极大地加速整个隐私计算行业的应用落地,促进行业大发展。
端上DPU-全面软件定义硬件
数据中心的负载主要有:计算的分配、存储的共享、硬件资源的虚拟化等。DPU不仅使得网卡功能变得“软件定义硬件”,可能成为全面的“软件定义硬件”的工具。未来,DPU的市场也将不会局限在数据中心,也会出现在移动端和边缘端,例如自动驾驶场景、物联网数据融合和一些消费级的DPU产品、移动端上隐私保护。
DPU在端上的发展,将促进形成以用户为中心的数据所有权格局。借助分布式系统等技术例如区块链。新的数据生态、数据经济、数据商业模式将成为现实。
DPU全称是 data processing unit,在云计算技术和产品里出现时间也有几年了,包括AWS的Nitro(注意不是智能网卡ENA,ENA对应的是Mellanox的CX-5等),不过大部分云厂商都是用于自己云平台上,只是最近NVIDIA CEO Jensen Huang对其DPU产品BlueField-X的介绍和产品发布视频导致了一股讨论热潮。
BlueField-2图例
那么到底什么是DPU?通过以下几点对DPU即同类型设备的几点特征做如下解释:
1)DPU是一块完整的板卡,这块卡有独自的CPU,不是类似原来嵌入式设备的MIPS等性能不高的CPU,通常是ARM等服务器同类型的CPU;这块卡还有独立的内存、磁盘、网卡及可配置GPU等增强设备,有独立的BMC和OS,如果不看物理形态,完全是一台体积小的服务器;
2)DPU设备工作时,附录在通用服务器上,作为附属设备使能,通过PCI设备与所属Host进行交互信息;在Host OS来看,DPU设备是透明的,但是提供的网路、存储、安全等能力是可见的;
3)DPU设备的启动/重启,对所属Host有依赖,二者的OS相互独立但是有控制信息传递和数据信息的交互(通过PCI接口);相比智能网卡,完全在所属主机Host内可视可控;
4)不少人认为DPU是智能网卡或智能网卡的增强版,个人并不这么认为;一方面是DPU要比智能网卡的能力全的多(包括有网络能力、存储能力、安全能力等),再一个是智能网卡的驱动通常是在所在主机内,DPU完全不需要任何驱动,最后DPU有独立的CPU和OS而智能网卡仅是驱动设备;所以DPU是一种全新的软件定义基础设施的设备(Software-Defined Infrastructure),不是已有网卡设备的增强版;
DPU可以提供的几点能力:
1)提供为所属主机的网络处理能力、存储处理能力和安全处理能力,这些能力可以使用DPU的OS的软件栈来实现,也可以通过智能网卡或安全设备实现网络处理能力、存储处理能力和安全处理能力的硬件卸载,以提升处理性能;比如NVIDIA的BlueField-2,集成了ConnectX-6提供200G的以太网,或IB处理能力,实现了虚拟交换机卸载;
2)DPU类型的设备所用CPU,可以是前面提及的ARM,也可以是其它能力匹配的CPU,比如X86等,但产品化要考虑性能、功耗、产品体积、主机插槽等各方面影响;
3)DPU类型的设备,如类似AWS的Nitro卡,可以提供hypervisor的能力,对BMS和EC2实例提供一致的产品架构和特性能力,对于BMS产品实现尤其重要,可以参考阿里的神龙相关说明;
4)DPU类型设备提供了服务器“异构”的生态自主构建能力,如X86的服务器上,很多如Mellanox(已被NVIDIA 收购)的网卡、英伟达的GPU,可以很方便的在X86上,通过标准的PCI标准提供相应的能力,无需再直接和X86 主板CPU产生关联;使得其它厂商给服务器的主机CPU外围,提供更多能力构建的通道,不会和主机CPU产生绑定和依赖,“绕开”了主机CPU厂商设置的“门槛”。
DPU给业界带来什么?
1)从技术上来说,可以通过主机外面附加DPU设备,最大化Host资源使用率,通过DPU的廉价性使能,在如云计算场景,有更多的主机CPU可以销售,提供更大规格单EC2实例,甚至BMS提供了方案,更多的主机CPU出售,主机数没有增加,销售产品数量增加了;使用DPU的智能网卡等硬件卸载,提升网络能力和存储能力,以及加解密安全能力;DPU设备对于主机的透明性,增加了云计算主机入侵后的扩散隔离能力;
2)从商业上讲,以DPU对于NVIDIA为例,NVIDIA产品中网卡、GPU外设,可以不再受Host主板/板载约束,DPU设备通过PCI标准通信,实现了CPU算力的逐步抢占,可以在维持客户数据中心已有X86设备的基础上,叠加NVIDIA的设备能力,逐步蚕食这块算力市场,构建NVIDIA在数据中心整体能力建设,最终实现数据中心全NVIDIA的“设备全栈”目标;突破比如intel CPU板载网卡,必须是本厂商的限制;
3)从趋势上讲,DPU设备对于主机Host,具有了更多“智能化”,虽然原来服务器通常有管理职能化(BMC),但接口标准性、接口性能、功能丰富度一直存在不足,DPU设备对于数据中心硬件设备的SDN(Network Defined Software)、SDS(Network Defined Storage)后的SDC(Network Defined Compute)最后一环,提供了一种实现,相比原来纯虚拟化内容的SDC,最终实现了能力加设备的智能管控,即前面提及的SDI能力;
4)DPU设备的出现,解决了数据中心服务器设备,尤其是在云场景下的一些问题,为数据中心的智能化,实现了重要的一环;如果X86服务器的CPU主机,使用了NVIDIA的DPU后,导致CPU的板载网卡处于无用之地,给整体设备采购成本、采购流程带来了影响,DPU选型需要考虑到市场和客户因素;
5)从整体运行的系统性来讲,原来单主机允许的故障范围,扩大到DPU设备和CPU主机,二者之一有故障,会带来整体的损坏,可靠性和稳定性角度是有下降的,毕竟“没有免费的午餐”,想获得收益就得有付出,只是这个代价是否是客户可以接受的。
6)DPU毕竟也属于一款硬件产品,研发不仅包括了CPU,还有网卡、OS等,对于基于DPU进行自主和服务器设备自身研发,不会存在太多差异,甚至因为设备体积限制等,带来更多制造精度的要求,因此DPU的制造可以当做服务器集成,技术上还是有很多可以从服务器商借鉴的;如果说一款DPU类型的设备全是创业公司自研,这个自研说法的可信度也自然就值得怀疑;
总之,DPU设备提供了较多的实用能力,有NVIDIA等厂商对产品的定位和市场考虑,但“数据中心基础架构”只能当做厂商自己目标的宣传语,没到必要的程度;从DPU的市场来看,主要用于云计算场景,云计算大厂商基本都会有自己自研设备或设备合作定制;DPU产品之路,且行且看路,因为这条路真不宽。
参考链接:
http://www.techweb.com.cn/cloud/2021-08-27/2855191.shtml
http://www.techweb.com.cn/cloud/2021-08-31/2855676.shtml
https://zhuanlan.zhihu.com/p/366784412