ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:1.53MB ,
资源ID:7682511      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7682511.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(10年GPU通用计算回顾.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

10年GPU通用计算回顾.docx

1、10年GPU通用计算回顾显卡只能玩游戏? 10年GPU通用计算回顾 2010年04月06日 08:42 中关村在线硬件频道选购指导评测试用行情快报新闻新品知识技巧攒机推荐论坛作者:中关村在线 濮元恺 第1页:硬件T&L单元催生GPU诞生前言:从世界上第一款GPU横空出世到今天,显卡已经走过了10年历史。GPU在这10年演变过程中,我们看到GPU从最初帮助CPU分担几何吞吐量,到Shader单元初具规模,然后出现Shader单元可编程性,到今天GPU通用计算领域蓬勃发展这一清晰轨迹。这10年包含了无数设计者艰辛努力的成果,GPU也用自己的发展速度创造了半导体行业的奇迹,而GPU当今成就的见证者,

2、正是我们的无数硬件玩家和游戏爱好者。我们可以肯定以GPU诞生初期的设计定位和市场需求,没有人敢相信今天GPU能走上通用计算这条道路,正所谓无心插柳柳成荫。 硬件T&L单元催生GPU诞生Geforce 256代号NV10于1999年8月发布。这是图形芯片领域开天辟地的产品,也是第一款提出GPU概念的产品。GPU英文全称Graphic Processing Unit,中文翻译为“图形处理器”。Geforce 256所采用的核心技术有硬体T&L、立方环境材质贴图和顶点混合、纹理压缩和凹凸映射贴图、双重纹理四像素256位渲染引擎等,而硬体T&L技术可以说是GPU的标志。Geforce 256诞生199

3、9年,已经凭借RivaTNT2在图形芯片界立足的NVIDIA,主动放弃帮自己打下江山的Riva品牌,新启用的Geforce强调力量并沿用至今,并衍生出驱动品牌Forceware及芯片组品牌nForce。Geforce256之所以被称作GPU原因就在于Geforce256划时代的在图形芯片内部集成了T&L(几何光照转换)功能,使得GPU拥有初步的几何处理能力,彻底解决了当时众多游戏瓶颈发生在CPU几何吞吐量不够的瓶颈。Geforce 256显卡的出色表现,NVIDIA强大的技术实力得到全面释放,这块显卡是真正的全面领先型产品,而不是靠16bit色和32bit色的区域优势或者是单纯依赖特定的3D

4、API支持。T&L几何光照转换原先由CPU负责,或者由另一个独立处理机来负责处理(例如一些旧式工作站显视卡)。较强劲的3dfx Voodoo2 和 Rendition Verite显示核心已整合了几何(三角形)建构,但硬件T&L仍是一大进步,原因是拥有该技术的显示核心从CPU接管了大量工作。硬件T&L单元让Geforce 256几乎成为一个全新的GPU标准,也让GPU更加独立自主。DirectX 7.0推出获得众多支持不可否认在成功的背后,离不开微软推出的图形APIDirectX 7.0的鼎力支持。DirectX 7.0最大的特色就是支持T&L,在T&L问世之前,位置转换和灯光都需要CPU来计

5、算,CPU速度越快,游戏表现越流畅。使用了T&L功能后,这两种效果的计算用显示卡的GPU来计算,这样就可以把CPU从繁忙的劳动中解脱出来。同时从另一个角度提升了GPU在PC系统中的地位。值得一提的是GeForce2首开了GPU通用计算的先河,凭借其强大的多纹理处理性能,结合纹理环境参数和纹理函数可以实现一些很灵活的应用。它具有Texture Shader以及Register Combiner单元,有一定的数值计算能力。开发人员可以利用Texture Shader的依赖纹理进行数据访问,用Register Combiner进行计算。GeForce2被用于求解数学上的扩散方程,成为GPU通用计算的

6、最早应用。1f96 第2页:Shader概念形成 GPU走上“邪路” Shader单元概念形成,GPU开始走上“邪路”面向图形计算,让GPU逐渐找到了自己的方向,这个方向就是给予用户更真更快地视觉体验,但是GPU架构也遇到一些问题亟待解决。首要问题就是,要实现更加复杂多变的图形效果,不能仅仅依赖三角形生成和固定光影转换。虽然当时游戏画面的提高基本上都是通过大量的多边形、更复杂的贴图来实现的。但是后期发展中,顶点和像素运算的需求量猛增。每个顶点都包含许多信息,比顶点上的纹理信息,散光和映射光源下表现的颜色,所以在生成多边形的时候带上这些附加运算,就可以带来更多的效果,但这也更加考验顶点和像素计算

7、能力。研究人员发现,同硬件T&L仅仅实现的固定光影转换相比,VS和PS单元的灵活性更大。可编程模型与旧有的预定义模型是不同的。这种模型中,数据是透过virtual machine以一个类似于带有特殊汇编指令集的pre-arranged(事先安排好)程序进行处理的,程序员可以直接对其进行编程。凭借可编程几何管线和可编程像素管线,使用者可以自由的控制几何和像素的代码设计。这对于图形开发者是空前的,他们可以通过基本的着色器,利用开发工具,产生全新的、极具创造力的效果。也正是可编程管线的引入,为GPU发展翻开了新的篇章,GPU开始向SIMD处理器方向发展,凭借强大的并行处理性能,使得GPU开始用有了部

8、分流式处理器特征。UT2003已经模拟出比较真实的场景Shader概念的提出,意味着程序员可通过它们实现3D场景构建的难度大大降低。通过VS和PS的渲染,可以很容易的宁造出真实的水面动态波纹光影效果。此时DirectX的权威地位终于建成。Pixel Shader(顶点着色器)和Vertex Shader(像素着色器)硬件逻辑,真正支持像素和顶点的可编程。虽然当时可编程性很弱,硬件限制太多,顶点部分出现可编程性,像素部分可编程性有限。但这的确是硬件T&L之后PC图形技术的又一重大飞跃。3D娱乐的视觉体验也因此向接近真实迈进了一大步,波光粼粼的水面是那个时期用于演示Shader能力的典型DEMO,

9、相比之下DirectX 7绘制的水面效果就单调得多。Shader单元概念提出之后,无论NVIDIA还是ATI,都在做强显卡前端(Setup Engine及其相关部分,如光栅器Rasterizer、设定Setup和顶点装配器Vertex Assembler)的同时,逐渐将竞争重点放在显卡核心部分Pixel Shader(顶点着色器)和Vertex Shader(像素着色器),无论是Radeon 8500还是Geforce Ti 4200都内置的规格和频率更强的PS和VS单元。同时显卡的后端ROP(光栅化引擎,负责完成像素的输出)也逐渐强大,各种各样的多重采样AA模式和更高的抗锯齿模式逐步得以实现

10、。第3页:Shader Model 2.0 Shader编程性增强 Shader Model 2.0时代到来,Shader编程性逐步增强随后到来的DirectX 9.0时代,让Shader单元具备了更强的可编程性。2002年底微软发布的DirectX9.0中,PS单元的渲染精度已达到浮点精度,传统的硬件T&L单元也被取消。全新的Vertex Shader(顶点着色引擎)编程将比以前复杂得多,新的Vertex Shader标准增加了流程控制,更多的常量,每个程序的着色指令增加到了1024条。 PS 2.0具备完全可编程的架构,能对纹理效果即时演算、动态纹理贴图,还不占用显存,理论上对材质贴图的分

11、辨率的精度提高无限多;另外PS1.4只能支持28个硬件指令,同时操作6个材质,而PS2.0却可以支持160个硬件指令,同时操作16个材质数量,新的高精度浮点数据规格可以使用多重纹理贴图,可操作的指令数可以任意长,电影级别的显示效果轻而易举的实现。 Mark 2003第四项游戏测试Mother Nature基于Shader Model 2.0的3D Mark 2003第四项游戏测试Mother Nature,对Shader单元运算复杂度和材质大小提出非常严苛的要求,当时只有高端显卡才能流畅通过该测试。VS 2.0通过增加Vertex程序的灵活性,显著的提高了老版本(DirectX 8)的VS性能

12、,新的控制指令,可以用通用的程序代替以前专用的单独着色程序,效率提高许多倍;增加循环操作指令,减少工作时间,提高处理效率;扩展着色指令个数,从128个提升到256个。 最重要的一点改进是增加对浮点数据的处理功能,以前GPU只能对整数进行处理,改进后提高渲染精度,使最终处理的色彩格式达到电影级别。Shader Model 2.0时代突破了以前限制PC图形图象质量在数学上的精度障碍,它的每条渲染流水线都升级为128位浮点颜色,让游戏程序设计师们更容易更轻松的创造出更漂亮的效果,让程序员编程更容易。而从通用性方面理解,支持浮点运算让GPU已经具备了通用计算的基础,这一点是至关重要的。如果说Direc

13、tX 8中的Shader单元还是个简单尝试的话,DirectX 9中的Shader则成为了标准配置。除了版本升级到2.0外,DirectX 9中PS单元的渲染精度已达到浮点精度,传统的硬件T&L单元也被取消,在较低DirectX版本游戏运行时会使用VS单元模拟执行硬件T&L单元的功能。第4页:Shader快速发展 灵活度不断提升 Shader计算能力快速发展,灵活度不断提升在图形渲染中,GPU中的可编程计算单元被称为着色器(Shader),着色器的性能由DirectX中规定的Shader Model来区分。GPU中最主要的可编程单元式顶点着色器和像素着色器。为了实现更细腻逼真的画质,GPU的体

14、系架构从最早的固定单元流水线到可编程流水线,到DirectX 8初步具备可编程性,再到DirectX 10时代的以通用的可编程计算单元为主、图形固定单元为辅的形式,最新的DirectX 11更是明确提出通用计算API Direct Compute概念,鼓励开发人员和用户更好地将GPU作为并行处理器使用。图形流水线中可编程单元的行为由Shader单元定义,并可以由高级的Shading语言(例如NV的Cg,OpenGL的GLSL,Microsoft的HLSL)编写。Shader源码被译为字节码,然后在运行时由驱动程序将其转化为基于特定GPU的二进制程序,具备可移植性好等优势。传统的图形渲染流线中有

15、两种不同的可编程着色器,分别是顶点着色单元(Vertex Shader,VS)和像素着色单元(Pixel Shader,PS)。表一和表二比较详细地罗列出从Shader 2.0到Shader 4.0像素着色单元和顶点着色单元的演进过程。表一 Pixel Shader像素着色器单元的演进表二 Vertex Shader顶点着色器单元的演进表中:PS 2.0 = DirectX 9.0 original Shader Model 2 specification。PS 2.0a = NVIDIA Geforce FX-optimized model。PS 2.0b = ATI Radeon X700

16、 X800 X850 shader model,DirectX 9.0b。PS 3.0 = Shader Model 3。PS 4.0 = Shader Model 4。N = NO,Y = YES。“32+64”指32个纹理指令和64个算术指令。22c2 第5页:Shader Model着色器模型快速发展 Shader Model着色器模型快速发展传统的分离架构中,两种着色器的比例往往是固定的。在GPU核心设计完成时,各种着色器的数量便确定下来,比如著名的“黄金比例”顶点着色器与像素着色器的数量比例为1:3。但不同的游戏对顶点资源和像素资源的计算能力要求是不同的。如果场景中有大量的小三角形,

17、则顶点着色器必须满负荷工作,而像素着色器则会被闲置;如果场景中有少量的大三角形,又会发生相反的情况。因此,固定比例的设计无法完全发挥GPU中所有计算单元的性能。顶点着色单元(Vertex Shader,VS)和像素着色单元(Pixel Shader,PS)两种着色器的架构既有相同之处,又有一些不同。两者处理的都是四元组数据(顶点着色器处理用于表示坐标的w、x、y、z,但像素着色器处理用于表示颜色的a、r、g、b),顶点渲染需要比较高的计算精度;而像素渲染则可以使用较低的精度,从而可以增加在单位面积上的计算单元数量。在Shader Model 4.0之前,两种着色器的精度都在不断提高,但同期顶点

18、着色器的精度要高于像素着色器。Shader Model 4.0统一了两种着色器,所以顶点和像素着色器的规格要求完全相同,都支持32位浮点数。这是GPU发展的一个分水岭。过去只能处理顶点和只能处理像素的专门处理单元被统一之后,更加适应通用计算的需求,应用程序调用着色器运算能力的效率也更高。DirectX 11提出的Shader Model 5.0版本继续强化了通用计算的地位,微软提出的全新APIDirect Compute将把GPU通用计算推向新的巅峰。同时Shader Model 5.0是完全针对流处理器而设定的,所有类型的着色器,如:像素、顶点、几何、计算、Hull和Domaim(位于Tes

19、sellator前后)都将从新指令集中获益。在这一过程中,着色器的可编程性也随着架构的发展不断提高,下表给出的是每代模型的大概特点。Shader Model着色器模型演进历程第6页:GPGPU概念提出并付诸行动 GPGPU概念提出并付诸行动对GPU通用计算进行深入研究从2003年开始,并提出了GPGPU概念,前一个GP则表示通用目的(General Purpose),所以GPGPU一般也被称为通用图形处理器或通用GPU。随着GPU Shader单元计算能力的不断增长,一场GPU革命的时机也成熟了。GPU已经从由若干专用的固定功能单元(Fixed Function Unit)组成的专用并行处理器

20、,进化为了以通用计算资源为主,固定功能单元为辅的架构,这一架构的出现奠定了GPGPU的发展基础。Shader单元运算性能不断增长在SIGGRAPH 2003大会上,许多业界泰斗级人物发表了关于利用GPU进行各种运算的设想和实验模型。SIGGRAPH会议还特地安排了时间进行GPGPU的研讨交流。与此同时,DirectX 9 Shader Model 3.0时代,新的Shader Model在指令槽、流控制方面的显著增强使得对应GPU的可编程性能得到了大大的提升。GPGPU的研究由此进入快车道。在众多GPGPU项目研究中最接近成功的是英国剑桥大学的BionicFx课题组。剑桥大学的BionicFx

21、课题组便宣布在NVIDIA的Geforce FX 5900产品中实现了专业的实时音频处理功能,并且准备进行商业化的运作,对其产品进行销售,给音乐创作者带来实惠。GPU所能涉及的领域正在迅速增加2004年9月份,剑桥大学的BionicFx课题组宣布在NVIDIA的最新GPU产品中实现了专业的实时音频处理功能,并且准备进行商业化的运作,对其产品进行销售,给音乐创作者带来实惠。现在,该解决方案命名为“音视频互换技术”(Audio Video EXchange,AVEX)。BionicFx的工作流程是:待处理的音频数据转换成图形数据GPU处理处理后的图形数据转换成所需音频数据。这说明AVEX实际上是作

22、为虚拟硬件层在与GPU通讯,但GPU不仅是图形处理器,而是变成了一颗独立的数字信号处理器(DSP)。在计算机上进行专业音频处理或音乐创作时,专业人员的追求完美的精神和对各种音频插件的苛刻要求总是使得系统资源不够用,DSP不够强。然而高端设备的高昂价格往往令人望而却步。AVEX的出现无疑可能大大缓解这种窘境,因为它依托于浮点运算能力强大的GPU。这是目前所有资料中可查证的,并且是有详细记载地第一次大规模开发GPGPU通用程序并用于商业化运作。第7页:ATI黄金架构与Foldinghome接触 ATI黄金架构诞生,Foldinghome项目抛出橄榄枝DirectX 9.0c无可争议是我们经历过的所

23、有图形API中最长寿和多产的一款,更长的指令支持与动态流控制,使得基于DirectX 9.0c的游戏具备前一代游戏无法比拟的真实感和幻想般的画质,甚至也为很多影视作品和其他图形领域提供了可以实现梦想的平台,GPU走进更多玩家的视野,也正是因为GeForce 6、GeForce7系列以及Radeon X1000等一系列经典显卡,和极品飞车:变速和使命召唤4:现代战争等经典游戏的出现。而后期的大量DirectX 9.0c游戏已经对Shader单元运算能力提出难以达到的要求,GPU必须适应游戏画面渲染发展趋势才能生存。根据ATI的研究,在2001年刚刚出现具备像素着色器的显示卡时,当时游戏的像素着色

24、器程序中算术指令和纹理指令数量的比例在1:1左右,打这以后,算术指令的数量呈显著增加之势。算术指令与贴图指令数量对比在2005年像素着色器程序中,平均每5条算术指令才会出现一条贴图指令,而这样的算术指令数量急剧增长趋势仍将继续保持下去。我们对于一条像素流水线定义是“Pixel Shader(像素着色器)+TMU(纹理单元)+ROP(光栅化引擎,ATI将其称为Render Back End)。从功能上简单的说,Pixel Shader完成像素处理,TMU负责纹理渲染,而ROP则负责像素的最终输出,因此,一条完整的传统流水线意味着在一个时钟周期完成1个Pixel Shader运算,输出1个纹理和1

25、个像素。但是目前的情况是TMU纹理填充单元和ROP单元并没有成为GPU设计的瓶颈,反倒是更长更复杂的着色器程序指令让多个像素渲染管线感受到前所未有的压力。据此研究结果,ATI在代号R520的Radeon X1800核心上市之后果断推出了酝酿已久的增强型改进产品R580Radeon X1900。在R580面世之后人们才知道,这颗核心早在RADEON X1800发布的时候就完成流片、取样等一系列的后期研发,几乎是进入生产阶段了。它相对于R520最大的改进之处就在于提供了三倍于前者的像素着色器算术计算能力,实现这一目标的方式是采用了3个Pixel Shader对1个贴图单元的方式。最后的开销仅仅是在

26、晶体管数量只增加20%的情况下提供了相对R520 200%的Pixel Shader性能增长。Radeon X1900系列最终做到了3个Pixel Shader对1个贴图单元,将Pixel Shader单元数量从X1800的16个推升到48个。这一改动使得GPU运算能力空前强大,其高端产品RADEON X1900XTX的FP32精度像素运算能力达到374.4GFLOPS,如果再加上顶点着色器的话,RADEON X1900XTX的FP32计算能力总共会是426.4 GFLOPSR580因此得名“3:1黄金架构”。大幅提升的运算能力除了提高了对像素着色器运算需求饥渴的游戏之外,也引起了另一方的注意

27、,那就是斯坦福大学。Foldinghome项目蛋白质实时折叠示意图2006年由斯坦福大学化学系的潘德小组(Pande Group)主持的全球最大的分布式计算项目Foldinghome,逐步将眼光转向GPGPU领域。该项目可精确地模拟蛋白质折叠和错误折叠的过程,以便能更好地了解多种疾病的起因和发展,任何一台个人电脑都可以下载客户端参与。ATI在2006年8月惊人地宣布即将联手斯坦福大学在其FoldingHome项目中提供对ATI Radeon X1900的支持。在显卡加入FoldingHome项目后,科研进展速度被成倍提升,人们第一次感受到了GPU的运算威力。2006年10月2日,Folding

28、home项目公开发行供Windows系统使用的GPU测试版本,测试期间收到由450颗ATI X1900 GPU提供的31 TFLOPS运算性能,每颗显核平均运算运力为一颗传统CPU的70多倍。此后GPU客户端成为Foldinghome项目中最耀眼的明星,GPU使用和CPU近乎相同的功耗,却提供了平均10倍于CPU的运算能力。GPU的Shader单元在经过了长期的演化之后,终于在GPGPU领域释放了其强大动力。该项目同时引来了全世界大量GPU高端玩家的参与,这是第一个可以让民用级别显卡开展大规模通用计算的尝试,也是目前最火爆的分布式计算项目。该项目在中国发展缓慢,主要是因为真正能理解GPU的玩家

29、数量还是很少,甚至高端发烧友都对它一知半解。而事实上比较运算量可以得出,一款普通的9600GSO显卡的运算能力,已经远远超越一颗高端的4核心CPU。中国分布式计算总站作为一个公益性团体,一直在致力于各个分布式计算项目的推广,特别是属于生命科学类别的Foldinghome项目。该项目中国团队代码为3213,有兴趣或者想提升技术的玩家,可以尝试参与该项目,为自己的GPU通用计算能力找到一个“发泄”的空间。1feb 第8页:统一着色器架构释放GPU运算能力 统一着色器架构再次释放GPU运算能力Shader Model 在诞生之初就为我们提供了Pixel Shader(顶点着色器)和Vertex Sh

30、ader(像素着色器)两种具体的硬件逻辑,它们是互相分置彼此不干涉的。但是在长期的发展过程中,NVIDIA和ATI的工程师都认为,要达到最佳的性能和电力使用效率,还是必须使用统一着色器架构,否则在很多情况下Pixel Shader计算压力很轻造成大量Pixel Shader单元闲置,Vertex Shader资源有限但遇到大量三角形时会忙不过来。也就是说不再区分Pixel Shader和Vertex Shader,最终设计出来的产品可以在任何API编程模型中都不存在任何顶点/像素着色器固定比率或者数量限制。Vertex Shader和Pixel Shader的负载对比每一帧渲染中Vertex

31、Shader和Pixel Shader负载压力几乎没有相关性,总是在出现资源闲置和资源紧缺,所以有必要使用统一着色器架构。在统一着色器架构的GPU中,Vertex Shader和Pixel Shader概念都将废除同时代之以ALU。ALU是个完整的图形处理体系,它既能够执行对顶点操作的指令(代替VS),又能够执行对象素操作的指令(代替PS)。GPU内部的ALU单元甚至能够根据需要随意切换调用,从而极大的提升游戏的表现。微软XBOX 360所采用的Xenos图形处理器,第一次引入了统一着色器架构,这个着色器架构包含了3个独立的着色器矩阵,每个着色器矩阵内有16个5D向量SIMD单元,这些SIMD单元既可以执行Vertex Shader也可以执行Pixel Shader,可以称之为符合DirectX9标准的统一着色器架构。随后NVIDIA推出的GeForce 8800 GTX使用了128个标量流处理器(Stream Processor)。在通用计算方面,GeForce 8800 GTX的统一架构比Xbox 360的C1更先进、更强大,这表现在标量设计、整个US和Shader簇内的MIMD化执行。AMD历代着色器演进在GeForce

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1