CPU,GPU,GPGPU

1.基本概念

1.1 GPU

图形处理器(bai英语:Graphics Processing Unit,缩写:GPU),又称显示核心、视觉du处理器、zhi显示芯片,是一种专门在个人电脑、工dao作站、游戏机和一些移动设备(如平板电脑、智能手机等)上图像运算工作的微处理器。

1.2 CPU

中央处理器(CPU,Central Processing Unit)是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心( Control Unit)。它的功能主要是解释计算机指令以及处理计算机软件中的数据。

1.3 GPGPU

GPGPU全称General Purpose GPU,即通用计算图形处理器。其中第一个“GP”通用目的(GeneralPurpose)而第二个“GP”则表示图形处理(GraphicProcess),这两个“GP”搭配起来即“通用图形处理”。再加上“U”(Unit)就成为了完整的通用处理器。 人们一直在寻找各种加速图像处理的方法,然而受到CPU本身在浮点计算能力上的限制,对于那些需要高密度计算的图像处理操作,过去传统的在CPU上实现的方法,并没有在处理性能与效率上有很大进步。随着可编程图形处理器单元(GPU)在性能上的飞速发展,利用GPU加速图像处理的技术逐渐成为研究热点。

GPGPU,带baiCPU处理能力的GPU。主要是GPU的工作,GPU的能力,可以有协助duCPU的运zhi算的能力,(通用图形处理)超出daoGPU的能力范围,甚至完全具备通用的数据处理。能否成为CPU看是否放在主板上。GPU,用于图形处理的芯片。(GPU也是一种CPU,,相对于显卡)早期显卡是没有专门用做图形处理的GPU的,不支持3D。CPU,用于数据处理的芯片(图形也可以认为是数据)。中央处理器,一种相对的概念。潜移默化被认定是放在主板上的那颗东西,通过向GPU传送指令,控制GPU。其实也就是一种微处理器。AMD-APU,加速处理器。集成GPU核心的CPU,并且融合。不同于Intel I系智能(GPU CPU独立工作)。

  1. 基本原理

2.1 中央处理器(CPU)

中央处理器(CPU,Central Processing Unit)是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心( Control nit)。它的功能主要是解释计算机指令以及处理计算机软件中的数据。

中央处理器主要包括运算器(算术逻辑运算单元,ALU,Arithmetic Logic Unit)和高速缓冲存储器(Cache)及实现它们之间联系的数据(Data)、控制及状态的总线(Bus)。它与内部存储器(Memory)和输入/输出(I/O)设备合称为电子计算机三大核心部件。

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

简单来说就是:计算单元、控制单元和存储单元,架构如下图所示:

CPU微架构示意图
换种表示方法:

CPU微架构示意图(改)

从字面上我们也很好理解,计算单元主要执行算术运算、移位等操作以及地址运算和转换;存储单元主要用于保存运算中产生的数据以及指令等;控制单元则对指令译码,并且发出为完成每条指令所要执行的各个操作的控制信号。

所以一条指令在CPU中执行的过程是这样的:读取到指令后,通过指令总线送到控制器(黄色区域)中进行译码,并发出相应的操作控制信号;然后运算器(绿色区域)按照操作指令对数据进行计算,并通过数据总线将得到的数据存入数据缓存器(大块橙色区域)。过程如下图所示:

CPU遵循的是冯诺依曼架构,其核心就是:存储程序,顺序执行。

讲到这里,有没有看出问题,没错——在这个结构图中,负责计算的绿色区域占的面积似乎太小了,而橙色区域的缓存Cache和黄色区域的控制单元占据了大量空间。

高中化学有句老生常谈的话叫:结构决定性质,放在这里也非常适用。

因为CPU的架构中需要大量的空间去放置存储单元(橙色部分)和控制单元(黄色部分),相比之下计算单元(绿色部分)只占据了很小的一部分,所以它在大规模并行计算能力上极受限制,而更擅长于逻辑控制。

另外,因为遵循冯诺依曼架构(存储程序,顺序执行),CPU就像是个一板一眼的管家,人们吩咐的事情它总是一步一步来做。但是随着人们对更大规模与更快处理速度的需求的增加,这位管家渐渐变得有些力不从心。

于是,大家就想,能不能把多个处理器放在同一块芯片上,让它们一起来做事,这样效率不就提高了吗?

没错,GPU便由此诞生了。

2.2 显卡

显卡(Video card,Graphics card)全称显示接口卡,又称显示适配器,是计算机最基本配置、最重要的配件之一。显卡作为电脑主机里的一个重要组成部分,是电脑进行数模信号转换的设备,承担输出显示图形的任务。显卡接在电脑主板上,它将电脑的数字信号转换成模拟信号让显示器显示出来,同时显卡还是有图像处理能力,可协助CPU工作,提高整体的运行速度。对于从事专业图形设计的人来说显卡非常重要。 民用和军用显卡图形芯片供应商主要包括AMD(超微半导体)和Nvidia(英伟达)2家。现在的top500计算机,都包含显卡计算核心。在科学计算中,显卡被称为显示加速卡。

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

从架构图我们就能很明显的看出,GPU的构成相对简单,有数量众多的计算单元和超长的流水线,特别适合处理大量的类型统一的数据。
再把CPU和GPU两者放在一张图上看下对比,就非常一目了然了。

GPU的工作大部分都计算量大,但没什么技术含量,而且要重复很多很多次。

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

借用知乎上某大佬的说法,就像你有个工作需要计算几亿次一百以内加减乘除一样,最好的办法就是雇上几十个小学生一起算,一人算一部分,反正这些计算也没什么技术含量,纯粹体力活而已;而CPU就像老教授,积分微分都会算,就是工资高,一个老教授资顶二十个小学生,你要是富士康你雇哪个?

注:GPU中有很多的运算器ALU和很少的缓存cache,缓存的目的不是保存后面需要访问的数据的,这点和CPU不同,而是为线程thread提高服务的。如果有很多线程需要访问同一个相同的数据,缓存会合并这些访问,然后再去访问dram。

2.3 内存

内存是计算机中重要的部件之一,它是与CPU进行沟通的桥梁。计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的影响非常大。内存(Memory)也被称为内存储器,其作用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。只要计算机在运行中,CPU就会把需要运算的数据调到内存中进行运算,当运算完成后CPU再将结果传送出来,内存的运行也决定了计算机的稳定运行。 内存是由内存芯片、电路板、金手指等部分组成的。

2.4 显存

显存,也被叫做帧缓存,它的作用是用来存储显卡芯片处理过或者即将提取的渲染数据。如同计算机的内存一样,显存是用来存储要处理的图形信息的部件。

2.5
显卡、显卡驱动、CUDA之间的关系

显卡:(GPU)主流是NVIDIA的GPU,深度学习本身需要大量计算。GPU的并行计算能力,在过去几年里恰当地满足了深度学习的需求。AMD的GPU基本没有什么支持,可以不用考虑。

驱动:没有显卡驱动,就不能识别GPU硬件,不能调用其计算资源。但是呢,NVIDIA在Linux上的驱动安装特别麻烦,尤其对于新手简直就是噩梦。得屏蔽第三方显卡驱动。下面会给出教程。

CUDA:是NVIDIA推出的只能用于自家GPU的并行计算框架。只有安装这个框架才能够进行复杂的并行计算。主流的深度学习框架也都是基于CUDA进行GPU并行加速的,几乎无一例外。还有一个叫做cudnn,是针对深度卷积神经网络的加速库。

CPU,GPU,GPGPU相关推荐

  1. CPU,GPU,Memory调度

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

  2. 一个工程师的“噩梦”:刚分清CPU、GPU,却发现还有更多...

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

  3. Linux查看CPU,内存,GPU,进程,版本,系统内核信息

    简述 因为经常会用到,但是东西又不是那么容易记. CPU 看CPU的信息,分两种 看当前使用数据 看基本数据 当前使用数据: top 结果看 %Cpu(s) us是用户进程使用占总的比例 sy是系统进 ...

  4. 麒麟处理器是基于arm的吗_直接采用ARM的CPU和GPU,那么麒麟芯片算自研吗?

    华为的麒麟芯片采用ARM提供的CPU和GPU核心,麒麟970又采用寒武纪提供的NPU芯片等等,因此有人会问,麒麟芯片既然很多核心都是采用别人的,为什么还要说是自研芯片呢?麒麟芯片到底是不是华为生产的? ...

  5. 深度学习CPU,GPU,NPU,TPU以及其计算能力单位

    处理器运算能力单位 TOPS是Tera Operations Per Second的缩写,1TOPS代表处理器每秒钟可进行一万亿次(10^12)操作. 与此对应的还有GOPS(Giga Operati ...

  6. 从CPU到GPU,Nvidia就这样成为AI时代的大赢家

    导读:前些天,据英国媒体报道,美国著名半导体公司英伟达(Nvidia)将以400亿英镑(约520亿美元)收购ARM.双方已进入谈判阶段,预计今年夏末完成交易. 与此同时,Nvidia市值破3000亿美 ...

  7. 显卡,GPU,显卡驱动,CUDA ,CUDA Toolkit之间的关系

    相关知识收集于网络,主要来自 显卡,显卡驱动,nvcc, cuda driver,cudatoolkit,cudnn到底是什么? GPU 和显卡是什么关系? 显卡.显卡驱动.cuda 之间的关系是什么 ...

  8. Nvida cudatoolkit,nvcc,cudnn,GPU,显卡,显卡驱动,conda,python,pytorch之间的基本问题

    (1)概念 Nvidia是一家人工智能计算公司,专长是做GPU,做出来的显卡叫做N卡,做深度学习尽量使用N卡 GPU指图形处理器(英语:graphics processing unit,缩写:GPU) ...

  9. Pytorch 其它有关Tensor的话题,GPU,向量化

    3.1.4 其它有关Tensor的话题 这部分的内容不好专门划分一小节,但是笔者认为仍值得读者注意,故而将其放在这一小节. GPU/CPU tensor可以很随意的在gpu/cpu上传输.使用tens ...

最新文章

  1. 科学互驳:大脑细胞活到老,长到老?
  2. Python Redis
  3. 怎么把页面按比例缩小_meta viewport 是做什么用的,怎么写?
  4. Wireshark文档阅读笔记-WebSocket协议基本概念
  5. windows doc快捷键
  6. 详解5G:关键能力、关键技术、应用场景、网络架构、经济影响
  7. 【系列7】使用Dockerfile创建带mysql5.7的Centos Docker镜像1
  8. 币安宣布Terence Zeng担任大中华区业务负责人
  9. mysql备份优化_MySQL备份流程及优化
  10. web测试 结果存储类型为“Database”,但尚未指定结果储存库连接字符串
  11. 联想y50更换固态硬盘_联想y50怎么加固态硬盘而不换原来的机器硬盘?
  12. html超链接qq,超链接打开qq对话框
  13. 爬取QQ好友列表或定位QQ好友秘密
  14. iOS 上架App Store 遇到的坑
  15. dns服务器不可用了怎么修复,dns服务器可能不可用怎么解决(dns服务器最有效的解决方法)...
  16. 将HTML5封装成android应用APK文件的几种方法
  17. Dynamic Few-Shot Visual Learning without Forgetting||论文阅读
  18. 使用Phaser开发你的第一个H5游戏(一)
  19. Kubernetes调度器源码学习(三):Preempt抢占机制、调度失败与重试处理
  20. ORB-SLAM2系统中的优化函数

热门文章

  1. Go 学习笔记(80)— Go 标准库 container/list(单链表、双链表)
  2. 项目中使用 Git 高频场景
  3. Go 学习笔记(67)— Go 并发安全字典 sync.Map
  4. NLP相关论文上新-2019
  5. HA: Forensics靶机渗透测试
  6. pandas dataframe 删除带空值的行 各种空值 (dropna()、isna()、isnull()、fillna())
  7. 一篇文章告诉你标准化和归一化的区别?
  8. 固态硬盘与QLC闪存
  9. Android中Service生命周期、启动、绑定、混合使用
  10. 2021年大数据Spark(二十三):SparkSQL 概述