1.什么是DPU
DPU(Data Processing Unit)是以数据为中心构造的专用处理器,采用软件定义技术路线支撑基础设施层资源虚拟化,支持存储、安全、服务质量管理等 基础设施层服务。2020年NVIDIA公司发布的DPU产品战略中将其定位为数据中心继CPU和GPU之后的“第三颗主力芯片”,掀起了一波行业热潮。DPU的出现是异构计算的一个阶段性标志。与GPU的发展类似,DPU是应用驱动的体系结构设计的又一典型案例;但与GPU不同的是,DPU面向的应用更加底层。DPU要解决的核心问题是基础设施的“降本增效”,即将“CPU处理效率低 下、GPU处理不了”的负载卸载到专用DPU,提升整个计算系统的效率、降低 整体系统的总体拥有成本(TCO)。DPU的出现也许是体系结构朝着专用化路线发展的又一个里程碑。
关于DPU中“D”的解释
DPU中的“D”有三种解释:
(1)Data Processing Unit,即数据处理器。这种解释把“数据”放在核心 位置,区别于信号处理器、基带处理器等通信相关的处理器对应的“信号”, 也区别于GPU对应的图形图像类数据,这里的“数据”主要指数字化以后的各 种信息,特别是各种时序化、结构化的数据,比如大型的结构化表格,网络流 中的数据包,海量的文本等等。DPU就是处理这类数据的专用引擎。
(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)计算、存算一体等技术路线,也符合数据为中心的设计理念。
以上三种关于“D”的解释,从不同角度反映DPU的特征,都有一定的可取之处,笔者认为可以作为不同的三个维度来理解DPU的内涵。
DPU的作用
DPU最直接的作用是作为CPU的卸载引擎,接管网络虚拟化、硬件资源池 化等基础设施层服务,释放CPU的算力到上层应用。以网络协议处理为例,要 线速处理10G的网络需要的大约4个Xeon CPU的核,也就是说,单是做网络数据包处理,就可以占去一个8核高端CPU一半的算力。如果考虑40G、100G的高速网络,性能的开销就更加难以承受了。Amazon把这些开销都称之为 “Datacenter Tax”,即还未运行业务程序,先接入网络数据就要占去的计算资源。AWS Nitro产品家族旨在将数据中心开销(为虚拟机提供远程资源,加密解密,故障跟踪,安全策略等服务程序)全部从CPU卸载到Nitro加速卡上,将给上层应用释放30%的原本用于支付“Tax”的算力!
DPU可以成为新的数据网关,将安全隐私提升到一个新的高度。在网络环境下,网络接口是理想的隐私的边界,但是加密、解密算法开销都很大,例如 国密标准的非对称加密算法SM2、哈希算法SM3和对称分组密码算法SM4。如果用CPU来处理,就只能做少部分数据量的加密。在未来,随着区块链承载的业务的逐渐成熟,运行共识算法POW,验签等也会消耗掉大量的CPU算力。而这些都可以通过将其固化在DPU中来实现,甚至DPU将成为一个可信根。
DPU也可以成为存储的入口,将分布式的存储和远程访问本地化。随着 SSD性价比逐渐可接受,部分存储迁移到SSD器件上已经成为可能,传统的面向 机械硬盘的SATA协议并不适用于SSD存储,所以,将SSD通过本地PCIe或高速 网络接入系统就成为必选的技术路线。NVMe(Non Volatile Memory Express) 就是用于接入SSD存储的高速接口标准协议,可以通过PCIe作为底层传输协议,将SSD的带宽优势充分发挥出来。同时,在分布式系统中,还可通过NVMe over Fabrics(NVMe-oF)协议扩展到InfiniBand、Ethernet、或Fibre channel节点中,以RDMA的形式实现存储的共享和远程访问。这些新的协议处理都可以集成在DPU中以实现对CPU的透明处理。进而,DPU将可能承接各种互连协议控制器的角色,在灵活性和性能方面达到一个更优的平衡点。
DPU将成为算法加速的沙盒,成为最灵活的加速器载体。DPU不完全是一颗固化的ASIC,在CXL、CCIX等标准组织所倡导CPU、GPU与DPU等数据一致性访问协议的铺垫下,将更进一步扫清DPU编程障碍,结合FPGA等可编程器件,可定制硬件将有更大的发挥空间,“软件硬件化”将成为常态,异构计算 的潜能将因各种DPU的普及而彻底发挥出来。在出现“Killer Application”的领域都有可能出现与之相对应的DPU,诸如传统数据库应用如OLAP、OLTP, 5G 边缘计算,智能驾驶V2X等等。
2.DPU的发展背景
DPU的出现是异构计算的又一个阶段性标志。摩尔定律放缓使得通用CPU 性能增长的边际成本迅速上升,数据表明现在CPU的性能年化增长(面积归一 化之后)仅有3%左右1,但计算需求却是爆发性增长,这几乎是所有专用计算芯片得以发展的重要背景因素。以AI芯片为例,最新的GPT-3等千亿级参数的超大型模型的出现,将算力需求推向了一个新的高度。DPU也不例外。随着2019年我国以信息网络等新型基础设施为代表的“新基建”战略帷幕的拉开,5G、千兆光纤网络建设发展迅速,移动互联网、工业互联网、车联网等领域发展日新月异。云计算、数据中心、智算中心等基础设施快速扩容。网络带宽从主流 10G朝着25G、40G、100G、200G甚至400G发展。网络带宽和连接数的剧增使得数据的通路更宽、更密,直接将处于端、边、云各处的计算节点暴露在了剧增的数据量下,而CPU的性能增长率与数据量增长率出现了显著的“剪刀差”现象。所以,寻求效率更高的计算芯片就成为了业界的共识。DPU芯片就是在这样的趋势下提出的。
带宽性能增速比(RBP)失调
摩尔定律的放缓与全球数据量的爆发这个正在迅速激化的矛盾通常被作为处理器专用化的大背景,正所谓硅的摩尔定律虽然已经明显放缓,但“数据摩尔定律”已然到来。IDC的数据显示,全球数据量在过去10年年均复合增长率接近50%,并进一步预测每四个月对于算力的需求就会翻一倍。因此必须要找到新的可以比通用处理器带来更快算力增长的计算芯片,DPU于是应运而生。这个大背景虽然有一定的合理性,但是还是过于模糊,并没有回答DPU之所以新的原因是什么,是什么“量变”导致了“质变”?
从现在已经公布的各个厂商的DPU架构来看,虽然结构有所差异,但都不约而同强调网络处理能力。从这个角度看,DPU是一个强IO型的芯片,这也是 DPU与CPU最大的区别。CPU的IO性能主要体现在高速前端总线(在Intel的体系里称之为FSB,Front Side Bus),CPU通过FSB连接北桥芯片组,然后连接到主存系统和其他高速外设(主要是PCIe设备)。目前更新的CPU虽然通过集成 存储控制器等手段弱化了北桥芯片的作用,但本质是不变的。CPU对于处理网络处理的能力体现在网卡接入链路层数据帧,然后通过操作系统(OS)内核态,发起DMA中断响应,调用相应的协议解析程序,获得网络传输的数据(虽然也有不通过内核态中断,直接在用户态通过轮询获得网络数据的技术,如Intel的DPDK,Xilinx的Onload等,但目的是降低中断的开销,降低内核态到用户态的切换开销,并没有从根本上增强IO性能)。可见,CPU是通过非常间接 的手段来支持网络IO,CPU的前端总线带宽也主要是要匹配主存(特别是 DDR)的带宽,而不是网络IO的带宽。
相较而言,DPU的IO带宽几乎可以与网络带宽等同,例如,网络支持 25G,那么DPU就要支持25G。从这个意义上看,DPU继承了网卡芯片的一些特 征,但是不同于网卡芯片,DPU不仅仅是为了解析链路层的数据帧,而是要做直接的数据内容的处理,进行复杂的计算。所以,DPU是在支持强IO基础上的具备强算力的芯片。简言之,DPU是一个IO密集型的芯片;相较而言,DPU还是一个计算密集型芯片。
进一步地,通过比较网络带宽的增长趋势和通用CPU性能增长趋势,能发现一个有趣的现象:带宽性能增速比(RBP,Ratio of Bandwidth and Performance growth rate)失调。RBP定义为网络带宽的增速比上CPU性能增速, 即RBP=BW GR/Perf. GR如图1-1所示,以Mellanox的ConnectX系列网卡带宽作为网络IO的案例,以Intel的系列产品性能作为CPU的案例,定义一个新指标“带 宽性能增速比”来反应趋势的变化。
2010年前,网络的带宽年化增长大约是30%,到2015年微增到35%,然后在 近年达到45%。相对应的,CPU的性能增长从10年前的23%,下降到12%,并在近年直接降低到3%。在这三个时间段内,RBP指标从1附近,上升到3,并在近年超过了10!如果在网络带宽增速与CPU性能增速近乎持平,RGR~1,IO压力尚未显现出来,那么当目前RBP达到10倍的情形下,CPU几乎已经无法直接应对网络带宽的增速。RBP指标在近几年剧增也许是DPU终于等到机会“横空出世”的重要原因之一。
异构计算发展趋势的助⼒
DPU首先作为计算卸载的引擎,直接效果是给CPU“减负”。DPU的部分功能可以在早期的TOE(TCP/IP Offloading Engine)中看到。正如其名,TOE 就是将CPU的处理TCP协议的任务“卸载”到网卡上。传统的TCP软件处理方式虽然层次清晰,但也逐渐成为网络带宽和延迟的瓶颈。软件处理方式对CPU的占用,也影响了CPU处理其他应用的性能。TCP卸载引擎(TOE)技术,通过将TCP协议和IP协议的处理进程交由网络接口控制器进行处理,在利用硬件加速为网络时延和带宽带来提升的同时,显著降低了 CPU 处理协议的压力。具体有三个方面的优化:1)隔离网络中断,2)降低内存数据拷贝量,3)协议解析硬件化。这三个技术点逐渐发展成为现在数据平面计算的三个技术,也是DPU普遍需要支持的技术点。例如,NVMe协议,将中断策略替换为轮询策略,更充分的开发高速存储介质的带宽优势;DPDK采用用户态调用,开发“Kernelbypassing”机制,实现零拷贝(Zeor-Copy);在DPU中的面向特定应用的专用核,例如各种复杂的校验和计算、数据包格式解析、查找表、IP安全(IPSec)的支持等,都可以视为协议处理的硬件化支持。所以,TOE基本可以被视为DPU的雏形。
延续TOE的思想,将更多的计算任务卸载至网卡侧来处理,促进了智能网卡(SmartNIC)技术的发展。常见的智能网卡的基本结构是以高速网卡为基本 功能,外加一颗高性能的FPGA芯片作为计算的扩展,来实现用户自定义的计算逻辑,达到计算加速的目的。然而,这种“网卡+FPGA”的模式并没有将智能网卡变成一个绝对主流的计算设备,很多智能网卡产品被当作单纯的FPGA加速卡来使用,在利用FPGA优势的同时,也继承了所有FPGA的局限性。DPU是对现有的SmartNIC的一个整合,能看到很多以往SmartNIC的影子,但明显高于之前任何一个SmartNIC的定位。
Amazon的AWS在2013研发了Nitro产品,将数据中心开销(为虚机提供远程 资源,加密解密,故障跟踪,安全策略等服务程序)全部放到专用加速器上执 行。Nitro架构采用轻量化Hypervisor配合定制化的硬件,将虚拟机的计算(主要是CPU和内存)和I/O(主要是网络和存储)子系统分离开来,通过PCIe总线连接,节省了30%的CPU资源。阿里云提出的X-Dragon系统架构,核心是MOC卡,有比较丰富的对外接口,也包括了计算资源、存储资源和网络资源。MOC卡的核心X-Dragon SOC,统一支持网络,IO、存储和外设的虚拟化,为虚拟机、裸金属、容器云提供统一的资源池。
可见,DPU其实在行业内已经孕育已久,从早期的网络协议处理卸载,到后续的网络、存储、虚拟化卸载,其带来的作用还是非常显著的,只不过在此 之前DPU“有实无名”,现在是时候迈上一个新的台阶了。
3.DPU发展历程
随着云平台虚拟化技术的发展,智能网卡的发展基本可以分为三个阶段(如图1-2所示):
图1-2 智能⽹卡发展的三个阶段
第⼀阶段:基础功能⽹卡
基础功能网卡(即普通网卡)提供2x10G或2x25G带宽吞吐,具有较少的硬 件卸载能力,主要是Checksum,LRO/LSO等,支持SR-IOV,以及有限的多队列能力。在云平台虚拟化网络中,基础功能网卡向虚拟机(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算力。
未来的DPU智能⽹卡硬件形态
随着越来越多的功能加入到智能网卡中,其功率将很难限制在75W之内, 这样就需要独立的供电系统。所以,未来的智能网卡形态可能有三种形态:
(1)独立供电的智能网卡,需要考虑网卡状态与计算服务之间低层信号识 别,在计算系统启动的过程中或者启动之后,智能网卡是否已经是进入服务状 态,这些都需要探索和解决。
(2)没有PCIe接口的DPU智能网卡,可以组成DPU资源池,专门负责网络 功能,例如负载均衡,访问控制,防火墙设备等。管理软件可以直接通过智能 网卡管理接口定义对应的网络功能,并作为虚拟化网络功能集群提供对应网络 能力,无需PCIe接口。
(3)多PCIe接口,多网口的DPU芯片。例如Fungible F1芯片,支持16个双 模PCIe控制器,可以配置为Root Complex模式或Endpoint模式,以及8x100G网络 接口。通过PCIe Gen3 x8接口可以支撑8个Dual-Socket计算服务器,网络侧提供 8x100G带宽的网口。
DPU作为一种新型的专用处理器,随着需求侧的变化,必将在未来计算系统中成为一个重要组成部分,对于支撑下一代数据中心起到至关重要的作用。
4.DPU与CPU、GPU的关系
CPU是整个IT生态的定义者,无论是服务器端的x86还是移动端的ARM,都 各自是构建了稳固的生态系统,不仅形成技术生态圈,还形成了闭合价值链。
GPU是执行规则计算的主力芯片,如图形渲染。经过NVIDIA对通用GPU (GPGPU)和CUDA编程框架的推广,GPU在数据并行的任务如图形图像、深度学习、矩阵运算等方面成为了主力算力引擎,并且成为了高性能计算最重要的辅助计算单元。2021年6月公布的Top500高性能计算机(超级计算机)的前10 名中,有六台(第2、3、5、6、8、9名)都部署有NVIDIA的GPU。
数据中心与超极计算机不同,后者主要面向科学计算,如大飞机研制,石油勘探、新药物研发、气象预报、电磁环境计算等应用,性能是主要指标,对接入带宽要求不高;但数据中心面向云计算商业化应用,对接入带宽,可靠性、灾备、弹性扩展等要求更高,与之相适应发展起来的虚拟机、容器云、并行编程框、内容分发网等等技术,都是为了更好的支撑上层商业应用如电商、支付、视频流、网盘、办公OA等。但是这些IaaS和PaaS层的服务开销极大, Amazon曾公布AWS的系统开销在30%以上。如果需要实现更好的QoS,在网络、存储、安全等基础设施服务上的开销还会更高。
这些基础层应用类型与CPU架构匹配程度不高导致计算效率低下。现有的 CPU的架构有两个大类:多核架构(数个或数十几个核)和众核架构(数百个核以上),每种架构支持唯一的规范通用指令集之一,如x86、ARM等。以指令集为界,软件和硬件被划分开来分别独立发展,迅速的催生了软件产业和微处理器产业的协同发展。但是,随着软件复杂度的上升,软件的生产率 (Productivity)得到更多的重视,软件工程学科也更加关注如何高效地构建大型软件系统,而非如何用更少的硬件资源获得尽可能高的执行性能。业界有个被戏称的“安迪比尔定律”,其内容是“What Andy gives, Bill takes away”,安迪(Andy)指英特尔前CEO安迪·格鲁夫,比尔(Bill)指微软前任CEO比尔· 盖茨,意为硬件提高的性能,很快被软件消耗掉了。
正如CPU在处理图像处理时不够高效一样,现在有大量的基础层应用CPU处理起来也比较低效,例如网络协议处理,交换路由计算,加密解密,数据压 缩等这类计算密集的任务,还有支持分布式处理的数据一致性协议如RAFT等。这些数据或者通过从网络IO接入系统,或者通过板级高速PCIe总线接入系统,再通过共享主存经由DMA机制将数据提供给CPU或GPU来处理。既要处理大量的上层应用,又要维持底层软件的基础设施,还要处理各种特殊的IO类协议,复杂的计算任务让CPU不堪重负。
这些基础层负载给“异构计算”提供了一个广阔的发展空间。将这些基础层负载从CPU上卸载下来,短期内可以“提质增效”,长远来看还为新的业务增长提供技术保障。DPU将有望成为承接这些负载的代表性芯片,与CPU和 GPU优势互补,建立起一个更加高效的算力平台。可以预测,用于数据中心的DPU的量将达到和数据中心服务器等量的级别,每年千万级新增,算上存量的替代,估算五年总体的需求量将突破两亿颗,超过独立GPU卡的需求量。每台服务器可能没有GPU,但必须有DPU,好比每台服务器都必须配网卡一样。
5.DPU的产业化机遇
数据中心作为IT基础设施最重要的组成部分在过去10年成为了各大高端芯片厂商关注的焦点。各大厂商都将原有的产品和技术,用全新的DPU的理念重 新封装后,推向了市场。
NVIDIA收购Mellanox后,凭借原有的ConnectX系列高速网卡技术,推出其 BlueField系列DPU,成为DPU赛道的标杆。作为算法加速芯片头部厂商的Xilinx 在2018年还将“数据中心优先(Datacenter First)”作为其全新发展战略。发布了Alveo系列加速卡产品,旨在大幅提升云端和本地数据中心服务器性能。2019年4月,Xilinx宣布收购Solarflare通信公司,将领先的FPGA、MPSoC和ACAP解 决方案与 Solarflare 的超低时延网络接口卡( NIC )技术以及应用加速软件相结合,从而实现全新的融合SmartNIC解决方案。Intel 2015年底收购了Xilinx的竞争 对手——Altera,在通用处理器的基础上,进一步完善硬件加速能力。Intel 2021年6月新发布的IPU产品(可以被视为Intel版本的DPU),将FPGA与Xeon D系列处理器集成,成为了DPU赛道有力的竞争者。IPU是具有强化的加速器和以太网连接的高级网络设备,它使用紧密耦合、专用的可编程内核加速和管理基础架构功能。IPU提供全面的基础架构分载,并可作为运行基础架构应用的主机的控制点,从而提供一层额外防护。几乎同一时间,Marvall发布了OCTEON 10 DPU产品,不仅具备强大的转发能力,还具有突出的AI处理能力。
在同一时期,一些传统并不涉足芯片设计的互联网厂商,如海外的Google、Amazon,国内的阿里巴巴等巨头纷纷启动了自研芯片的计划,而且研发重点都是面向数据处理器的高性能专用处理器芯片,希望以此改善云端的服务器的成本结构,提高单位能耗的性能水平。数据研究预测DPU在云计算市场的应用需求最大,且市场规模随着云计算数据中心的迭代而增长,到2025年单中国的市场容量都将达到40亿美元的规模。
来源:本篇内容来自专用数据处理器(DPU)技术 白皮书,中国科学院计算技术研究所,鄢贵海等”。版权归原作者所有
编辑:jq
全部0条评论
快来发表一下你的评论吧 !