很长一段时间以来
,啥还中央处理器(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往往在4到8核,频率在2到3GHz 。数据中心的 CPU 往往有更多的核心和更高的时钟速度。CPU 的核心较少但功能强大,而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可以被认为是一种较通用的芯片
。 FPGA——Field Programmable Gate Array
,现场可编程门阵列 ,本质上它是一种硬件,可以根据用户的需要进行多次编程。 简单地说,FPGA可以用来实现任何逻辑功能。与GPU或 ASIC(Application Specific Integrated Circuit,专用集成电路)不同,FPGA 芯片内部的电路不是硬蚀刻的——它可以根据需要重新编程。这种能力使 FPGA 成为 ASIC 的绝佳替代品,不过ASIC 通常需要较长的开发时间和大量的设计和制造投资。 与 GPU 相比
,FPGA 可以在需要低延迟的深度学习应用中提供卓越的性能。可以对 FPGA 进行微调,以平衡功率效率和性能要求。当应用程序需要低延迟和小批量时,FPGA 可以提供优于 GPU 的性能优势。 DPU—— 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 形成新的“铁三角” ,彻底颠覆数据中心的运算模式。

CPU架构 ,来源
:StatusNeo



