分享

零点有数带你一文分清CPU、GPU、DPU计算“三兄弟”

 零点有数 2022-02-23

*作者:零点有数副总裁 许正军

【导读】

DPU(Data Processing Unit,数据处理单元(器)),作为继CPU和GPU后的第三个计算单元横空出世,主要负责数据中心中的安全、网络、存储等网络基础的运行管理计算,以及高性能计算(High Performance Computing,HPC)和人工智能(Artificial Intelligence,AI)等专用任务的加速处理。

CPU、GPU和DPU分工协作,共同担负起面向大数据时代的数据中心的计算任务。

 DPU到底是什么?

多年来,CPU(Center Process Unit,中央处理单元(器))一直是大多数计算机中唯一的可编程元件。而近年来,GPU(Graphic Process Unit,图形处理单元(器))凭借其强大的实时图形处理能力和并行处理能力,已成为各种加速计算如图形处理、人工智能、深度学习和大数据分析应用的理想选择。CPU和GPU不仅广泛应用于个人电脑和服务器内,而且已被大量地用于各种新型超大规模数据中心。

最近这两年出现的DPU是一个专用于网络传输数据处理的拥有独立操作系统的可编程的芯片模块(即SOC,System on Chip)。DPU可以用作独立的嵌入式处理器,也可集成在智能网卡上使用。集成DPU的智能网卡通常称为DPU智能网卡。

为了了解DPU,我们需要先来了解DPU智能网卡;为了了解智能网卡,我们需要先来了解传统网卡。






传统网卡(Network Interface Card,NIC),全称为“网络接口卡”,基于外围组件互连标准PCIPeripheral Component Interconnect)或外围组件快速互连标准PCIe(Peripheral Component Interconnect-express)(二者都是一种高速串行计算机扩展总线标准,用于与主机进行通信,具体差异参见第四节的概念扩展,可以插入服务器或存储盒,实现主机与以太网的连接

基于传统网卡进行互连的网络基础可以支撑成千上万人的沟通,但对于涉及数十亿规模设备的物联网(Internet of ThingsIOT)的沟通就有点力不从心了。物联网网络的动态性、数据流量的井喷、数据处理的快速性和数据传输的实时性等特点,要求网络基础的构建要具有更好的灵活性,即需要对网络基础进行虚拟化构建与部署(虚拟化可以简化运维、提高硬件的利用率、降低成本、增加业务部署的灵活性)。

为适应这种要求,数据中心的服务器CPU通常需要消耗20%~30%的计算资源来处理这些虚拟化任务,这对于宝贵的CPU计算资源来说是一个不小的开销。由于服务器CPU不得不分散计算资源处理这些虚拟化任务,以及整个网络基础设施的运行管理,真正留给CPU处理应用业务的计算资源就相对较少,这也导致了数据中心的计算资源与数据中心要面对的不断增长的数据业务之间的矛盾。尽管可以通过扩展服务器CPU的计算资源来缓解矛盾,但相比不断增长的数据业务任务,实际收效甚微。受制于CPU固有的计算模式,CPU硬件性能的提升永远赶不上数据增长的速度IDC统计,近10年来全球算力增长明显滞后于数据增长:全球算力的需求每3.5个月就会翻一倍,远远超过了当前算力的增长速度

既然“扩容”不是最行之有效的办法,那就想办法将服务器CPU从网络基础的运行管理中解放出来,让CPU专注于应用业务层面的计算任务。即把需要消耗服务器CPU 20%~30%计算资源的那些网络虚拟化、负载均衡和其他低级任务从CPU“剥离”出去,以充分释放CPU内核

智能网卡应运而生。

智能网卡不仅实现传统网卡的以太网络连接,还将网络传输的数据包处理工作从服务器CPU上移除过来,即可以卸载服务器CPU的网络处理工作负载和有关任务,如虚拟交换、安全隔离、QoS(Quality of Service)等网络运行管理任务,以及一些高性能计算(HPC)和人工智能(AI)机器学习,从而可以释放服务器CPU内核、节省服务器CPU资源以用于应用业务任务的处理。一方面实现了服务器CPU对应用任务的加速处理,另一方面也提升了数据中心的整体性能。

智能网卡为数据中心应对不断增长的数据量、网络流量、低时延要求和计算复杂性等所带来的压力,提供了一定的有效办法。

但早期的智能网卡本身不带CPU内核,没有自己独立的操作系统,不能脱离服务器CPU独立运行,其运行还是需要消耗大量服务器CPU内核来进行流量的分类、跟踪和控制。

换言之,传统的数据中心架构是以CPU为中心的架构。服务器CPU既控制了GPU的运行,也控制了智能网卡的运行。

为方便起见,我们将此时的智能网卡称为“传统智能网卡”

前面提到,受制于CPU固有的计算模式,CPU硬件性能的提升永远赶不上数据增长的速度。尽管有了智能网卡,但若整个数据中心是以CPU为中心的架构,那意味着数据中心的算力增长与数据增长之间的矛盾将永远无法消除。有没有破解之方?

既然CPU硬件性能的提升永远赶不上数据增长的速度,那就不要让CPU来主控整个数据中心的计算任务。将整个数据中心的计算任务就交给数据中心本身,即数据中心以数据为中心来统筹规划各项计算任务。

不过,这需要在CPU、GPU之外寻求新的利器。DPU为此而来。

DPU作为继CPU、GPU之后的第三个计算单元,自带CPU内核和操作系统,可以脱离服务器CPU的控制而独立运行,也可以建立自己的总线系统,从而控制和管理其他设备。这一点至关重要,这意味着DPU可以数据中心的数据计算需求为出发点独立担纲“主演”。也就是说,数据中心架构将从此前以服务器CPU为中心向以DPU为中心转变。以DPU为中心的数据中心架构本质上是以数据为中心,根据数据中心的数据任务需要情况,可动态地卸载网络、存储、计算等网络基础设施,以及一些高性能计算(HPC)和复杂的机器学习计算任务,从而提升数据中心的整体性能。

DPU智能网卡在传统智能网卡的基础上,由于DPU的存在,一方面,可以构建一个新的网络拓扑,这个新的网络拓扑以数据中心的数据流(Dataflow)的加速处理为出发点,以数据中心的整体性能提升为目标。DPU智能网卡可以根据数据流进行软件定义网络(Software Define Network,SDN)和网络功能虚拟化(Network Function Visualization,NFV),使得网络基础资源具有更好的灵活性,以应对数据流量不断增长、计算时延要求和计算复杂性越来越高所带来的压力;另一方面,也可以对从服务器CPU上卸载过来的任务进行加速处理,并且可以将更多的专有任务,特别是一些HPC和AI机器学习任务,从服务器CPU上移除过来。

总体上看,DPU智能网卡可以提升网络节点之间服务器的数据交换效率和数据传输的可靠性,可提升网络节点内数据中心的执行效率和数据输入输出(I/O)切换效率,服务器架构的灵活性得到了进一步的优化,网络系统的安全性得到了进一步的保障。

简言之,DPU智能网卡是传统智能网卡的升级。

 CPU、GPU、DPU计算“三兄弟”

让我们举个例子。小美的二叔在某主题公园总裁部工作,每天都很忙很忙。小美说:“二叔,你怎么那么忙呢?”二叔说:“对呀,有很多事情做,既要策划主题,还要招商、调度等等,今天我是没法陪你玩了。”小美抱怨说:“这些都非得你来干吗?”

说者无意,听者有心,小美的话点醒了二叔。于是二叔在集团中进行了一项变革,从此,主题公园专门开设了A部门,专门管理购票、安全和基础设备相关的事宜;再开设了B部门,专门负责节目策划、超市运营、商务管理等工作;而总裁办只需要做好调度工作,并集中把握公园游玩主题、满足游客的高质量体验即可。

这么实施一段时间后,总裁办的工作量大大减少,还总体提高了游客的游园效率和体验幸福感。






上述例子中,总裁办就相当于“CPU”(负责整个IT生态的定义及处理通用计算任务),A部门相当于“DPU”(承担起安全、网络、存储和AI等其它专用业务的加速处理),B部门相当于“GPU”(负责数据并行的任务,如图形图像、深度学习、矩阵运算等加速计算任务)。

多年来,CPU一直是计算机中负责“计算”的主要元件,所有的应用业务计算和网络基础设施的运行管理计算都由CPU负责。而近年来,GPU凭借其强大的实时图形处理能力和并行处理能力,已成为各种加速任务如图形处理、人工智能、深度学习和大数据分析应用的理想选择。由此形成了CPU用于通用计算、GPU用于加速计算的“双子星”格局。

“双子星”格局中,CPU仍是主角,GPU是配角,GPU仍然依赖CPU的调度管理。

有了DPU后,一些与关键业务应用无关的网络基础运行管理(安全、网络、存储)和其它任务(如AI和HPC)就可以从CPU中移除,让CPU专注于关键业务应用的计算。

由此,CPU、GPU和DPU构成了面向大数据时代的数据中心计算“三兄弟”。

当然,DPU并非要替代CPU和GPU,而是三者分工协作。其中,CPU负责整个IT生态的定义及处理通用计算任务,GPU负责数据并行的任务如图形图像、深度学习、矩阵运算等加速计算任务,DPU则承担起安全、网络、存储和AI等其它专用业务的加速处理。

附图1 CPU、GPU、DPU的分工协作示意图

 DPU的展望 

2020年,知名半导体厂商英伟达(NVIDIA)公司发布DPU产品战略,将其定位为数据中心继CPU和GPU之后的“第三颗主力芯片”,由此将DPU芯片推至半导体领域的焦点。与此同时,英特尔及等国内外芯片厂家也都陆续推出自己的DPU产品。DPU产品的研发已成为全球半导体领域炙手可热的领域。

2021年10月16—17日,中国计算机学会第二届集成电路设计与自动化学术会议(CCF DAC)在武汉举行。期间,中科院计算所行业内首部《专⽤数据处理器(DPU)白皮书》在大会DPU主题分论坛发布。

DPU宛如一个连接枢纽,可以起到中心调度管理的作用,一端连接各种CPU、GPU、FPGA加速卡等本地资源,一端连接交换机/路由器等网络资源。DPU正在开启一个巨大的产业化趋势,可以为下一代数据中心、5G边缘计算、云计算提供核心组件。

当然,DPU的出现并非要替代CPU和GPU,而是更好地满足数据中心市场的需求。三者协作,才是未来数据中心计算领域的前沿发展趋势。

附图2 DPU智能网卡在数据中心和边缘计算的位置示意图

 概念扩展 

CPU
CPU(Central Processing Unit,中央处理器)在三大计算支柱中发展最早,主要包括运算器(Arithmetic and Logic Unit,ALU)、控制单元(Control Unit,CU)、寄存器(Register)、高速缓存器(Cache)和它们之间通讯的数据、控制及状态的总线。CPU遵循的是冯诺依曼架构,即存储程序、顺序执行。
CPU需要大量的空间去放置存储单元和控制逻辑,相比之下计算能力只占据了很小的一部分,所以CPU更擅长逻辑控制,而非大规模并行计算能力。
GPU

GPU(Graphics Processing Unit,图形处理器)的诞生是为了解决CPU在大规模并行运算中受到的速度限制。GPU更善于处理图像领域的运算加速,最初是用在个人电脑、工作站、游戏机和一些移动设备上运行绘图运算工作的微处理器。

但是GPU无法单独工作,必须由CPU进行控制调用才能工作。也就是说CPU可单独作用,处理复杂的逻辑运算和不同的数据类型,但当需要处理大量的类型统一的数据时,则可调用GPU进行并行计算。

PCI和PCIe

PCI(Peripheral Component Interconnect,外围组件互连标准)是目前个人电脑中使用最为广泛的外部设备连接接口,主要用于连接声卡、网卡、视频卡、显卡及其它基于PCI标准的专用插卡。由于PCI总线只有133MB/s的带宽,对于有快速读写要求(I/O)的外围设备(如显卡)不能满足要求。

PCIe(Peripheral Component Interconnect-express,外围组件快速互连标准)是一种高速串行计算机扩展总线标准,其总线带宽规格从1条通道连接到32条通道连接,有非常强的伸缩性,以满足不同系统设备对数据传输带宽的不同需求。其中,16条通道的能够提供5GB/s的带宽。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多