GPU——“图形处理器”

GPU的作用  

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

  今天,GPU已经不再局限于3D图形处理了,GPU通用计算技术发展已经引起业界不少的关注,事实也证明在浮点运算、并行计算等部分计算方面,GPU可以提供数十倍乃至于上百倍于CPU的性能,如此强悍的“新星”难免会让CPU厂商老大英特尔为未来而紧张, NVIDIA和英特尔也经常为CPU和GPU谁更重要而展开口水战。GPU通用计算方面的标准目前有 OPEN CL、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工作原理  

    简单说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的工作频率超过1GHz或更高,对它的帮助也不大,由于这是PC本身设计造成的问题,与CPU的速度无太大关系。

GPU与DSP的区别

  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供应商  

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

GPU——“图形处理器”_第1张图片

intel

intel

  可能谁都想不到intel不但是世界上最大的CPU生产销售商,也是世界最大的GPU生产销售商。

  intel的GPU在现在完全是集成显卡,用于intel的主板和intel的笔记本。可能你想不到,要是只按发售数量计算,intel随着他主板发售的集成GPU占据了整个GPU市场的60%以上。

nVidia

  现在最大的独立显卡生产销售商,他的显卡包括现在大家熟悉的Geforce系列,比如GF9800GTX,GTX260,GF8600GT等,还有专业的Quadro系列等。  

GPU——“图形处理器”_第2张图片

nVidia

  他也同样销售固化在主板上的集成显卡,这些显卡随着主板一起发售,但是由于AMD兼并ATI后自身主板芯片能力提高,NV主板如日中天的景象已经失去了半壁江山。

AMD(ATI)

  世界上第二大的独立显卡生产销售商,他的前身就是ATI。他的显卡主要就是大家熟悉的HD系列,比如HD3850,HD4650,HD4870等。  

GPU——“图形处理器”_第3张图片

AMD

  由于AMD兼并ATI后,其主板市场迅速扩大,已经夺取了NV在amd处理器主板的半壁江山。就发售量和发售盈利方面,AMD显卡方面仍然略输于nv,不过两者不相伯仲,差距只是几个百分点。

Matrox。

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

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

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

sis和via

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

  • 2010-10-13            

    注:源自原百度博客“至美心"

你可能感兴趣的:(硬件,技术杂谈,gpu)