图形处理器


图形处理器

文章插图
图形处理器【图形处理器】图形处理器(英语:Graphics Processing Unit,缩写:GPU),又称显示核心、视觉处理器、显示晶片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智慧型手机等)上图像运算工作的微处理器 。
用途是将计算机系统所需要的显示信息进行转换驱动,并向显示器提供行扫描信号,控制显示器的正确显示,是连线显示器和个人电脑主机板的重要元件,也是“人机对话”的重要设备之一 。显示卡作为电脑主机里的一个重要组成部分,承担输出显示图形的任务,对于从事专业图形设计的人来说显示卡非常重要 。
基本介绍中文名:图形处理器
外文名:Graphics Processing Unit
英语缩写:GPU
又称:显示核心、显示晶片
功能作用显示卡的处理器称为图形处理器(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的演变将继续下去,不仅仅作为绘製引擎,而是会成为个人电脑的主要计算引擎 。识别软体说起处理器识别工具CPU-Z,其知名度和必备度无需赘言 。硬体网站时下又给我们提供了一个类似的工具,用于显示卡识别的“GPU-Z” 。这是TechPowerUp发布的专业显示卡识别工具 。供应商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中) 。NVIDIANVIDIA是现在最大的独立显示卡晶片生产销售商 。他的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供应商 。3dfx3dfx是一家于1994年成立的生产3D GPU及显示卡的公司 。曾经生产了Voodoo系列显示卡,并且研发了SLI技术 。由于经营不善等问题于2002年被NVIDIA收购 。MatroxMatrox当年和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的需求,不过仍然依赖主机板本身的存储器 。相关问题第一个问题GPU的竞争远比CPU的竞争来得激烈 。通用PC的CPU就只有英特尔和AMD两家大厂 。而在GPU方面领先的是N记和A记两家厂商,但能生产中低端产品的还有英特尔、S3等好几家厂商 。它们的产品虽然不如前两家,但在很多套用方面也能满足用户的需要,所以N记和A记只有拚命往前跑才不会死掉 。CPU厂商没有採用GPU的先进工艺是因为CPU厂商都有自己投资的生产线,不可能一下把原来的生产线都淘汰了上新的生产线,那样做可能连当初投入的资金都难以收回 。而GPU厂商由于种种原因,一般都是自己设计由别人代工的,比如找台积电代工 。代工厂商为了能接到业务,只有不停升级自己的生产设备,这样才能生存下来 。所以造成以上原因 。第二个问题就如你所说的一样,CPU除了处理游戏的AI,情节等方面的数据外,对于有些图像方面也是由它完成的 。当微软每次发布新的DX时,并不是每款GPU都能支持DX新的特性,所以有些图像方面的任务还得由CPU来完成 。还有有些特性比如重力特性以前是由CPU来完成,时下有些GPU也能支持了,这些任务就由GPU来完成了 。第三个问题GPU相当于专用于图像处理的CPU,正因为它专,所以它强,在处理图像时它的工作效率远高于CPU,但是CPU是通用的数据处理器,在处理数值计算时是它的强项,它能完成的任务是GPU无法代替的,所以不能用GPU来代替CPU 。另外时下AMD收购了A记显示卡晶片的设计厂商,AMD看到今后CPU和GPU只有走一条融合的道路才能在竞争中占得先机 。CPU和GPU如何配合默契才能最大地提高工作效率是AMD时下考虑的问题,也是英特尔的问题 。第四个问题微软发布windows7 其中一个显着特性就是 联合GPU和CPU的强大实力,提升GPU在硬体使用的价值,在Windows7中,CPU与GPU组成了协同处理环境 。CPU运算非常複杂的序列代码,而GPU则运行大规模并行应用程式 。微软利用DirectX Compute将GPU作为作业系统的核心组成部分之一 。DirectX Compute 。它让开发人员能够利用 GPU的大规模并行计算能力,创造出引人入胜的消费级和专业级计算应用程式 。简单的说,DirectX Compute就是微软开发的GPU通用计算接口,欲统一GPU通用计算标準 。也就是说windows7 以后GPU的硬体地位将仅次于CPU,发挥出更大的效用 。