很长一段时间以来,啥还中央处理器(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



