GPU与显卡
GPU与显卡
一.什么是GPU?
GPU这个概念是由Nvidia公司于1999年提出的。GPU是显卡上的一块芯片,就像CPU是主板上的一块芯片。那么1999年之前显卡上就没有GPU吗?当然有,只不过那时候没有人给它命名,也没有引起人们足够的重视,发展比较慢。
自Nvidia提出GPU这个概念后,GPU就进入了快速发展时期。简单来说,其经过了以下几个阶段的发展:
1)仅用于图形渲染,此功能是GPU的初衷,这一点从它的名字就可以看出:Graphic Processing Unit,图形处理单元;
2)后来人们发现,GPU这么一个强大的器件只用于图形处理太浪费了,它应该用来做更多的工作,例如浮点运算。怎么做呢?直接把浮点运算交给GPU是做不到的,因为它只能用于图形处理(那个时候)。最容易想到的,是把浮点运算做一些处理,包装成图形渲染任务,然后交给GPU来做。这就是GPGPU(General Purpose GPU)的概念。不过这样做有一个缺点,就是你必须有一定的图形学知识,否则你不知道如何包装。
3)于是,为了让不懂图形学知识的人也能体验到GPU运算的强大,Nvidia公司又提出了CUDA的概念。
二.显卡工作原理
视频显示流程图
1.显卡工作流程

图像或者视频数据一旦离开CPU,必须通过4个步骤,才会到达显示器:
1)从总线进入GPU(Graphics Processing Unit,图形处理器):将CPU送来的数据总线,再从总线送到GPU里面进行处理。
2)从GPU进入帧缓冲存储器(或称显存):将GPU芯片处理完的数据送到显存。
3)从显存进入视频控制器:视频控制器有可能是DAC(Digital Analog Converter,随机读写存储数—模转换器),从显存读取出数据再送到RAM DAC进行数据转换的工作(数字信号转模拟信号);但是如果是DVI接口类型的显卡,则不需要经过数字信号转模拟信号。而直接输出数字信号。
4)从视频控制器进入显示器:将转换完的模拟信号送到显示屏。
2.显卡的类型
1)集成显卡
集成的显卡一般不带有显存,而是使用系统的一部分主内存作为显存,具体的数量一般是系统根据需要自动动态调整的。显然如果使用集成显卡运行需要大量占用内存的空间,对整个系统的影响会比较明显,此外系统内存的频率通常比独立显卡的显存低很多,因此集成显卡的性能比独立显卡要逊色一些。
2)独立显卡
独立显卡,简称独显,港澳台地区称独立显示卡,是指成独立的板卡,需要插在主板的相应接口上的显卡。独立显卡分为内置独立显卡和外置显卡。独立显卡是指以独立板卡形式存在,可在具备显卡接口的主板上自由插拔的显卡。独立显卡具备单独的显存,不占用系统内存,而且技术上领先于集成显卡,能够提供更好的显示效果和运行性能。
3)核心显卡
英文原名Core graphics card,核心图形卡,意思是集成在核心中的显卡。核心显卡是新一代的智能图形核心,它整合在智能处理器当中,依托处理器强大的运算能力和智能能效调节设计,在更低功耗下实现同样出色的图形处理性能和流畅的应用体验。需要注意的是,核心显卡虽然与传统意义上的集成显卡并不相同,工作方式的不同决定了它的性能比早期的集成显卡有所提升,但是它仍然是一种集成显卡,集成在核心中的显卡。
关于显存
用来存储屏幕上像素的颜色值,简称帧缓冲器,俗称显存。帧缓冲器中的单元数目与显示器上的像素数目相同,单元与像素一一对应,各单元的数值决定了其对应的像素的颜色。

三.关于GPU
GPU(graphics processing unit,图形处理器),又称显示核心、视觉处理器、显示芯片或绘图芯片,是一种专门在个人计算机、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上运行绘图运算工作的微处理器。换句话说,就是把CPU的数据翻译成显示器能读懂的数据。
CPU与GPU的结构对比如下图:

CPU是一个有多种功能的优秀领导者。它的优点在于调度、管理、协调能力强,计算能力则位于其次。而GPU相当于一个接受CPU调度的“拥有大量计算能力”的员工。换言之,CPU擅长统领全局等复杂操作,GPU擅长对大数据进行简单重复操作。CPU是从事复杂脑力劳动的教授,而GPU能进行大量并行计算。
GPU加速
GPU加速计算是指同时利用图形处理器(GPU)和CPU,加快科学、分析、工程、消费和企业应用程序的运行速度。
GPU加速计算可以提供非凡的应用程序性能,能将应用程序计算密集部分的工作负载转移到GPU,同时仍由CPU运行其余程序代码。从用户的角度来看,应用程序的运行速度明显加快。

理解GPU和CPU之间区别的一种简单方式是比较它们如何处理任务。CPU由专为顺序串行处理而优化的几个核心组成,而GPU则拥有一个由数以千计的更小、更高效的核心(专为同时处理多重任务而设计)组成的大规模并行计算架构。

四、视频渲染器
视频渲染器,Video Renderer是接收CPU的RGB/YUV裸数据,然后在显示器上显示的Filter。
运行在显卡上的一个驱动程序。完成将CPU发送视频数据显示到显示器的一个软件。使用potplay可以查看系统支持的选择渲染器种类。
SDL是一个封装库,对opengl/directD3D的封装。SDL使用统一的接口,在编译的时候,系统自动匹配最优的渲染方案。
opengl/directD3D是3D规范,各个GPU厂商需要按照这个3D规范实现接口调用,便于业务层使用。

备注
有独立显卡的主机后面有两个接显示器的口。
编号1口:使用的是Intel的集成显卡。
编号2口:是AMD或者英伟达的独立显卡。
只有当显示器线接到指定显卡后,才会使用该显卡。

五.什么是CUDA?
CUDA(Compute Unified Device Architecture),通用并行计算架构,是一种运算平台。它包含CUDA指令集架构以及GPU内部的并行计算引擎。你只要使用一种类似于C语言的CUDA C语言,就可以开发CUDA程序,从而可以更加方便的利用GPU强大的计算能力,而不是像以前那样先将计算任务包装成图形渲染任务,再交由GPU处理。
注意,并不是所有GPU都支持CUDA。
CPU和GPU的关系
在没有GPU之前,基本上所有的任务都是交给CPU来做的。有GPU之后,二者就进行了分工,CPU负责逻辑性强的事物处理和串行计算,GPU则专注于执行高度线程化的并行处理任务(大规模计算任务)。为什么这么分工?这是由二者的硬件构成决定的。
可以看出,CPU是“主(host)”而GPU是“从(device)”,GPU无论发展得多快,都只能是替CPU分担工作,而不是取代CPU。
附1:独立显卡和集成显卡的区别。
所谓集成,是指显卡集成在主板上,不能随意更换。而独立显卡是作为一个独立的器件插在主板的AGP接口上的,可以随时更换升级。
另外,集成显卡使用物理内存,而独立显卡有自己的显存。一般而言,同期推出的独立显卡的性能和速度要比集成显卡好、快。
值得一提的是,集成显卡和独立显卡都是有GPU的。
附2:Nvidia显卡分类。
GeForce系列:家庭娱乐。打游戏必备;
Quadro系列:专业绘图设计。视频渲染,经常使用3ds Max、Maya等软件的必备。
Tesla系列:高端显卡,用于大规模的并行计算。土豪必备。
另外,目前比较流行的物理引擎PhysX,并不是所有显卡都支持。官方文档上说GeForce 8及之后的显卡都支持。
CUDA只是一种并行计算架构,相关的概念还有OpenCL、OpenMP等。
GPU与显卡的更多相关文章
- GPU和显卡是什么关系?GPU会取代CPU吗?
一.GPU是什么?与显卡是什么关系?安装在什么地方?有单独的GPU板卡吗? GPU就是图像处理芯片,外表与CPU有点相似.显卡的芯片,AMD的一个技术,相当于电脑的处理器CPU,只不过它是显卡的大 ...
- 显卡、GPU和CUDA简介
http://blog.csdn.net/wu_nan_nan/article/details/45603299 声明: 本文部分内容来自网络.由于知识有限,有错误的地方还请指正.本帖为自己学习过程的 ...
- 显卡、显卡驱动、显存、GPU、CUDA、cuDNN
显卡 Video card,Graphics card,又叫显示接口卡,是一个硬件概念(相似的还有网卡),执行计算机到显示设备的数模信号转换任务,安装在计算机的主板上,将计算机的数字信号转换成模拟 ...
- 电脑硬件扫盲--CPU 显卡
CPU: 主要2个厂商 Inter:core(酷睿) > pentinum(奔腾) > celeron(赛扬) AMD:athlon(速龙) > semporn(闪龙) 主频(GHz ...
- CPU、GPU、CUDA、cuDNN
CPU擅长逻辑处理控制,GPU适合高强度的并行计算任务,为什么会存在这种差别?今天搜集了些相关资料,摘抄总结如下. 一.什么是GPU GPU这个概念是由Nvidia公司于1999年提出的.GPU是显卡 ...
- [svc]caffe安装笔记-显卡购买
caffe,这是是数据组需要做一些大数据模型的训练(深度学习), 要求 服务器+显卡(运算卡), 刚开始老板让买的牌子是泰坦的(这是2年前的事情了). 后来买不到这个牌子的,(jd,tb)看过丽台的, ...
- darknet YOLO 编译使用GPU
Darknet在GPU上运行可以得到500倍的提速,编译使用GPU要求显卡是Nvidia卡并且正确安装了CUDA. GPU环境下的编译配置都是在 /darknet/Makefile 文件中定义的,GP ...
- NVIDIA GPU架构与原理分析(一)——GPU简介与主流Fermi、Kepler架构GPU概述
1 GPU简介 图形处理单元GPU英文全称Graphic Processing Unit,GPU是相对于CPU的一个概念,NVIDIA公司在1999年发布GeForce256图形处理芯片时首先提出GP ...
- 基于GPU的优化处理
http://www.cnblogs.com/wuhanhoutao/archive/2007/11/10/955293.html 早期的三维场景绘制,显卡只是为屏幕上显示像素提供一个缓存,所有的图形 ...
随机推荐
- hdu1960 最小路径覆盖
题意: 给你明天的出租车订单,订单中包含每个人的起点和终点坐标,还有时间,如果一辆出租车想接一个乘客必须在每个订单前1分钟到达,也就是小于等于time-1,问你完成所有订单要最少多少量出租 ...
- hdu2433 spfa+mark[x][u][v]优化
题意: 删除每一条边求最短路的和,每删除一个就输出一个和. 思路: 直接暴力可定TLE了,自己SB的尝试过,就要剪纸,当每次输出一个答案的时候我们没有必要再从 ...
- hdu3234 带权并查集(XOR)
题意: 给你n个未知的正整数,有三总操作 I P V P的值是V I P Q V P XOR Q = V Q K ...
- iOS安全些许经验和学习笔记
http://bbs.pediy.com/showthread.php?t=209014 标题: [原创]iOS安全些许经验和学习笔记作者: MonkeyKey时间: 2016-03-30,16:32 ...
- 2020腾讯Android岗初级到高级面试真题收录解析
前言 马上就要到金九银十面试季了,需要找工作的小伙伴可以开始刷题复习了. 今天给大家分享的是博主腾讯面试的面经以及对腾讯2020上半年Android开发岗面经真题收录,希望可以帮助到大家,喜欢的朋友可 ...
- 【微信小程序】--小程序中循环遍历(包括js中遍历和wxml中的遍历)
文章为博主原创,纯属个人见解,如有错误欢迎指出. 如需转载,请注明出处. 在js中遍历 for (var index in res.data.infos) { res.data.infos[index ...
- VS里的 代码片段(Code snippet)很有用,制作也很简单
工欲善其事必先利其器,而 Visual Studio 就是我们的开发利器. 上一篇文章,介绍了一个很棒的快捷键,如果你还没用过这个快捷键,看完之后应该会豁然开朗.如果你已经熟练的应用它,也会温故而知新 ...
- Java安全之Fastjson反序列化漏洞分析
Java安全之Fastjson反序列化漏洞分析 首发:先知论坛 0x00 前言 在前面的RMI和JNDI注入学习里面为本次的Fastjson打了一个比较好的基础.利于后面的漏洞分析. 0x01 Fas ...
- liunx磁盘挂载操作
目标: 欲挂载目录:/home欲挂载磁盘:/dev/sdd 1.查看磁盘使用情况 [root@localhost ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 devtmpfs 47 ...
- Pytorch_Part3_模型模块
VisualPytorch beta发布了! 功能概述:通过可视化拖拽网络层方式搭建模型,可选择不同数据集.损失函数.优化器生成可运行pytorch代码 扩展功能:1. 模型搭建支持模块的嵌套:2. ...