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

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

相对于控制单元和存储单元 ,CPU的计算单元在整个结构中占比较少 ,故而相对于大规模并行计算能力,CPU更擅长于逻辑控制、串行运算 。
下图展示了一个基础的CPU架构。以个人电脑的CPU为例 ,CPU 往往与内存 (RAM) 、硬盘驱动器和 NIC(网络接口控制器)相连 ,如果你想要打游戏或者处理图像/视频 ,服务器租用那就需要添加GPU;如果想要更快地访问内存,那可以选择添加 SSD。
CPU架构,来源:StatusNeo普通个人电脑中的 CPU往往在4到8核,频率在2到3GHz。数据中心的 CPU 往往有更多的核心和更高的时钟速度。CPU 的核心较少但功能强大,而GPU可以有很多核心,但在时钟速度方面的能力更弱。
GPUGPU——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可以被认为是一种较通用的芯片 。

FPGA——Field Programmable Gate Array ,现场可编程门阵列,本质上它是一种硬件 ,可以根据用户的需要进行多次编程 。
简单地说 ,FPGA可以用来实现任何逻辑功能 。与GPU或 ASIC(Application Specific Integrated Circuit ,专用集成电路)不同,FPGA 芯片内部的电路不是硬蚀刻的——它可以根据需要重新编程 。这种能力使 FPGA 成为 ASIC 的绝佳替代品 ,不过ASIC 通常需要较长的开发时间和大量的设计和制造投资 。

与 GPU 相比 ,FPGA 可以在需要低延迟的深度学习应用中提供卓越的性能 。可以对 FPGA 进行微调,以平衡功率效率和性能要求。当应用程序需要低延迟和小批量时,FPGA 可以提供优于 GPU 的性能优势 。
DPUDPU—— Data Processing Unit ,数据处理单元,DPU是面向数据中心的专用处理器。
在计算架构中,CPU 具有多重职责,例如运行应用程序、执行计算 ,同时它还扮演着数据流量控制器的角色,在 GPU、存储 、FPGA和其他设备之间移动数据,因此 CPU 更加以计算为中心 。
随着数据中心建设、网络带宽和数据量急剧增长,由于CPU性能增长速度放缓 ,为了寻求效率更高的计算芯片,DPU由此产生。
DPU解决的是大流量网络数据包处理占用CPU问题。
有人说,DPU正在取代CPU ,建立以数据为中心的计算架构。

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 形成新的“铁三角” ,彻底颠覆数据中心的运算模式。