1. 写了啥

CPU和GPU作为电子计算机的重要部件,在近年来受到工业界的广泛关注,正处于高速迭代的发展期。发展到今日,CPU与GPU同作为计算部件,在应用场景上已经出现明显的区别,与之对应的,二者在结构上,也大不相同。

CPU全称为中央处理器,是一块超大规模的集成电路板,与内部储存器和输入输出设备一起被称为计算机的三大核心部件。从最早的Intel4004和Intel8008,经历数个阶段的发展迭代,现在已经成为集处理指令顺序,执行操作,控制时间,进行复杂计算为一体的运算核心和控制核心,电子计算机的“大脑”。目前工业界的主流产品是Intel i5和i7系列。

GPU全称为图形处理器,是计算机显卡的核心部件。在个人电脑上,GPU通常被用于2D和3D图形处理,即进行复杂的数学和几何计算。但近几年来,由于GPU在浮点计算和并行计算上,拥有极其出色的性能,甚至超越了CPU的数十倍,使其被广泛使用在数据挖掘,深度学习等需要大量重复计算的工程之中。目前,主流GPU厂商NVIDIA生产的GTX和GT系列显卡占据了市场较大份额,而同为NVIDIA生产的Titan V目前性能最为强大。

本文立足于目前CPU和GPU的发展现状,讨论了CPU和GPU的物理结构之间的异同。事实上,CPU与GPU在构造上有很大的区别,由于GPU需要满足大量重复的图形计算,计算单元占据了绝大部分体积,CPU由于综合性能的要求,还需要一定数量的存储单元和控制单元。除了在物理结构上的不同,本文还将讨论两者在性能和应用场景的具体区别。除此之外,还将简要介绍CPU和GPU协同工作的并行处理机制,这是当前本领域的研究热点。

2. 物理结构

2.1 计算单元

如图1所示[1],在CPU与GPU中,都存在一种结构占据了大量的体积空间,即ALU(arithmetic and logic unit),算术逻辑单元为CPU和GPU提供了强大的逻辑计算能力,满足基本的计算功能。但其中不同在于,GPU的计算单元占比远高于CPU,这导致了GPU拥有在单一的逻辑运算中性能远高于CPU的特性。除此之外,如图2所示[2],GPU在计算核心的数量上也远高于CPU,所以其并行处理能力强悍,而CPU更适合做一些小型的串行计算,当然,多核CPU的出现,也使现在的CPU[1]拥有了一定的并行处理能力,但其ALU数量的限制依然存在。

图1 CPU与GPU物理结构对比[1]

2.2 控制单元和储存单元

除了在ALU上的差异之外,CPU和GPU在控制单元和储存单元上也有很大区别,如图一所示。CPU作为中央处理器,要处理指令顺序,安排操作执行的顺序,所以有很大体积的控制单元和储存单元,其中储存单元Cache为CPU提供了快速I/O的能力,I/O的速度将影响CPU处理指令集的速度,从而影响计算机的响应速度。而GPU仅具有少量的简单控制单元和小型储存单元,其作用是控制多线程合并处理和储存少量的并行运行指令。

图2 CPU与GPU计算核心数量示意图[2]

 特性和应用场景对比

特性

由于物理结构的不同,CPU和GPU具有完全不同的特性。CPU存在大量的控制和储存单元,导致其拥有强大的分支处理能力,可以将来自不同地方的指令调整顺序,使命令按次序顺利和高效运行。同时由于具有一定的计算单元,所以也可以处理一些串行计算任务,多核CPU则可以处理一些简单的并行任务。

GPU仅具有极大数量的ALU,和少量用于辅助的控制和储存单元,所以其特性也是单一的强大计算能力。又因为ALU往往被划分为多个计算核心,所以GPU适合于处理大型的重复计算任务,因为重复计算任务往往更容易并行化。

事实上,CPU和GPU在计算方面的差异正是复杂程度和规模程度,对于复杂的逻辑计算,往往在逻辑上难以并行划分,只能按照逻辑顺序串行处理,这种情况下因为CPU具有更快的内存读写速度,往往表现更加优异。相反,对于逻辑简单但规模庞大的计算问题,例如大型矩阵的运算,往往易于并行化,自然GPU在性能上的表现更加优异。在(刘进锋,郭雷;2011)中,比较了CPU和GPU在矩阵乘法运算上的性能。对于矩阵规模为1024的矩阵乘法,GPU上的最佳实现比CPU上的最佳实现快了大约6倍[3]。同样的,在(刘勇,苏军; 2010)中,在快速傅里叶变换上比较了CPU和GPU的运算时间,CPU耗时高达GPU的40倍[4]

应用场景

由于特性上的差异,CPU与GPU适用于不同的应用场景,从适用范围上来看,CPU要更胜一筹。

CPU拥有强大的指令处理和计算能力,往往用于进行电子计算机的核心工作,即解释计算机指令和处理计算机软件中的数据。事实上,在大多数的个人电脑中,用户和软件都会不断地产生指令流,而处理指令流之间执行的先后顺序,就是CPU要完成的一个重要工作。CPU将从I/O设备接收到的指令集储存在储存单元中,然后按照一定的规则,取出相应的指令,并转化成对应的操作控制信号,发送给所属的计算机部件。

除此之外,CPU还要负责处理计算机软件所产生的数据。考虑到软件数据类型多样而且处理逻辑复杂,所以CPU往往在这类数据上表现出更优异的性能。

GPU相对于CPU而言,拥有单一的强大并行计算能力,所以用途往往是需要大规模并行计算的场景。早期GPU多被用于2D和3D图形的计算和处理,因为图形数据的处理往往涉及到大量的大型矩阵运算,计算量大但易于并行化。在近些年来,由于大数据成为了计算机学术界的研究热点。所以GPU也常常被用于需要大量重复计算的数据挖掘领域,如研究机器学习,深度学习,云计算等方向的研究机构,往往使用以GPU为计算核心的大型服务器作为硬件平台。

联合CPU和GPU的并行处理机制

事实上,由于CPU和GPU各自在处理和计算上有着强大的性能,关于CPU和GPU的联合处理方案一直是学术界和工业界研究的热点。在(卢风顺,宋君强等; 2011)中提出,CPU/GPU异构混合并行系统以其强劲计算能力、高性价比和低能耗等特点成为新型高性能计算平台[5]。在(张云雷,李轲等; 2017)中,研究了基于CPU/GPU的雷达脉冲压缩算法并行机制[6]。除了学术界,在工业界,使用GPU加速计算机软件运行也是一大课题。GPU厂商NVIDIA一直致力于研究科学,工程,消费和企业应用程序的GPU加速计算,并取得了显著的成果。

但正如(卢风顺,宋君强等; 2011)中所言,CPU/GPU协同并行计算属于新兴研究领域,其中还有很多挑战有待解决。同时,目前主流的个人计算机软件并没有很好的并行工作能力,这仍然需要技术和行业的持续发展。

总结

CPU和GPU作为电子计算机的重要部件,无论是从物理结构上,还是从性能特性以及应用场景上,都有着很大的区别。相较于担负计算机核心大脑功能,负责处理调配计算机指令的CPU,GPU提供单一强劲的多计算核心用于满足图形处理,数据挖掘等大规模并行重复计算的需要。CPU和GPU作为不同应用场景的处理器,在目前的科技水平下,都是个人计算机中不可缺少的组成部分。

而根据二者的特点以及当下的发展趋势,未来可能会出现成熟的CPU与GPU并行处理方案,在CPU与GPU互补的情况下,可以极大的提高计算机的计算能力和软件响应速度,同时也将大大降低计算产生的功耗,从而大大降低个人计算机的体积重量,带来更好的用户体验。

参考文献

[1] NVIDIA. NVIDIA CUDA Documentation[DB/OL].http://www.nvidia.cn/object/cuda_develop_cn_old.html, 2018-03-08

[2] NVIDIA. 加速计算[DB/OL].http://www.nvidia.cn

/object/what-is-gpu-computing-cn.html,2018-03-08

[3] 刘进锋, 郭雷. CPU与GPU上几种矩阵乘法的比较与分析[J]. 计算机工程与应用, 2011, 47(19):9-11.

[4]刘勇, 苏军. 基于CPU与GPU/OpenCL的快速傅里叶变换的实现和性能比较[J]. 科技信息, 2010, 2(17):545+600.

[5]卢风顺, 宋君强, 银福康,等. CPU/GPU协同并行计算研究综述[J]. 计算机科学, 2011, 38(3):5-9.

[6]彭培, 张云雷, 李轲,等. 基于CPU/GPU处理器的雷达脉冲压缩算法并行机制研究[J]. 舰船电子工程, 2017(10):30-32.

CPU和GPU的物理结构,性能和应用场景比较相关推荐

  1. 唐志德:AMD打造CPU与GPU强大融合性能

    唐志德:AMD打造CPU与GPU强大融合性能 e-works朱若婷 自06年AMD收购ATI之时,AMD就致力于改变芯片产业格局.作为世界上唯一一家能够同时提供CPU.GPU和芯片组全平台创新能力的芯 ...

  2. 安卓手机RAM的重要性以及与CPU、GPU对手机性能影响的影响

    RAM是什么?RAM,英文全称:RamdomAccessMemory 随机存取存储器,RAM就相当于电脑的内存,越大越好,直接影响电脑快慢性能.我用的512M的DEFY526,装好常用软件,运行几个游 ...

  3. GPU微观物理结构框架

    GPU微观物理结构框架 一.CPU 和 GPU 在物理结构和设计上有何区别 首先需要解释CPU(Central Processing Unit)和GPU(Graphics Processing Uni ...

  4. Unity 对GPU的基础性能优化

    Unity GPU 性能优化 遇到的问题 分析工具 解决方法 1.不在代码层面的优化方法 2.部分在代码层面进行优化 特别说明 遇到的问题 因为项目中采用的主机为工控机,不带有独立显卡,CPU采用的是 ...

  5. gpu算力测试软件,麒麟990性能实测:CPU、GPU以及AI算力

    荣耀V30 PRO搭载的海思麒麟990处理器不仅采用了7nm制程工艺,还用上了华为自研的达芬奇NPU,这让其在性能和AI算力方面都有了不小的提升.那么,麒麟990的性能究竟怎么样呢?针对这一问题,小编 ...

  6. 可测含多进程的app-- python调用adb命令获取Android App应用的性能数据:CPU、GPU、内存、电池、耗电量(含python源码)

    可测含多进程的app–Python–通过adb命令获取Android App应用的性能数据:CPU.GPU.内存.电池.耗电量,并与Perfdog取值对比结果 1.原理 python脚本通过os.po ...

  7. CPU,GPU,Memory调度

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

  8. CPU,GPU,GPGPU

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

  9. Arm 发布移动端 v9 体系新架构,CPU、GPU、IP全囊括了

    作者 | 夕颜 头图 | 下载于ICphoto 出品 | AI 科技大本营(ID:rgznai100) 2021年5月25日晚,Arm发布了针对移动端的Armv9体系新架构,除了公布首款全面计算(To ...

最新文章

  1. 让 Spring Boot 启动更快一点
  2. python编辑器,作为初学者该如何抉择?
  3. IDC预测2022年全球智能家居连接设备市场规模将达10亿台!
  4. python3中文手册-Python3.4中文手册 chm版
  5. 读文件 —— WEB前端读取本地文件内容哪些事(前台解析txt文件)……
  6. Android BOOTCLASSPATH详解
  7. 全局变量、成员变量、类变量、静态变量、实例变量、局部变量的定义与区别
  8. 电子设计竞赛(4)-常用的两种PID算法
  9. matlab 数值解 期权顶级啊,潮盈期权院高胜率交易技巧系列之二----期权交易策略及基于MATLAB统计套利介绍...
  10. 解决MMC不能打开文件MSC文件(转)
  11. 智能运维 devops_Coffee Shop DevOps:如何使用反馈循环变得更智能
  12. deepin安装bochs2.6.2_2.kafka安装与使用
  13. POJ-2480 Longge's problem 欧拉函数
  14. 20200210:(leetcode 623)在二叉树中增加一行
  15. 马哥linux脚本,马哥linux shell笔记
  16. 继续学习-CSS3页面美化之静态美化
  17. 山西大学量子计算机,山西大学贾晓军课题组:在量子网络的多个节点之间建立和存储确定性量子纠缠...
  18. python如何与access配合使用_使用Python对Access读写操作方法详解
  19. html5 摇骰子游戏,html5 canvas掷骰子(简单,学习基础canvas)
  20. 斗罗大陆服务器维护,《斗罗大陆武魂觉醒》5月20日停服维护公告

热门文章

  1. Python 基础 CSV文件的操作
  2. 事关你“吃住行游购娱”的12项安全国标图解来了
  3. 管理学家杂志管理学家杂志社管理学家编辑部2022年第12期目录
  4. 8.1 矩阵分析(方阵范数与方阵算子范数)
  5. Verilog 中连接符使用注意事项
  6. 老师工作必备软件,不是幕布/熊掌记/印象笔记,是Effie!
  7. 项目工作中如何进行有效的沟通?
  8. 计算机领域的黄埔军校,被称为通信行业的黄埔军校,可知其强悍到什么地步?...
  9. 【HDU】5140 Hun Gui Wei Company 主席树
  10. 一堂难忘的计算机课作文,记一堂电脑课作文