详解操作系统中GPU、CPU两者之间的区别特点

运维 系统运维
今天主要介绍一下GPU、CPU和两者之间的区别。下面,我们一起来看。

今天主要介绍一下GPU、CPU和两者之间的区别。下面,我们一起来看。

1. CPU即中央处理器

CPU( Central Processing Unit, 中央处理器)就是机器的“大脑”,也是布局谋略、发号施令、控制行动的“总司令官”。

详解操作系统中GPU、CPU两者之间的区别特点

CPU的结构主要包括运算器(ALU, Arithmetic and Logic Unit)、控制单元(CU, Control Unit)、寄存器(Register)、高速缓存器(Cache)和它们之间通讯的数据、控制及状态的总线。

简单来说就是:计算单元、控制单元和存储单元

2. GPU即图形处理器。

GPU全称为Graphics Processing Unit,中文为图形处理器,就如它的名字一样,GPU最初是用在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上运行绘图运算工作的微处理器。

详解操作系统中GPU、CPU两者之间的区别特点

为什么GPU特别擅长处理图像数据呢?这是因为图像上的每一个像素点都有被处理的需要,而且每个像素点处理的过程和方式都十分相似,也就成了GPU的天然温床。

GPU的构成相对简单,有数量众多的计算单元和超长的流水线,特别适合处理大量的类型统一的数据。但GPU无法单独工作,必须由CPU进行控制调用才能工作。CPU可单独作用,处理复杂的逻辑运算和不同的数据类型,但当需要大量的处理类型统一的数据时,则可调用GPU进行并行计算。

两者区别:

从根本上说CPU和GPU它们的目的不同,且有不同侧重点,也有着不同的性能特性,在某些工作中CPU执行得更快,另一工作中或许GPU能更好。当你需要对大量数据做同样的事情时,GPU更合适,当你需要对同一数据做很多事情时,CPU正好。

然而在实际应用中,后一种情形更多,也就是CPU更为灵活能胜任更多的任务。GPU能做什么?关于图形方面的以及大型矩阵运算,如机器学习算法、挖矿、暴力破解密码等,GPU会大幅提高计算效率。

详解操作系统中GPU、CPU两者之间的区别特点

  • Cache, local memory: CPU > GPU
  • Threads(线程数): GPU > CPU
  • Registers: GPU > CPU 多寄存器可以支持非常多的Thread,thread需要用到register,thread数目大,register也必须得跟着很大才行。
  • SIMD Unit(单指令多数据流,以同步方式,在同一时间内执行同一条指令): GPU > CPU。

简单地说,CPU擅长分支预测等复杂操作,GPU擅长对大量数据进行简单操作。一个是复杂的劳动,一个是大量并行的工作。

其实GPU可以看作是一种专用的CPU,专为单指令在大块数据上工作而设计,这些数据都是进行相同的操作,要知道处理一大块数据比处理一个一个数据更有效,执行指令开销也会大大降低,因为要处理大块数据,意味着需要更多的晶体管来并行工作,现在旗舰级显卡都是百亿以上的晶体管。

CPU呢,它的目的是尽可能快地在单个数据上执行单个指令。由于它只需要使用单个数据单条指令,因此所需的晶体管数量要少得多,目前主流桌面CPU晶体管都是十亿以下,和顶级GPU相差十倍以上,但它需要更大的指令集,更复杂的ALU(算术逻辑单元),更好的分支预测,更好的虚拟化架构、更低的延迟等等。

另外,像我们的操作系统Windows,它是为x86处理器编写的,它需要做的任务执行的进程,在CPU上肯定更为高效,你想每个线程的任务并不相同,基本上难以并行化,完全发挥不了GPU的长处。

总结

总而言之,CPU和GPU因为最初用来处理的任务就不同,所以设计上有不小的区别。CPU的运算速度取决于请了多么厉害的教授。教授处理复杂任务的能力是碾压小学生的,但是对于没那么复杂的任务,还是顶不住人多。当然现在的GPU也能做一些稍微复杂的工作了,相当于升级成初中生高中生的水平。但还需要CPU来把数据喂到嘴边才能开始干活,最终还是靠CPU来管的。

责任编辑:赵宁宁 来源: 今日头条
相关推荐

2020-05-18 09:22:51

JavaScriptDart 开发

2020-06-28 09:40:58

操作系统GPUCPU

2020-11-13 11:49:56

物联网

2014-03-10 17:06:21

Object C转型C#

2016-07-08 14:41:28

云计算

2010-12-27 14:53:02

MeeGo

2021-03-17 10:51:17

云计算边缘计算IT技术

2009-12-23 10:36:48

Linux操作系统

2010-04-16 11:32:29

PGA和UGA

2010-09-16 09:05:50

CSS display

2019-09-26 06:27:59

FTPSFTPTCP

2010-04-22 12:02:32

Aix操作系统

2021-08-12 14:49:44

操作系统线程进程

2018-05-28 09:09:00

机器学习深度学习

2011-04-14 15:14:36

嵌入式操作系统嵌入式

2022-10-20 23:21:21

2019-01-28 10:00:42

CPU操作系统存储器

2010-03-04 10:47:51

Google Andr

2010-02-06 14:40:50

C++初始化和赋值

2023-03-29 23:19:27

点赞
收藏

51CTO技术栈公众号