CPU (Central Processing Unit,中央处理器)就是机器的“大脑”,是完成布局谋略、发号施令、控制行动的“总司令官”。CPU的结构主要包括运算器(ALU,Arithmetic and Logic Unit)、控制单元(CU,Control Unit)、寄存器(Register)、高速缓存器(Cache)和它们之间通讯的数据、控制及状态的总线。

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

CPU和GPU之所以大不相同,是由于其设计目标的不同,它们分别针对了两种不同的应用场景。

CPU需要很强的通用性来处理各种不同的数据类型,同时又要逻辑判断又会引入大量的分支跳转和中断的处理。这些都使得CPU的内部结构异常复杂。

而GPU面对的则是类型高度统一的、相互无依赖的大规模数据和不需要被打断的纯净的计算环境。于是CPU和GPU就呈现出非常不同的架构(示意图):

从架构图我们就能很明显的看出,GPU的构成相对简单,有数量众多的计算单元和超长的流水线,特别适合处理量大且统一的数据(如图像数据)。

GPU的主要工作就是3D图像处理和特效处理,通俗地说就是一种图像呈现的工作。对于2D图形,CPU可以轻松处理,但是对于复杂的3D图像,CPU就要花费很多的资源去处理,这显然会降低其他方面的工作效率,于是就将这类工作交给GPU去处理。

一些高帧率的游戏画面和高质量的特效也交给GPU去处理,分担CPU的工作。除此以外,GPU凭借并行处理处理的能力,在密码破译、大数据处理、金融分析等领域应用广泛。

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

但GPU无法单独工作,必须由CPU进行控制调用才能工作。CPU可单独作用,处理复杂的逻辑运算和不同的数据类型,但当需要大量的处理类型统一的数据时,则可调用GPU进行并行计算。

GPU采用了数量众多的计算单元和超长的流水线,但只有非常简单的控制逻辑并省去了Cache。而CPU不仅被Cache占据了大量空间,而且还有有复杂的控制逻辑和诸多优化电路,相比之下GPU计算能力只是CPU很小的一部分。

CPU 基于低延时的设计,CPU有强大的ALU(算术运算单元),它可以在很少的时钟周期内完成算术计算。

相比之下,GPU是基于大的吞吐量设计,Cache比较小、控制单元简单,但GPU的核数很多,适合于并行高吞吐量运算。

GPU中有很多的运算器ALU和很少的缓存Cache,缓存的目的不是保存后面需要访问的数据(这点和CPU不同),而是为线程Thread提供服务的。如果有很多线程需要访问同一个相同的数据,缓存会合并这些访问后再去访问内存DRAM。

总而言之,CPU和GPU因为最初用来处理的任务就不同,所以设计上有较大的区别。而某些任务和GPU最初用来解决的问题的方式比较相似,所以采用GPU来计算。

打个比方,GPU的运算速度取决于雇了多少小学生,CPU的运算速度取决于请了多么厉害的教授。教授处理复杂任务的能力是碾压小学生的,但是对于没那么复杂的任务,还是顶不住人多。当然现在的GPU也能做一些稍微复杂的工作了,相当于升级成初中生高中生的水平。

GPU就是用很多简单的计算单元去完成大量的计算任务,纯粹的人海战术。这种策略基于一个前提,就是小学生之间的工作没有什么依赖性,是互相独立的。

这就回答了GPU能做什么的问题。图形运算和大型矩阵运算,如机器学习算法等领域,GPU就能大显身手。简而言之,CPU擅长统领全局等复杂操作,GPU擅长对大数据进行简单重复操作。CPU是从事复杂脑力劳动的教援,而GPU是进行大量并行计算的体力劳动者(小学生)。

GPU的工作的特点是计算量大,没什么技术含量,需要重复很多很多次,还需要CPU来把数据喂到嘴边才能开始干活,最终还是靠CPU来管理的。

为什么在人工智能领域GPU十分盛行?深度学习是模拟人脑神经系统而建立的数学网络模型,这个模型的最大特点是需要大数据来训练。

因此,人工智能领域对计算能力的要求就是需要大量的并行的重复计算,GPU正好有这个专长,时势造英雄,因此GPU就出山担此重任。在人工智能领域(深度学习),GPU具有如下主要特点:

  • 1 、提供了多核并行计算的基础结构,且核心数非常多,可以支撑大量数据的并行计算。并行计算是一种一次可执行多个指令的算法,目的是提高计算速度,通过扩大问题求解规模,解决大型而复杂的计算问题。

  • 2、 拥有更高的访存带宽和速度。

  • 3、具备更高的浮点运算能力。浮点运算能力是关系到处理器的多媒体、3D图形处理的一个重要指标。现在的计算机技术中,由于大量多媒体技术的应用,浮点数的计算大大增加了,比如3D图形的渲染等工作,因此浮点运算的能力是考察处理器计算能力的重要指标。

需要强调一点,虽然GPU是为了图像处理而生,但是我们通过前面的介绍可以发现,GPU在结构上并没有专门为图像服务的部件,只是对CPU的结构的优化与调整,所以现在GPU不仅可以在图像处理领域大显身手,它还被用做科学计算、密码破解、数值分析,海量数据处理(排序、Map-Reduce等),金融分析等需要大规模并行计算的领域。因此,GPU也可以认为是一种较通用的芯片。

简单总结:CPU和GPU是两种不同的处理器,CPU是程序控制、顺序执行等操作的最高级通用处理器,而GPU是用来做图像处理、特定领域分析的专用型处理器,GPU受CPU的控制。在很多终端设备中,CPU和GPU往往集成在一个芯片内,同时具备CPU或GPU处理能力。

揭秘CPU和GPU区别到底有多大?相关推荐

  1. android 6gb和8gb区别,6GB和8GB区别到底有多大?千万别再花冤枉钱了

    原标题:6GB和8GB区别到底有多大?千万别再花冤枉钱了 手机到底选多大的内存比较合适? 相信不少人会在选购手机的时候会纠结买多大内存的更合适,内存越高价格就越贵,那如何才能不花冤枉钱买到更合适的内存 ...

  2. CPU与GPU区别大揭秘

    有网友在网上提问:"为什么现在更多需要用的是 GPU 而不是 CPU,比如挖矿甚至破解密码? "以下是比较准确靠谱的回答: 1.现在更多被需要的依然是CPU,只是GPU在大规模并发 ...

  3. CPU与GPU区别 通俗易懂

    为什么二者会有如此的不同呢?首先要从CPU和GPU的区别说起. CPU和GPU之所以大不相同,是由于其设计目标的不同,它们分别针对了两种不同的应用场景.CPU需要很强的通用性来处理各种不同的数据类型, ...

  4. CPU和GPU区别(GPU入门)

    文章目录 什么是超算 CPU GPU CPU和GPU联系 GPU和CPU的区别 硬件结构区别 串行和并行 CUDA编程模型概览 线程格(Grid) 线程块(Block) 线程(Thread) 核函数( ...

  5. 骁龙660是32位还是64位_骁龙660与骁龙665,数字差个5实际区别到底有多大

    今年4月,高通推出了骁龙665移动平台来作为骁龙660的继任者.而前不久,首款搭载骁龙665移动平台的小米CC9e也上市了.这款骁龙665移动平台,被认为肩负着继承一代神U骁龙660衣钵的重任,那么究 ...

  6. 自学PHP与参加PHP培训的区别到底有多大

    从我自己开始学习编程到现在经过八年多的时间,很多人问过我,或者经常听到别人讨论这个话题,结合现在认知,我简单谈一下这个问题. 现在很多招聘的公司,都不太喜欢培训机构出来的学生,认为他们没有工作经验,自 ...

  7. CPU?GPU?+配置CUDA

    CPU?GPU?+配置CUDA 一.CPU和GPU区别 1.内部结构区别 2.结构不同能力不同 二.配置GPU环境(CUDA) 1.必要条件 2.安装正确的版本 三.参考博客 一.CPU和GPU区别 ...

  8. CPU和GPU科普(一)

    概述 整理和研究通用CPU算力和异构GPU/ASIC芯片算力的区别. CPU工作方式及算力测算 CPU工作原理 SRAM: Static Random Access Memory ,静态随机存取存储器 ...

  9. 730阵列卡支持多大硬盘_3分钟告诉你:OPPO Reno普通版和旗舰版的差距到底有多大...

    昨天OPPO正式发布了Reno系列手机:分为标准版和旗舰版两款.宣传普通版的售价和旗舰版的卖点是手机厂商一贯的传统.为了搞清楚普通版和旗舰版的差距到底有多大,今天我和大家一起扒一扒这两款手机之间的区别 ...

最新文章

  1. C++中重载(overload)和重写(override)和隐藏
  2. xcode编译Undefined symbols for architecture i386问题解决
  3. Winform中实现仿XP系统的任务栏菜单效果(附代码下载)
  4. 计算机二级办公软件aoa 百度云,计算机二级办公 考生注意事项(二级AOA)
  5. React Native获取设备信息组件
  6. 前端学习(1870)vue之电商管理系统电商系统之配置message全局弹框组件
  7. g++编译c++11 thread报错问题 及c++多线程操作
  8. (十)用于面部识别的混合边缘人工智能:下一步
  9. 写入多个表_制作属于自己的教学工作表
  10. 国内计算机专业最好的大学有哪些
  11. android 动画x轴旋转,android – 动画在视图之间转换,在z轴上旋转...
  12. ucoreOS_lab8 实验报告
  13. 百度网盘使用Motrix下载资源
  14. 视频图像标准:D1/D2/D3/D4/D5
  15. 什么软件可以编辑PDF文件
  16. 计算机怎样更新卡驱动,电脑显卡驱动怎么更新(NVIDIA显卡手动更新教程)
  17. Linux修改系统时间
  18. 中奖人js滚动效果_原生js实现中奖信息无间隙滚动效果
  19. chrome浏览器的性能测试--本文引用自 百度百科http://baike.baidu.com/view/1835504.htm
  20. 湖人VS爵士!!科比4月14日最后一战,本赛季最高得分!狂得60分!!完美大逆转!!!...

热门文章

  1. 卷积神经网络中感受野计算
  2. 在 Gitlab 中创建私有 Maven 存储库(适用于 Android 库)
  3. BMZCTF 强网杯 2019 随便注 原理+题解
  4. 斯坦福大学卷积神经网络----Module 1 Lesson 2 线性分类
  5. U盘、硬盘 相关的(分区隐藏、格式化)命令行操作
  6. java jettison_Java常用Json库性能对比
  7. 廖雪峰python教程阅读之安装python
  8. 翼支付门户架构之redis之RDB和AOF
  9. uniapp离线本地打包安卓app最新全部流程
  10. odac xcopy是什么_XCopy被认为是有害的-Robocopy或XXCopy或SyncBack