欢迎访问趣闻百科网!
首页 >生活 >图形处理器
图形处理器

图形处理器

(图像和图形相关工作的微处理器)
图形处理器(Graphics Processing Unit,GPU),指面向图像运算工作的可编程微处理器,图形处理器广泛应用于嵌入式设备、移动设备、游戏机、个人电脑、工作站等各类设备或计算机中。现代的图形处理器通常基于高度并行的、且对图形处理运算做了定制设计的内部硬件结构。主要包括多边形转换、光源处理以及视频处理功能等,从而能够比中央处理器更为有效地进行图形处理,图形处理器的出现减轻了中央处理器的处理负担,图形处理器可以集成在显卡上,或者直接集成到计算机主板上。[1]
图形处理器资料
  • 中文名:图形处理器
  • 外文名:Graphics Processing Unit
  • 缩写:GPU
  • 别名:显示核心、显示芯片
  • 发展历史

    356次播放03:06

    13-图形处理器的基础知识

    GPU是NVIDIA公司在发布GeForce256绘图处理芯片时首先提出的概念,在此之前,计算机中处理图像输出的显示芯片,通常很少被视为是一个独立的运算单元,但这设计理念则由来已久。

    20世纪70年代,ANTIC和CTIA芯片为Atari游戏机(一种早期的黑白游戏机)提供了硬件控制的图形和文字混合显示模式以及其他视频效果的支持,ANTIC芯片是一个特殊用途的处理器,用于映射文字和图形数据到视频输出。

    80年代,IBM推出了第一个用于个人计算机2D/3D图形加速处理的控制器,比硬件3D加速成为个人计算机的标准配置的时间早了整整10年,但因高价格、较低的运行频率以及软件兼容性问题,其没有获得商业上的成功。而Commodre Aniga是第一个在市场上获得成功的在其视频硬件上包含2D图形位图处理功能的计算机,也是世界上首款多媒体、多重任务处理的计算机。Commodre Aniga的独特之处在于,其实现了一个完整的具有独立指令集的图形处理加速器,将线条绘制、区域填充、图形转换等功能都从中央处理器中剥离出来。

    90年代,Microsft Windows的崛起引发人们对高性能、高分辨率2D位图图形运算的兴趣,在个人计算机市场上,Windows的优势地位意味着PC图形厂商可以集中精力发展单一的编程接口,即图形设备接口(graphic device interface)。1991年,S3Graphice推出了第一款单芯片的2D图像加速器,名为S386C911。其后,86C911催生了大量的仿效者,到1995年,所有主要的PC图形处理器制造商都于他们的芯片内增加2D加速的支持。此时,固定功能的Windows图形加速处理器的性能已超过昂贵的通用图形协处理器,令这些协处理器逐渐从个人计算机市场上消失。在整个90年代,2D图形持续加速发展,随着制造能力的改善,图形处理器的集成水平也在提高。同时,能够应用于多个图形处理领域的应用开发接口也陆续出现,包括供微软Windows3.X使用的WinG图像程序库及其后继Direct Draw接口。

    在20世纪90年代初期和中期,CPU辅助的实时三维图像处理越来越常见于个人计算机和电视游戏上,从而产生了大量的硬件加速的3D图像处理需求。早期出现于大众市场上的3D图像硬件处理的例子有第五代视频游戏机,包括playstation和任天堂64。而在个人计算机领域,最初始的低成本3D图形处理器的生产尝试都失败了,包括S3的ViRGE、ATI的3DRage和Matrox的Mystique,这些芯片的特点是在上一代的2D加速器上加入3D功能,有些芯片为了便于制造和降低成本,甚至使用与前代兼容的针脚。后来,出现了专门用作3D图形加速处理的独立显卡(没有2D加速功能),如3dfx的Voodoo。逐步地,随着芯片制造技术的进展,视频、2D、3D加速处理功能都集成到一块芯片上,Rendition的Verite是第一个能做到这样的芯片组。

    21世纪以来,随着OpenGL API 和DirectX类似功能的出现,GPU增加了可编程着色的能力———每个像素可以经由独立的小程序段处理,当中可以包含额外的图像纹理输入,而每个几何顶点同样可以在投影到屏幕上之前被独立的小程序段处理。MVIDIA是首家能生产支持可编程着色芯片的公司,即GeForce3。2002年10月,AIT发表了Radeon9700,它是世界上首个Direct3D9.0图形加速处理器,而像素和顶点着色引擎可以运行循环和长时间的浮点运算,这就使其编程更为灵活,并达到更快的运算效果。随着处理能力的增加,GPU的功耗也随之增加,高性能GPU往往比目前的中央处理器消耗更多的电能。[1]

    组成

    图形处理器由以下器件组成:

    (1)显示主芯片显卡的核心,俗称GPU,它的主要任务是对系统输入的视频信息进行构建和渲染。

    (2)显示缓冲存储器用来存储将要显示的图形信息以及保存图形运算的中间数据;显示缓存的大小和速度直接影响着主芯片性能的发挥。

    (3)RAMD/A转换器把二进制的数字转换成为和显示器相适应的模拟信号。

    发展趋势

    计算能力和计算模式方面的问题

    当前GPU的基础———传统Z-buffer算法不能满足新的应用需求。在实时图形和视频应用中,需要更强大的通用计算能力,比如支持碰撞检测、近似物理模拟;在游戏中需要图形处理算法与人工智能和场景管理等非图形算法相结合。当前的GPU的体系结构不能很好地解决电影级图像质量需要解决的透明性、高质量反走样、运动模糊、景深和微多边形染色等问题,不能很好的支持实时光线跟踪、Reyes(Renders everything you ever saw)等更加复杂的图形算法,也难以应对高质量的实时3D图形需要的全局光照、动态和实时显示以及阴影和反射等问题。需要研究新一代的GPU体系结构突破这些限制。随着 VLSI技术的飞速发展,新一代GPU芯片应当具有更强大的计算能力,可以大幅度提高图形分辨率、场景细节 (更多的三角形和纹理细节)和全局近似度。图形处理系统发展的趋势是图形和非图形算法的融合以及现有的不同染色算法的融合。新一代的图形系统芯片需要统一灵活的数据结构、新的程序设计模型、多种并行计算模式。我们认为发展的趋势是在统一的、规则并行处理元阵列结构上,用数据级并行、操作级并行和任务级并行的统一计算模式来解决当前图形处理系统芯片面临的问题。

    制造工艺方面的问题

    集成电路发展到纳米级工艺,不断逼近物理极限,出现了所谓红墙问题:一是线的延迟比门的延迟越来越重要。长线不仅有传输延迟问题,而且还有能耗问题。二是特征尺寸已小到使芯片制造缺陷不可避免,要从缺陷容忍、故障容忍与差错容忍等三个方面研究容错与避错技术。三是漏电流和功耗变得非常重要,要采用功耗的自主管理技术。现代的图形处理器芯片在克服红墙问题的几个方面有了显著的进步:利用了大量的规则的 SIMD 阵列结构;它的分布存储器接近了运算单元,减少了长线影响;它的硬件多线程掩盖了部分存储延迟的影响。但是随着工艺进一步发展,当前 GPU 的体系结构难以适应未来工艺发展,没有在体系结构上应对长线问题、工艺偏差和工艺缺陷问题的措施,特别是没有考虑如何适应三维工艺。当前最先进工艺的晶体管的栅极厚度已经大约是五个原子,在制造时,少了一个原子就造成20 %的工艺偏差。因此工艺的偏差成为SoC设计不能不考虑的问题。特别是到 2018 年后的纳电子集成电路,可以通过随机自组装产生规则的纳米器件。因此,新一代系统芯片的体系结构必须利用规则的结构并且容忍工艺偏差,具有容错、避错和重组的能力。我们认为采用大量同构处理器元之间的邻接技术,适应纳米级工艺和未来的三维工艺,采用新型体系结构和相关的低功耗、容错和避错的设计策略,对于未来的图形处理系统芯片具有重要的科学意义。

    功能作用

    显卡的处理器称为图形处理器(GPU),它是显卡的“心脏”,与CPU类似,只不过GPU是专为执行复杂的数学和几何计算而设计的,这些计算是图形渲染所必需的。某些最快速的GPU集成的晶体管数甚至超过了普通CPU。

    时下的GPU多数拥有2D或3D图形加速功能。如果CPU想画一个二维图形,只需要发个指令给GPU,如“在坐标位置(x, y)处画个长和宽为a×b大小的长方形”,GPU就可以迅速计算出该图形的所有像素,并在显示器上指定位置画出相应的图形,画完后就通知CPU “我画完了”,然后等待CPU发出下一条图形指令。

    有了GPU,CPU就从图形处理的任务中解放出来,可以执行其他更多的系统任务,这样可以大大提高计算机的整体性能。

    GPU会产生大量热量,所以它的上方通常安装有散热器或风扇。

    GPU是显示卡的“大脑”,GPU决定了该显卡的档次和大部分性能,同时GPU也是2D显示卡和3D显示卡的区别依据。2D显示芯片在处理3D图像与特效时主要依赖CPU的处理能力,称为软加速。3D显示芯片是把三维图像和特效处理功能集中在显示芯片内,也就是所谓的“硬件加速”功能。显示芯片一般是显示卡上最大的芯片(也是引脚最多的)。时下市场上的显卡大多采用NVIDIA和 AMD-ATI 两家公司的图形处理芯片

    GPU已经不再局限于3D图形处理了,GPU通用计算技术发展已经引起业界不少的关注,事实也证明在浮点运算、并行计算等部分计算方面,GPU可以提供数十倍乃至于上百倍于CPU的性能,如此强悍的“新星”难免会让CPU厂商老大英特尔为未来而紧张, NVIDIA和英特尔也经常为CPU和GPU谁更重要而展开口水战。GPU通用计算方面的标准目前有OpenCL、CUDA、ATI STREAM。其中,OpenCL(全称Open Computing Language,开放运算语言)是第一个面向异构系统通用目的并行编程的开放式、免费标准,也是一个统一的编程环境,便于软件开发人员为高性能计算服务器、桌面计算系统、手持设备编写高效轻便的代码,而且广泛适用于多核心处理器(CPU)、图形处理器(GPU)、Cell类型架构以及数字信号处理器(DSP)等其他并行处理器,在游戏、娱乐、科研、医疗等各种领域都有广阔的发展前景,AMD-ATI、NVIDIA时下的产品都支持OPEN CL。

    1985年 8月20日 ATi公司成立,同年10月ATi使用ASIC技术开发出了第一款图形芯片和图形卡,1992年 4月 ATi发布了 Mach32 图形卡集成了图形加速功能,1998年 4月 ATi被IDC评选为图形芯片工业的市场领导者,但那时候这种芯片还没有GPU的称号,很长的一段时间ATI都是把图形处理器称为VPU,直到AMD收购ATI之后其图形芯片才正式采用GPU的名字。

    NVIDIA公司在1999年发布GeForce 256图形处理芯片时首先提出GPU的概念。从此NV显卡的芯就用这个新名字GPU来称呼。GPU使显卡削减了对CPU的依赖,并实行部分原本CPU的工作,更加是在3D图形处理时。GPU所采用的核心技术有硬体T&L、立方环境材质贴图与顶点混合、纹理压缩及凹凸映射贴图、双重纹理四像素256位渲染引擎等,而硬体T&L技术能够说是GPU的标志。

    工作原理

    简单说GPU就是能够从硬件上支持T&L(Transform and Lighting,多边形转换和光源处理)的显示芯片,由于T&L是3D渲染中的一个重要部分,其作用是计算多边形的3D位置与处理动态光线效果,也能称为“几何处理”。一个好的T&L单元,能提供细致的3D物体和高级的光线特效;只不过大多数PC中,T&L的大部分运算是交由CPU处理的(这就也就是所谓软件T&L),因为CPU的任务繁多,除了T&L之外,还要做内存管理和输入响应等非3D图形处理工作,所以在实际运算的时候性能会大打折扣,一般出现显卡等待CPU数据的情况,CPU运算速度远跟不上时下复杂三维游戏的要求。即使CPU的工作频率超出1GHz或更高,对它的帮助也不大,因为这是PC本身设计造成的问题,与CPU的速度无太大关系。

    产品区别

    GPU在几个主要方面有别于DSP(Digital Signal Processing,简称DSP,数字信号处理)架构。其所有计算均使用浮点算法,而且此刻还没有位或整数运算指令。此外,由于GPU专为图像处理设计,因此存储系统实际上是一个二维的分段存储空间,包括一个区段号(从中读取图像)和二维地址(图像中的X、Y坐标)。此外,没有任何间接写指令。输出写地址由光栅处理器确定,而且不能由程序改变。这对于自然分布在存储器之中的算法而言是极大的挑战。最后一点,不同碎片的处理过程间不允许通信。实际上,碎片处理器是一个SIMD数据并行执行单元,在所有碎片中独立执行代码。

    尽管有上述约束,但是GPU还是可以有效地执行多种运算,从线性代数和信号处理到数值仿真。虽然概念简单,但新用户在使用GPU计算时还是会感到迷惑,因为GPU需要专有的图形知识。这种情况下,一些软件工具可以提供帮助。两种高级描影语言CG和HLSL能够让用户编写类似C的代码,随后编译成碎片程序汇编语言。Brook是专为GPU计算设计,且不需要图形知识的高级语言。因此对第一次使用GPU进行开发的工作人员而言,它可以算是一个很好的起点。Brook是C语言的延伸,整合了可以直接映射到GPU的简单数据并行编程构造。经 GPU存储和操作的数据被形象地比喻成“流”(stream),类似于标准C中的数组。核心(Kernel)是在流上操作的函数。在一系列输入流上调用一个核心函数意味着在流元素上实施了隐含的循环,即对每一个流元素调用核心体。Brook还提供了约简机制,例如对一个流中所有的元素进行和、最大值或乘积计算。Brook还完全隐藏了图形API的所有细节,并把GPU中类似二维存储器系统这样许多用户不熟悉的部分进行了虚拟化处理。用Brook编写的应用程序包括线性代数子程序、快速傅立叶转换、光线追踪和图像处理。利用ATI的X800XT和Nvidia的GeForce 6800 Ultra型GPU,在相同高速缓存、SSE汇编优化Pentium 4执行条件下,许多此类应用的速度提升高达7倍之多。

    对GPU计算感兴趣的用户努力将算法映射到图形基本元素。类似Brook这样的高级编程语言的问世使编程新手也能够很容易就掌握GPU的性能优势。访问GPU计算功能的便利性也使得GPU的演变将继续下去,不仅仅作为绘制引擎,而是会成为个人电脑的主要计算引擎。

    供应商

    GPU有非常多的厂商都生产,和CPU一样,生产的厂商比较多,但大家熟悉的却只有INA,以至于大家以为GPU只有三大厂商。

    英特尔

    英特尔的GPU基本为集成显卡芯片,用于英特尔的主板和英特尔的CPU。可能你想不到,要是只按市场占有率计算,英特尔随着他主板及CPU发售的集成GPU占据了整个GPU市场的60%以上。

    他的GPU主要有:唯一一款独立显卡芯片Intel 740(i740)。Extreme Graphics系列、GMA系列(集成于芯片组中)。现在的HD Graphics系列、Iris™ Graphics系列、Iris™ Pro Graphics系列等(集成于CPU中)。

    NVIDIA

    NVIDIA是现在最大的独立显卡芯片生产销售商。

    他的GPU包括大家熟悉的Geforce系列,包括GTX、GTS、GT等。专业工作站的Quadro系列,超级计算的Tesla系列,多显示器商用的NVS系列,移动设备的Tegra系列。

    以前也销售集成在主板上的集成显卡芯片,这些随着主板芯片组一起发售,但是由于AMD收购ATI后自身主板芯片组GPU能力提高,NVIDIA芯片组如日中天的景象已经消失了。

    曾经为游戏机Xbox、PS3供应GPU。

    AMD(ATI)

    AMD是世界上第二大的独立显卡芯片生产销售商,他的前身就是ATI,2006年AMD以54亿美元收购ATI。

    他的GPU主要是大家熟悉的Radeon系列,包括以前的X、HD系列,近几年的R9、R7、R5、R3,现在的RX系列等。专业工作站的FireGL系列,超级计算的FireStream系列,多显示器商用的FireMV系列,现在前三者已合并为FirePro系列。

    早期ATI还生产过Wonder系列、Mach系列、Rage系列芯片。

    除了独立显卡之外AMD还拥有集成显卡芯片,集成于芯片组、APU中。

    由于AMD收购ATI后,其主板市场迅速扩大,已经夺取了NVIDIA在AMD处理器主板芯片组的半壁江山。

    就现在的发售量和发售盈利方面,AMD的GPU市场占有率方面仍然略输于NVIDIA。

    AMD也是游戏机Xbox 360、Wii、Wii U、PS4、Xbox One的GPU供应商。

    3dfx

    3dfx是一家于1994年成立的生产3D GPU及显卡的公司。

    曾经生产了Voodoo系列显卡,并且研发了SLI技术。

    由于经营不善等问题于2002年被NVIDIA收购。

    Matrox

    Matrox当年和NVIDIA,ATI一起争夺独立显卡芯片市场份额的一家公司,在曾经的一个时期Matrox的显卡和NVIDIA,ATI曾经在性能上比肩过。但由于后来其开发能力日渐衰退,在GF5时期,也就是ATI的9000系列时期,Matrox由于性能上整整落后了GF5900和Raden9800一个世代而逐渐被淘汰,淡出了民用独立显卡市场。

    但时下Matrox仍然在工程用专业显卡方面有自己的地位。这些显卡用于工程主图和多头输出仍然很强力。与NVIDIA和AMD的专业显卡不同,NVIDIA,ATI的专业显卡涉足的是3D领域,而Matrox得专业显卡涉足的是2D领域,也就是CAD

    但由于OpenCL、CUDA的日渐普及,DX10以上显卡将在所有支持CUDA的程序上表现出惊人的性能,也就是说当CUDA在各种运用软件普及的那天,Matrox也必将退出2D专业卡的市场。

    SiS和VIA

    矽统和威盛时下是对孪生兄弟,但他们曾经也是分开的两家公司,并且都生产自己主板的集成显卡芯片。但这可怜的两兄弟已经逐步在淡出主板市场了,也就必定将淡出GPU市场。

    类型

    独立显卡

    显卡是通过PCI-Express、PCI或AGP等扩展槽界面与主板连接的,而通常它们可以相对容易地被取代或升级(假设主板能支持升级)。现在,仍然有少数显卡采用带宽有限的PCI插槽作连接,但它们通常只会在主板没有提供PCI-Express和AGP插槽的情况下才会使用。

    在现今的定义里,独立绘图处理器不一定需要,是可以被移除的,也不一定要直接与主板连接。所谓的“专用”即是指独立显卡(或称专用显卡)内的RAM只会被该卡专用,而不是指显卡是否可从主板上独立移除。基于体积和重量的限制,供笔记本电脑使用的独立绘图处理器通常会通过非标准或独特的接口作连接。然而,由于逻辑接口相同,这些端口仍会被视为PCI-Express或AGP,即使它们在物理上是不可与其他显卡互换的。

    一些特别的技术,如NVIDIA的SLI和ATI的CrossFire允许多个绘图处理器共同处理一个单一的视频输出,可令电脑的图像处理能力增加。

    集成绘图处理器

    集成绘图处理器(或称内置显示核心)是设在主板或CPU上的绘图处理器,运作时会借用电脑内部分的系统存储器。2007年装设集成显示的个人电脑约占总出货量的90%,相比起使用独立显卡的方案,这种方案可能较为便宜,但性能也许相对较低。从前,集成绘图处理器往往会被认为是不适合于运行3D游戏或精密的图形型运算。然而,如Intel GMA X3000(Intel G965 芯片组)、AMD的Radeon HD 4290(AMD 890GX 芯片组)和NVIDIA的GeForce 8200(NVIDIAnForce 730a芯片组)已有能力处理对系统需求不是太高的3D图像。当时较旧的集成图形处理器组缺乏如硬件T&L等功能,只有较新型号才会包含。

    影响集成绘图处理器的性能,其中一个原因是由于内置显示核心的运算速度。同时,图形处理器在运作时会消耗一定数量的存储器。系统存储器的速度比高级独立绘图存储器来得慢,系统存储器的发送速度可能是10GB/s至20GB/s左右,独立绘图存储器则至少有50GB/s,甚至超过150GB/s,取决于型号而定。

    不过从2009年开始,图形处理器已经从主板移去处理器了,如Intel的Westmere架构至目前的Kaby Lake架构。不过极致版并没有集成图形处理器。集成至处理器的好处是由于绘图及处理器芯片工艺为相同(Westmere除外,CPU为32nm而GPU为45nm),可以减低热功耗。随着内显技术的成熟,目前的内显已经足够应付基本3D的需求,不过仍然依赖主板本身的存储器。

    参考资料

    [1] 张效祥 . 计算机科学技术百科全书 : 清华大学出版社 ,2018-05

    相关视频

    全部

    356次播放03:06

    13-图形处理器的基础知识

    发展历史

    17万次播放02:23

    GPU到底是怎么工作的?怎么显示游戏画面的?看看这个就知道了

    合集

    更多视频

    4个视频

  • 上一篇百科:音频处理器
  • 下一篇百科:耳机端口
  • 免责声明:本站部分内容来自于网络或者相关专家观点,本站发表仅供学习参考,如有侵权请联系删除邮箱:lujiutang84414@126.com。