CPU是一种微处理器,用于执行程序根据操作(如算术、逻辑、控制和输入-输出)给出的指令。相反,GPU最初设计用于在电脑游戏中渲染图像。CPU强调低延迟,而GPU则强调高吞吐量。
CPU Vs GPU 内容
- 比较表格
- 定义区别
- 关键不同
- 结论
1. 比较表格
从上图中可以看出区别:
CPU:注重低延迟,擅长处理穿行的指令;核心少但每个核心功能强大;并且内存消耗大等。
GPU:注重高吞吐量;擅长处理并行的指令;核心很多但每个核心功能较弱;并且内存的开销比较少。
2. 定义的区别
CPU:
CPU (Central Processing Unit)是一种设备,它主要充当每个嵌入式系统的大脑。它由ALU(算术逻辑单元)和CU(控制单元)组成,ALU用于临时存储数据并执行计算,CU用于执行指令排序和分支。它还与计算机的其他单元(如内存、输入和输出)进行交互,以执行来自内存的指令,这就是接口也是CPU的关键部分的原因。I/O接口有时包括在控制单元中。
它提供地址、数据和控制信号,同时接收指令、数据、状态信号和中断,并通过系统总线进行处理。系统总线是一组各种总线,如地址总线、控制总线和数据总线。与GPU不同的是,CPU分配更多的硬件单元用于高速缓存,而对计算的分配较低。
GPU:
GPU(图形处理单元)是专门为计算图形显示器而设计的处理器。它通常与CPU合并,以便与CPU共享RAM,这对于大多数计算任务都很好。这是高端图形密集处理所需要的。离散的GPU单元包含自己的RAM,即视频RAM的VRAM。先进的GPU系统与多核cpu协同工作。最初,图形单元是在20世纪80年代由Intel和IBM引入的。这些卡片具有简单的功能,如区域填充、简单图像的更改、形状绘制等。
现代图形能够执行研究和分析任务,由于其极端的并行处理能力,常常超越cpu。在GPU中,几个处理单元被剥离到一起,而不存在缓存一致性。
3. 关键不同
- 在CPU的优先保障低延迟,而GPU是优先保障吞吐量优化,在一个时间间隔内执行的计算数量必须是高的或尽可能多的。
- 当涉及到串行指令处理时,CPU提供了更有效的结果。而GPU处理并行指令的方式更加有效。
- 一个CPU由较少数量的强大核心组成。相比之下,GPU是通过大量的弱核构建的。
- 由于其庞大的并行处理能力,GPU可以达到与CPU相当的高速。
- CPU需要更多的内存来处理,而GPU需要的内存相对较少。
4. 结论
一个是通用计算,一个是专用计算。
CPU主要负责操作系统和应用程序,GPU主要负责大量数据的并行计算。
什么类型的程序适合在GPU上运行?**
(1)计算密集型的程序。所谓计算密集型(Compute-intensive)的程序,就是其大部分运行时间花在了寄存器运算上,寄存器的速度和处理器的速度相当,从寄存器读写数据几乎没有延时。可以做一下对比,读内存的延迟大概是几百个时钟周期;读硬盘的速度就不说了,即便是SSD, 也实在是太慢了。
(2)易于并行的程序。GPU其实是一种SIMD(Single Instruction Multiple Data)架构, 他有成百上千个核,每一个核在同一时间最好能做同样的事情。
补充:虽然GPU是为了图像处理而生的,但可以发现,它在结构上并没有专门为图像服务的部件,只是对CPU的结构进行了优化与调整,所以现在GPU不仅可以在图像处理领域大显身手,它还被用来科学计算、密码破解、数值分析,海量数据处理(排序,Map-Reduce等),金融分析等需要大规模并行计算的领域。
参考链接:
https://techdifferences.com/difference-between-cpu-and-gpu.html
https://www.sohu.com/a/201309334_468740
CPU 和 GPU 的区别是什么? - 虫子君的回答 - 知乎
https://www.zhihu.com/question/19903344/answer/96081382