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与显卡的更多相关文章

  1. GPU和显卡是什么关系?GPU会取代CPU吗?

      一.GPU是什么?与显卡是什么关系?安装在什么地方?有单独的GPU板卡吗? GPU就是图像处理芯片,外表与CPU有点相似.显卡的芯片,AMD的一个技术,相当于电脑的处理器CPU,只不过它是显卡的大 ...

  2. 显卡、GPU和CUDA简介

    http://blog.csdn.net/wu_nan_nan/article/details/45603299 声明: 本文部分内容来自网络.由于知识有限,有错误的地方还请指正.本帖为自己学习过程的 ...

  3. 显卡、显卡驱动、显存、GPU、CUDA、cuDNN

    显卡 Video card,Graphics card,又叫显示接口卡,是一个硬件概念(相似的还有网卡),执行计算机到显示设备的数模信号转换任务,安装在计算机的主板上,将计算机的数字信号转换成模拟 ...

  4. 电脑硬件扫盲--CPU 显卡

    CPU: 主要2个厂商 Inter:core(酷睿) > pentinum(奔腾) > celeron(赛扬) AMD:athlon(速龙) > semporn(闪龙) 主频(GHz ...

  5. CPU、GPU、CUDA、cuDNN

    CPU擅长逻辑处理控制,GPU适合高强度的并行计算任务,为什么会存在这种差别?今天搜集了些相关资料,摘抄总结如下. 一.什么是GPU GPU这个概念是由Nvidia公司于1999年提出的.GPU是显卡 ...

  6. [svc]caffe安装笔记-显卡购买

    caffe,这是是数据组需要做一些大数据模型的训练(深度学习), 要求 服务器+显卡(运算卡), 刚开始老板让买的牌子是泰坦的(这是2年前的事情了). 后来买不到这个牌子的,(jd,tb)看过丽台的, ...

  7. darknet YOLO 编译使用GPU

    Darknet在GPU上运行可以得到500倍的提速,编译使用GPU要求显卡是Nvidia卡并且正确安装了CUDA. GPU环境下的编译配置都是在 /darknet/Makefile 文件中定义的,GP ...

  8. NVIDIA GPU架构与原理分析(一)——GPU简介与主流Fermi、Kepler架构GPU概述

    1 GPU简介 图形处理单元GPU英文全称Graphic Processing Unit,GPU是相对于CPU的一个概念,NVIDIA公司在1999年发布GeForce256图形处理芯片时首先提出GP ...

  9. 基于GPU的优化处理

    http://www.cnblogs.com/wuhanhoutao/archive/2007/11/10/955293.html 早期的三维场景绘制,显卡只是为屏幕上显示像素提供一个缓存,所有的图形 ...

随机推荐

  1. Think5之ajax批量删除数据功能

    //批量删除学员信息 public function deleteMany() { $id = input('post.'); //判断id是数组还是一个数值 if(is_array($id)){ f ...

  2. 阿里早期Android加固代码的实现分析

    本文博客地址:http://blog.csdn.net/qq1084283172/article/details/78320445 看雪上有作者(寒号鸟二代)将阿里移动早期的Android加固进行了逆 ...

  3. Python中数据的排序

    目录 列表的排序 sort(key,reverse)方法 sorted(target,key,reverse) 函数 元组tuple的排序 sort(key,reverse)方法 sorted(tar ...

  4. POJ2349二分+并查集,类似最小树的贪心

    题意:       给你n个点,你的任务是构建一颗通讯树,然后给你一个s表示可以选出来s个点两两通讯不花钱,就是费用是0,其他的费用就是两点的距离,有个要求就是其他的费用中最大的那个最小. 思路:   ...

  5. 【vue-03】组件化开发 component

    vue组件化思想 组件化是vue的一个重要思想 它提供了一种抽象,让我们可以开发出一个个独立可复用的小组件来构建我们的应用. 任何的应用都会被抽象成一颗组件树. 注册组件 组件的使用分成三个步骤:创建 ...

  6. python爬虫——汽车之家数据

    相信很多买车的朋友,首先会在网上查资料,对比车型价格等,首选就是"汽车之家",于是,今天我就给大家扒一扒汽车之家的数据: 一.汽车价格: 首先获取的数据是各款汽车名称.价格范围以及 ...

  7. qsort和sort学习与比较

    阅读另一篇博文Uva 642 - Word Amalgamation sort qsort 1.qsort函数: 原 型: void qsort(void *base, int nelem, int ...

  8. 技术博客:Azure 认知服务

    Azure 认知服务 1.概述 ​ 微软认知服务(Microsoft Cognitive Services)集合了多种智能API以及知识API,使每个开发人员无需具备机器学习的专业知识就能接触到 AI ...

  9. 使用 CSS perfer-* 规范,提升网站的可访问性与健壮性

    文本将介绍 CSS 媒体查询中新增的几个特性功能: prefers-reduced-motion prefers-color-scheme prefers-contrast prefers-reduc ...

  10. SSM框架整合(Spring+SpringMVC+Mybatis)

    第一步:创建maven项目并完善项目结构  第二步:相关配置 pom.xml 引入相关jar包 1 <properties> 2 <project.build.sourceEncod ...