从它们执行运算的速度与效率的方面来探讨这个论题。
   CPU和GPU都是具有运算能力的芯片, CPU更像“通才”——指令运算(执行)为重+数值运算, GPU更像“专才”——图形类数值计算为核心。在不同类型的运算方面的速度也就决定了它们的能力——“擅长和不擅长”。芯片的速度主要取决于三个方面:微架构,主频和IPC(每个时钟周期执行的指令数)。
1.微架构
   从微架构上看,CPU和GPU看起来完全不是按照相同的设计思路设计的,当代CPU的微架构是按照兼顾“指令并行执行”和“数据并行运算”的思路而设计,就是要兼顾程序执行和数据运算的并行性、通用性以及它们的平衡性。CPU的微架构偏重于程序执行的效率,不会一味追求某种运算极致速度而牺牲程序执行的效率。
   CPU微架构的设计是面向指令执行高效率而设计的,因而CPU是计算机中设计最复杂的芯片。和GPU相比,CPU核心的重复设计部分不多,这种复杂性不能仅以晶体管的多寡来衡量,这种复杂性来自于实现:如程序分支预测,推测执行,多重嵌套分支执行,并行执行时候的指令相关性和数据相关性,多核协同处理时候的数据一致性等等复杂逻辑。
   GPU其实是由硬件实现的一组图形函数的集合,这些函数主要用于绘制各种图形所需要的运算。这些和像素,光影处理,3D坐标变换等相关的运算由GPU硬件加速来实现。图形运算的特点是大量同类型数据的密集运算——如图形数据的矩阵运算, GPU的微架构就是面向适合于矩阵类型的数值计算而设计的,大量重复设计的计算单元,这类计算可以分成众多独立的数值计算——大量数值运算的线程,而且数据之间没有像程序执行的那种逻辑关联性。
   GPU微架构复杂度不高,尽管晶体管的数量不少。从应用的角度看,如何运用好GPU的并行计算能力主要的工作是开发好它的驱动程序。GPU驱动程序的优劣很大程度左右了GPU实际性能的发挥。
   因此从微架构上看, CPU擅长的是像操作系统、系统软件和通用应用程序这类拥有复杂指令调度、循环、分支、逻辑判断以及执行等的程序任务。它的并行优势是程序执行层面的,程序逻辑的复杂度也限定了程序执行的指令并行性,上百个并行程序执行的线程基本看不到。 GPU擅长的是图形类的或者是非图形类的高度并行数值计算,GPU可以容纳上千个没有逻辑关系的数值计算线程,它的优势是无逻辑关系数据的并行计算。
2.主频
   另外,GPU执行每个数值计算的速度并没有比CPU快,从目前主流CPU和GPU的主频就可以看出了,CPU的主频都超过了1GHz,2GHz,甚至3GHz,而GPU的主频最高还不到1GHz,主流的也就500~600MHz。要知道1GHz= 1000MHz。所以GPU在执行少量线程的数值计算时并不能超过CPU。
目前 GPU数值计算的优势主要是浮点运算,它执行浮点运算快是靠大量并行,但是这种数值运算的并行性在面对程序的逻辑执行时毫无用处。
3.IPC(每个时钟周期执行的指令数)
   这个方面,CPU和GPU无法比较,因为GPU大多数指令都是面向数值计算的,少量的控制指令也无法被操作系统和软件直接使用。如果比较数据指令的IPC,GPU显然要高过CPU,因为并行的原因。但是,如果比较控制指令的IPC,自然是CPU的要高的多。原因很简单,CPU着重的是指令执行的并行性。
另外,目前有些GPU也能够支持比较复杂的控制指令,比如条件转移、分支、循环和子程序调用等,但是GPU程序控制这方面的增加,和支持操作系统所需要的能力CPU相比还是天壤之别,而且指令执行的效率也无法和CPU相提并论。
最后总结一下:
   CPU擅长的:操作系统,系统软件,应用程序,通用计算,系统控制等等;游戏中人工智能,物理模拟等等;3D建模-光线追踪渲染;虚拟化技术——抽象硬件,同时运行多个操作系统或者一个操作系统的多个副本等等。
GPU擅长的: 图形类矩阵运算,非图形类并行数值计算,高端3D游戏。
   综上所述,在一台均衡计算的计算机系统中,CPU和GPU还是各司其职,除了图形运算,GPU将来可能主要集中在高效率低成本的高性能并行数值计算,帮助CPU分担这种类型的计算,提高系统这方面的性能。而当前的典型应用还是高端3D游戏,一个高效的GPU配合一个高效的CPU,3D游戏的整体效率才能得到保证。“高端3D游戏只需要高端显卡”或者“高端3D游戏只需要CPU”都是无稽之谈。

CPU和GPU擅长和不擅长的方面相关推荐

  1. CPU,GPU,Memory调度

    CPU,GPU,Memory调度 HDD&Memory&CPU调度机制(I/O硬件性能瓶颈) 图1. HDD&Memory&CPU调度图 CPU主要就是三部分:计算单元 ...

  2. CPU,GPU,GPGPU

    CPU,GPU,GPGPU 1.基本概念 1.1 GPU 图形处理器(bai英语:Graphics Processing Unit,缩写:GPU),又称显示核心.视觉du处理器.zhi显示芯片,是一种 ...

  3. AMD宣布350亿美元收购赛灵思,CPU、GPU、FPGA全凑齐,中国握有否决权

    晓查 发自 凹非寺  量子位 报道 | 公众号 QbitAI 说到AMD,大部分电脑爱好者脑海中会飘出6个字母:"AMD YES". 但AMD希望,不仅仅个人消费者能喊出这句话. ...

  4. CPU与GPU的区别

    CPU和GPU主要由以下5个方面的区别: 一.概念 1.CPU(Central Processing Unit-中央处理器),是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心( ...

  5. CPU、GPU、FPGA、ASIC等AI芯片特性及对比

    1.前言 目前,智能驾驶领域在处理深度学习AI算法方面,主要采用GPU.FPGA 等适合并行计算的通用芯片来实现加速.同时有部分芯片企业开始设计专门用于AI算法的ASIC专用芯片,比如谷歌TPU.地平 ...

  6. AMD宣布350亿美元收购赛灵思,CPU、GPU、FPGA全凑齐

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:量子位 AI博士笔记系列推荐 周志华<机器学习> ...

  7. 深度解析:CPU与GPU有什么区别?xPU又是什么鬼?

    先了解什么是异构并行计算 同构计算是使用相同类型指令集和体系架构的计算单元组成系统的计算方式. 而异构计算主要是指使用不同类型指令集和体系架构的计算单元组成系统的计算方式,常见的计算单元类别包括CPU ...

  8. 深度学习,CPU、GPU、DSP、FPGA运算能力对比

    一:CPU 一般来讲最弱的是cpu.虽然cpu主频最高,但是单颗也就8核,16核的样子,一个核3.5g,16核也就56g,再考虑指令周期,每秒最多也就30g次乘法.还是定点的. 二:DSP dsp虽然 ...

  9. CPU与GPU区别 通俗易懂

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

最新文章

  1. java odbc dbf,什么是Java的最佳开源dbf驱动程序?
  2. lwip接收文件 stm32_接收数据
  3. mybatis框架--学习笔记(下)
  4. JavaScript实现RadixSort基数排序算法(附完整源码)
  5. JEPaas代码———出库数量,添加明细, 确认出库
  6. 我在SharePoint行业的从业经历(一)
  7. oraclr 和mysql的不同_Mysql和Oracle中的不同
  8. 解决“找不到msvcr120.dll,需要重新安装服务 ”最终版本
  9. Windows PE(WinPE)
  10. 魔兽世界3.35+mysql_最新魔兽世界3.35兔子王版本商业一键启动服务端+启动教程
  11. canvas绘图详解-06-绘制一个五角星-常用绘图原理
  12. Linux下tmpfs与ramfs的区别
  13. UOJ #589. 图图的游戏
  14. python 实现自动化点击界面方案
  15. 图片+文案(在图片上)
  16. 鼠标移动框选动态绘制图形,基于zrender
  17. 暑假学习计划:Day_1.JSPServletTomcat 环境搭建到基础的认识。
  18. 亲完如何进行下一步_相亲完了下一步怎么办 相亲过后怎么发展
  19. 10 个开源免费的电子商务平台
  20. GlusterFS基本部署

热门文章

  1. 自动机理论、形式语言和计算导论提纲
  2. JAVA中的日志框架-log4j的使用
  3. Python学习(三)基础
  4. linux新建用户,用户组,以及权限的分配(摘自博客园)
  5. Feature Preprocessing on Kaggle
  6. Echarts实现隐藏x轴,y轴,刻度线,网格
  7. WPF 带CheckBox、图标的TreeView
  8. Java for LeetCode 061 Rotate List
  9. CVE-2014-4877 wget: FTP Symlink Arbitrary Filesystem Access
  10. 不可不知的Oracle常用技巧