GPU与CPU

CPU
  • CPU,也就是中央处理器,结构主要包括控制器(指挥各部分工作)、运算器(实现数据加工)、寄存器、高缓以及数据/控制/状态总线。计算机的性能很大程度上依赖于CPU,CPU的功能包括程序控制(控制指令执行的先后顺序)、操作控制(控制指令操作)、时间控制(控制各种操作的时间)、数据加工(实现数据的算术和逻辑运算)等,简单来说,CPU就是对指令流和数据流进行时间和空间上的控制。CPU擅长处理诸如分布式、协调控制这种复杂运算,具有很强的通用性。
  • 由于CPU中存储单元和控制单元占用了大量空间,所以计算单元是受限的,这一缺点在并行问题上就体现出来了,它在要求大规模与快处理速度的问题上显得有些局限。因此,拥有众多计算单元的GPU就出现了。
 GPU
  • GPU全称为Graphics Processing Unit,即图形处理器。
  • GPU最初是为了端游设计的,因为在游戏中要对大量数据重复相同的操作,所以GPU面对的是类型高度统一、相互无依赖的大规模数据。由于设计目标不同,所以GPU和CPU在架构上差异很大。GPU中有很多计算单元,流水线也相当长,而逻辑运算单元设计相对简单。GPU的核数远远多于CPU,将相同的指令发送到众核上处理不同的数据,这一架构有利于GPU处理拥有很多数据的问题。
区别
  • CPU和GPU的主要区别是CPU是通用计算,而GPU是专用计算。
  • 打个比方来讲,CPU是老教授,能力很强但数量很少,GPU是小学生,能力很弱但数量众多。
  • 提供了多核并行计算的基础结构,且核心数非常多,可以支撑大量数据的并行计算。
  • 拥有更高的访存速度。
  • 更高的浮点运算能力。浮点运算能力是关系到处理器的多媒体、3D图形处理的一个重要指标。现在的计算机技术中,由于大量多媒体技术的应用,浮点数的计算大大增加了,比如3D图形的渲染等工作,因此浮点运算的能力是考察处理器计算能力的重要指标。
  • 深度学习是模拟人脑神经系统而建立的数学网络模型,这个模型的最大特点是,需要大数据来训练。因此,对电脑处理器的要求,就是需要大量的并行的重复计算,GPU正好有这个专长,时势造英雄,因此,GPU就出山担当重任了。

最新文章

  1. 使用Project进行项目管理 - 项目管理系列文章
  2. 【原】Learning Spark (Python版) 学习笔记(二)----键值对、数据读取与保存、共享特性
  3. Android 自定义 view(四)—— onMeasure 方法理解
  4. nRF24L01芯片控制——迈向无线的第一步
  5. 怎么利用javascript删除字符串中的最后一个字符呢?
  6. Android数据存储的三种方式:SharePreferences , file , SQLite
  7. 升级正版win10及保持yosemite双操
  8. Three Sources of a Solid Object-Oriented Design
  9. Intellij 导入play framework 项目
  10. struts2处理.do后缀的请求
  11. hdu1796:容斥入门题
  12. Httpwatch 工具介绍
  13. 关于ajax中async参数的感悟
  14. 13 - NSURLConnection
  15. 关于mysql5.6.13的一个疑问
  16. JDBC【介绍JDBC、使用JDBC连接数据库、简单的工具类】
  17. 【原创】分布式事务之TCC事务模型
  18. css定位的各属性占位问题
  19. vue-router 编程式路由
  20. C - Reduced ID Numbers 寒假训练

热门文章

  1. 关于本地用svn up的时候报cannot update svn folder: "unversioned directory of the same name already exists
  2. Keras cnn 手写数字识别示例
  3. 如何在MPlayer上支持RTSP
  4. Batch Normalization批量归一化
  5. Java程序员必备:异常的十个关键知识点
  6. iptables限速
  7. $loj\ 6045$ [雅礼集训 $2017\ Day8$] 价 网络流
  8. Ant Design框架中不同的组件访问不同的models中的数据
  9. YOLO V3训练自己的数据集
  10. python线性数据结构