• 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。

    CPUGPU的关系

    在没有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等。

     

  • 相关阅读:
    ASP.NET编程的十大技巧
    C#学习心得(转)
    POJ 1177 Picture (线段树)
    POJ 3067 Japan (树状数组)
    POJ 2828 Buy Tickets (线段树)
    POJ 1195 Mobile phones (二维树状数组)
    HDU 4235 Flowers (线段树)
    POJ 2886 Who Gets the Most Candies? (线段树)
    POJ 2418 Cows (树状数组)
    HDU 4339 Query (线段树)
  • 原文地址:https://www.cnblogs.com/wujianming-110117/p/12974271.html
Copyright © 2020-2023  润新知