查看原文
其他

有了CPU、GPU,为啥还需要DPU?

SDNLAB酱 SDNLAB 2023-03-04

编者按

很长一段时间以来,中央处理器(CPU)和图形处理单元(GPU)一直“统治”着数据中心。然而,近几年,数据处理单元(DPU)越来越多地出现在大家面前,并号称性能更强大、更专用、更异构,能够处理CPU做不好,GPU做不了的任务,那事实究竟如何,一起看下去吧。

CPU

CPU—— Central Processing Unit, 中央处理器,CPU之于计算机、服务器,也就相当于大脑对于人类的作用。
 
计算、控制、存储是CPU“大脑”布局谋略、发号施令、控制行动的主要表现形式。
 
CPU 是对计算机的所有硬件资源(如存储器、输入输出单元) 进行控制调配、执行通用运算的核心硬件单元,是计算机的运算和控制核心。
 
CPU主要包括了运算器(ALU, Arithmetic and Logic Unit)、控制单元(CU, Control Unit)、寄存器(Register)、高速缓存器(Cache)和它们之间通讯的数据、控制及状态的总线。
 
总的来说也就是计算单元、控制单元和存储单元。
| CPU微架构示意图,来源:网络
 

#

控制单元

控制单元是整个CPU的指挥控制中心,由指令寄存器IR(Instruction Register)、指令译码器ID(Instruction Decoder)和操作控制器OC(Operation Controller)等构成,主要是对指令译码,并且发出为完成每条指令所要执行的各个操作的控制信号。

#

计算单元

计算单元在CPU中很重要,主要负责算术和逻辑运算。相对控制单元而言,运算器接受控制单元的命令而进行动作,即运算单元所进行的全部操作都是由控制单元发出的控制信号来指挥的。

#

存储单元

存储单元包括CPU片内缓存和寄存器组,是CPU中暂时存放数据的地方,里面保存着那些等待处理的数据,或已经处理过的数据,CPU访问寄存器所用的时间要比访问内存的时间短。采用寄存器可以减少CPU访问内存的次数,从而提高了CPU的工作速度。但因为受到芯片面积和集成度所限,寄存器组的容量不可能很大。


相对于控制单元和存储单元,CPU的计算单元在整个结构中占比较少,故而相对于大规模并行计算能力,CPU更擅长于逻辑控制、串行运算。
 
下图展示了一个基础的CPU架构。以个人电脑的CPU为例,CPU 往往与内存 (RAM)、硬盘驱动器和 NIC(网络接口控制器)相连,如果你想要打游戏或者处理图像/视频,那就需要添加GPU;如果想要更快地访问内存,那可以选择添加 SSD。
| CPU架构,来源:StatusNeo
 
普通个人电脑中的 CPU往往在4到8核,频率在2到3GHz。数据中心的 CPU 往往有更多的核心和更高的时钟速度。CPU 的核心较少但功能强大,而GPU可以有很多核心,但在时钟速度方面的能力更弱。
 
GPU
 
GPU——Graphics Processing Unit,图形处理器,跟它的名字一样,GPU最初是用在个人电脑、游戏机和一些移动设备上运行绘图运算工作的微处理器。
 
理解 GPU 和 CPU 之间区别的一种简单方式是比较它们如何处理任务。
 
CPU 由专为顺序串行处理而优化的几个核心组成,而 GPU 则拥有一个由数以千计的更小、更高效的核心组成的大规模并行计算架构。
 
GPU的构成相对简单,有数量众多的计算单元和超长的流水线,特别适合处理大量的类型统一的数据。
| GPU微架构示意图,来源:网络
 
当涉及算术运算和逻辑运算等常规计算时,通常是CPU更快,但是当涉及到大型矩阵乘法和并行算法时,GPU 排在第一位。GPU 拥有数千个内核并行进行运算,这些内核的时钟速度较低或内核较弱,但在并行计算中效率很高,并且每个核心都有自己的 ALU。
 
不过GPU不能单独工作,需要CPU的协同处理。
 
GPU的工作大部分计算量庞大,但没什么技术含量,而且要重复很多很多次。当CPU需要大量的处理类型统一的数据时,就可以调用GPU进行并行计算。
 
尽管GPU叫图形处理器,但它并不是只能处理图像。
 
GPU虽然是为了图像处理而生,但在结构上并没有专门为图像服务的部件,只对CPU的结构进行了优化与调整。
 
GPU基于大吞吐量设计,拥有更多的ALU,适合对密集数据进行并行处理,擅长大规模并发计算,因此GPU也被应用于深度学习、神经网络和人工智能等需要大规模并发计算场景。
 
GPU可以被认为是一种较通用的芯片。
| GPU架构,来源:StatusNeo
 
FPGA
 
FPGA——Field Programmable Gate Array,现场可编程门阵列,本质上它是一种硬件,可以根据用户的需要进行多次编程。
 
简单地说,FPGA可以用来实现任何逻辑功能。与GPU或 ASIC(Application Specific Integrated Circuit,专用集成电路)不同,FPGA 芯片内部的电路不是硬蚀刻的——它可以根据需要重新编程。这种能力使 FPGA 成为 ASIC 的绝佳替代品,不过ASIC 通常需要较长的开发时间和大量的设计和制造投资。
| FPGA架构,来源:网络

与 GPU 相比,FPGA 可以在需要低延迟的深度学习应用中提供卓越的性能。可以对 FPGA 进行微调,以平衡功率效率和性能要求。当应用程序需要低延迟和小批量时,FPGA 可以提供优于 GPU 的性能优势。
 
DPU
 
DPU—— Data Processing Unit ,数据处理单元,DPU是面向数据中心的专用处理器。
 
在计算架构中,CPU 具有多重职责,例如运行应用程序、执行计算,同时它还扮演着数据流量控制器的角色,在 GPU、存储、FPGA和其他设备之间移动数据,因此 CPU 更加以计算为中心。
 
随着数据中心建设、网络带宽和数据量急剧增长,由于CPU性能增长速度放缓,为了寻求效率更高的计算芯片,DPU由此产生。
 
DPU解决的是大流量网络数据包处理占用CPU问题。
 
有人说,DPU正在取代CPU,建立以数据为中心的计算架构。
| DPU架构,来源:StatusNeo
 
CPU用于通用计算,GPU用于加速计算,而DPU则进行数据处理。
 
DPU和CPU最大的区别是,CPU擅长一般的计算任务,而DPU更擅长基础层应用任务,比如网络协议处理、交换路由计算、加密解密、数据压缩等等。
 
简单来说,CPU做不好,GPU做不了的那些任务,交给DPU就完事儿了。
DPU并非单一芯片,而是一块SoC(System On Chip,片上系统)芯片,一个DPU一般包含一个CPU、NIC和可编程数据加速引擎。这使得 DPU 具有CPU的通用性和可编程性,同时专门针对网络数据包、存储请求或分析请求进行高效处理。
 
  • 一个高性能、软件可编程的多核 CPU,通常基于广泛使用的 Arm 架构,与其他 SoC 组件紧密耦合。

  • 一种高性能网络接口,能够解析、处理数据,并有效地将数据传输到GPU和CPU。

  • 一组丰富的灵活、可编程的加速引擎,可以卸载和提高人工智能和机器学习、零信任安全、网络和存储等应用程序的性能。

 
DPU 可以是基于 ASIC 的、基于FPGA 的或基于SoC 的。由于以数据为中心的计算的使用增加,DPU 越来越多地用于数据中心、大数据、安全和人工智能/机器学习/深度学习等场景。
 
如果说CPU是计算生态的底座、主力芯片的基石,GPU是从图形处理到数据处理芯片的蜕变,那么DPU则是因数据中心而生的芯片。
 
DPU能够助力数据中心更高效的应对多元化的算力需求。
 
未来DPU也将与 CPU 、 GPU 形成新的“铁三角”,彻底颠覆数据中心的运算模式。
 
 
参考:
https://statusneo.com/big-data-computing-power-cpu-vs-gpu-vs-dpu/
https://www.sohu.com/a/200698604_160923
https://blogs.nvidia.com/blog/2020/05/20/whats-a-dpu-data-processing-unit/
https://mp.weixin.qq.com/s/qzr1yk9oLD98fjamoTt1jA

【投稿】:SDNLAB原创文章奖励计划

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存