显卡只能玩游戏 10GPU通用计算回顾.doc
《显卡只能玩游戏 10GPU通用计算回顾.doc》由会员分享,可在线阅读,更多相关《显卡只能玩游戏 10GPU通用计算回顾.doc(28页珍藏版)》请在三一办公上搜索。
1、显卡只能玩游戏? 10年GPU通用计算回顾 硬件T&L单元催生GPU诞生前言:从世界上第一款GPU横空出世到今天,显卡已经走过了10年历史。GPU在这10年演变过程中,我们看到GPU从最初帮助CPU分担几何吞吐量,到Shader单元初具规模,然后出现Shader单元可编程性,到今天GPU通用计算领域蓬勃发展这一清晰轨迹。这10年包含了无数设计者艰辛努力的成果,GPU也用自己的发展速度创造了半导体行业的奇迹,而GPU当今成就的见证者,正是我们的无数硬件玩家和游戏爱好者。我们可以肯定以GPU诞生初期的设计定位和市场需求,没有人敢相信今天GPU能走上通用计算这条道路,正所谓无心插柳柳成荫。 硬件T&
2、L单元催生GPU诞生Geforce 256代号NV10于1999年8月发布。这是图形芯片领域开天辟地的产品,也是第一款提出GPU概念的产品。GPU英文全称Graphic Processing Unit,中文翻译为“图形处理器”。Geforce 256所采用的核心技术有硬体T&L、立方环境材质贴图和顶点混合、纹理压缩和凹凸映射贴图、双重纹理四像素256位渲染引擎等,而硬体T&L技术可以说是GPU的标志。Geforce 256诞生1999年,已经凭借RivaTNT2在图形芯片界立足的NVIDIA,主动放弃帮自己打下江山的Riva品牌,新启用的Geforce强调力量并沿用至今,并衍生出驱动品牌For
3、ceware及芯片组品牌nForce。Geforce256之所以被称作GPU原因就在于Geforce256划时代的在图形芯片内部集成了T&L(几何光照转换)功能,使得GPU拥有初步的几何处理能力,彻底解决了当时众多游戏瓶颈发生在CPU几何吞吐量不够的瓶颈。Geforce 256显卡的出色表现,NVIDIA强大的技术实力得到全面释放,这块显卡是真正的全面领先型产品,而不是靠16bit色和32bit色的区域优势或者是单纯依赖特定的3D API支持。T&L几何光照转换原先由CPU负责,或者由另一个独立处理机来负责处理(例如一些旧式工作站显视卡)。较强劲的3dfx Voodoo2 和 Renditio
4、n Verite显示核心已整合了几何(三角形)建构,但硬件T&L仍是一大进步,原因是拥有该技术的显示核心从CPU接管了大量工作。硬件T&L单元让Geforce 256几乎成为一个全新的GPU标准,也让GPU更加独立自主。DirectX 7.0推出获得众多支持不可否认在成功的背后,离不开微软推出的图形APIDirectX 7.0的鼎力支持。DirectX 7.0最大的特色就是支持T&L,在T&L问世之前,位置转换和灯光都需要CPU来计算,CPU速度越快,游戏表现越流畅。使用了T&L功能后,这两种效果的计算用显示卡的GPU来计算,这样就可以把CPU从繁忙的劳动中解脱出来。同时从另一个角度提升了GP
5、U在PC系统中的地位。值得一提的是GeForce2首开了GPU通用计算的先河,凭借其强大的多纹理处理性能,结合纹理环境参数和纹理函数可以实现一些很灵活的应用。它具有Texture Shader以及Register Combiner单元,有一定的数值计算能力。开发人员可以利用Texture Shader的依赖纹理进行数据访问,用Register Combiner进行计算。GeForce2被用于求解数学上的扩散方程,成为GPU通用计算的最早应用。 Shader单元概念形成,GPU开始走上“邪路”面向图形计算,让GPU逐渐找到了自己的方向,这个方向就是给予用户更真更快地视觉体验,但是GPU架构也遇到
6、一些问题亟待解决。首要问题就是,要实现更加复杂多变的图形效果,不能仅仅依赖三角形生成和固定光影转换。虽然当时游戏画面的提高基本上都是通过大量的多边形、更复杂的贴图来实现的。但是后期发展中,顶点和像素运算的需求量猛增。每个顶点都包含许多信息,比顶点上的纹理信息,散光和映射光源下表现的颜色,所以在生成多边形的时候带上这些附加运算,就可以带来更多的效果,但这也更加考验顶点和像素计算能力。研究人员发现,同硬件T&L仅仅实现的固定光影转换相比,VS和PS单元的灵活性更大。可编程模型与旧有的预定义模型是不同的。这种模型中,数据是透过virtual machine以一个类似于带有特殊汇编指令集的pre-ar
7、ranged(事先安排好)程序进行处理的,程序员可以直接对其进行编程。凭借可编程几何管线和可编程像素管线,使用者可以自由的控制几何和像素的代码设计。这对于图形开发者是空前的,他们可以通过基本的着色器,利用开发工具,产生全新的、极具创造力的效果。也正是可编程管线的引入,为GPU发展翻开了新的篇章,GPU开始向SIMD处理器方向发展,凭借强大的并行处理性能,使得GPU开始用有了部分流式处理器特征。UT2003已经模拟出比较真实的场景Shader概念的提出,意味着程序员可通过它们实现3D场景构建的难度大大降低。通过VS和PS的渲染,可以很容易的宁造出真实的水面动态波纹光影效果。此时DirectX的权
8、威地位终于建成。Pixel Shader(顶点着色器)和Vertex Shader(像素着色器)硬件逻辑,真正支持像素和顶点的可编程。虽然当时可编程性很弱,硬件限制太多,顶点部分出现可编程性,像素部分可编程性有限。但这的确是硬件T&L之后PC图形技术的又一重大飞跃。3D娱乐的视觉体验也因此向接近真实迈进了一大步,波光粼粼的水面是那个时期用于演示Shader能力的典型DEMO,相比之下DirectX 7绘制的水面效果就单调得多。Shader单元概念提出之后,无论NVIDIA还是ATI,都在做强显卡前端(Setup Engine及其相关部分,如光栅器Rasterizer、设定Setup和顶点装配器
9、Vertex Assembler)的同时,逐渐将竞争重点放在显卡核心部分Pixel Shader(顶点着色器)和Vertex Shader(像素着色器),无论是Radeon 8500还是Geforce Ti 4200都内置的规格和频率更强的PS和VS单元。同时显卡的后端ROP(光栅化引擎,负责完成像素的输出)也逐渐强大,各种各样的多重采样AA模式和更高的抗锯齿模式逐步得以实现。 Shader Model 2.0时代到来,Shader编程性逐步增强随后到来的DirectX 9.0时代,让Shader单元具备了更强的可编程性。2002年底微软发布的DirectX9.0中,PS单元的渲染精度已达到浮
10、点精度,传统的硬件T&L单元也被取消。全新的Vertex Shader(顶点着色引擎)编程将比以前复杂得多,新的Vertex Shader标准增加了流程控制,更多的常量,每个程序的着色指令增加到了1024条。 PS 2.0具备完全可编程的架构,能对纹理效果即时演算、动态纹理贴图,还不占用显存,理论上对材质贴图的分辨率的精度提高无限多;另外PS1.4只能支持28个硬件指令,同时操作6个材质,而PS2.0却可以支持160个硬件指令,同时操作16个材质数量,新的高精度浮点数据规格可以使用多重纹理贴图,可操作的指令数可以任意长,电影级别的显示效果轻而易举的实现。 Mark 2003第四项游戏测试Mot
11、her Nature基于Shader Model 2.0的3D Mark 2003第四项游戏测试Mother Nature,对Shader单元运算复杂度和材质大小提出非常严苛的要求,当时只有高端显卡才能流畅通过该测试。VS 2.0通过增加Vertex程序的灵活性,显著的提高了老版本(DirectX 8)的VS性能,新的控制指令,可以用通用的程序代替以前专用的单独着色程序,效率提高许多倍;增加循环操作指令,减少工作时间,提高处理效率;扩展着色指令个数,从128个提升到256个。 最重要的一点改进是增加对浮点数据的处理功能,以前GPU只能对整数进行处理,改进后提高渲染精度,使最终处理的色彩格式达到
12、电影级别。Shader Model 2.0时代突破了以前限制PC图形图象质量在数学上的精度障碍,它的每条渲染流水线都升级为128位浮点颜色,让游戏程序设计师们更容易更轻松的创造出更漂亮的效果,让程序员编程更容易。而从通用性方面理解,支持浮点运算让GPU已经具备了通用计算的基础,这一点是至关重要的。如果说DirectX 8中的Shader单元还是个简单尝试的话,DirectX 9中的Shader则成为了标准配置。除了版本升级到2.0外,DirectX 9中PS单元的渲染精度已达到浮点精度,传统的硬件T&L单元也被取消,在较低DirectX版本游戏运行时会使用VS单元模拟执行硬件T&L单元的功能。
13、 Shader计算能力快速发展,灵活度不断提升在图形渲染中,GPU中的可编程计算单元被称为着色器(Shader),着色器的性能由DirectX中规定的Shader Model来区分。GPU中最主要的可编程单元式顶点着色器和像素着色器。为了实现更细腻逼真的画质,GPU的体系架构从最早的固定单元流水线到可编程流水线,到DirectX 8初步具备可编程性,再到DirectX 10时代的以通用的可编程计算单元为主、图形固定单元为辅的形式,最新的DirectX 11更是明确提出通用计算API Direct Compute概念,鼓励开发人员和用户更好地将GPU作为并行处理器使用。图形流水线中可编程单元的行
14、为由Shader单元定义,并可以由高级的Shading语言(例如NV的Cg,OpenGL的GLSL,Microsoft的HLSL)编写。Shader源码被译为字节码,然后在运行时由驱动程序将其转化为基于特定GPU的二进制程序,具备可移植性好等优势。传统的图形渲染流线中有两种不同的可编程着色器,分别是顶点着色单元(Vertex Shader,VS)和像素着色单元(Pixel Shader,PS)。表一和表二比较详细地罗列出从Shader 2.0到Shader 4.0像素着色单元和顶点着色单元的演进过程。表一 Pixel Shader像素着色器单元的演进表二 Vertex Shader顶点着色器单
15、元的演进表中: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 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个算术指令。 Shader Model着色器模型快速发展传统的分离架构中,两种着色器的比例往往
16、是固定的。在GPU核心设计完成时,各种着色器的数量便确定下来,比如著名的“黄金比例”顶点着色器与像素着色器的数量比例为1:3。但不同的游戏对顶点资源和像素资源的计算能力要求是不同的。如果场景中有大量的小三角形,则顶点着色器必须满负荷工作,而像素着色器则会被闲置;如果场景中有少量的大三角形,又会发生相反的情况。因此,固定比例的设计无法完全发挥GPU中所有计算单元的性能。顶点着色单元(Vertex Shader,VS)和像素着色单元(Pixel Shader,PS)两种着色器的架构既有相同之处,又有一些不同。两者处理的都是四元组数据(顶点着色器处理用于表示坐标的w、x、y、z,但像素着色器处理用于
17、表示颜色的a、r、g、b),顶点渲染需要比较高的计算精度;而像素渲染则可以使用较低的精度,从而可以增加在单位面积上的计算单元数量。在Shader Model 4.0之前,两种着色器的精度都在不断提高,但同期顶点着色器的精度要高于像素着色器。Shader Model 4.0统一了两种着色器,所以顶点和像素着色器的规格要求完全相同,都支持32位浮点数。这是GPU发展的一个分水岭。过去只能处理顶点和只能处理像素的专门处理单元被统一之后,更加适应通用计算的需求,应用程序调用着色器运算能力的效率也更高。DirectX 11提出的Shader Model 5.0版本继续强化了通用计算的地位,微软提出的全新
18、APIDirect Compute将把GPU通用计算推向新的巅峰。同时Shader Model 5.0是完全针对流处理器而设定的,所有类型的着色器,如:像素、顶点、几何、计算、Hull和Domaim(位于Tessellator前后)都将从新指令集中获益。在这一过程中,着色器的可编程性也随着架构的发展不断提高,下表给出的是每代模型的大概特点。Shader Model着色器模型演进历程 GPGPU概念提出并付诸行动对GPU通用计算进行深入研究从2003年开始,并提出了GPGPU概念,前一个GP则表示通用目的(General Purpose),所以GPGPU一般也被称为通用图形处理器或通用GPU。随
19、着GPU Shader单元计算能力的不断增长,一场GPU革命的时机也成熟了。GPU已经从由若干专用的固定功能单元(Fixed Function Unit)组成的专用并行处理器,进化为了以通用计算资源为主,固定功能单元为辅的架构,这一架构的出现奠定了GPGPU的发展基础。Shader单元运算性能不断增长在SIGGRAPH 2003大会上,许多业界泰斗级人物发表了关于利用GPU进行各种运算的设想和实验模型。SIGGRAPH会议还特地安排了时间进行GPGPU的研讨交流。与此同时,DirectX 9 Shader Model 3.0时代,新的Shader Model在指令槽、流控制方面的显著增强使得对
20、应GPU的可编程性能得到了大大的提升。GPGPU的研究由此进入快车道。在众多GPGPU项目研究中最接近成功的是英国剑桥大学的BionicFx课题组。剑桥大学的BionicFx课题组便宣布在NVIDIA的Geforce FX 5900产品中实现了专业的实时音频处理功能,并且准备进行商业化的运作,对其产品进行销售,给音乐创作者带来实惠。GPU所能涉及的领域正在迅速增加2004年9月份,剑桥大学的BionicFx课题组宣布在NVIDIA的最新GPU产品中实现了专业的实时音频处理功能,并且准备进行商业化的运作,对其产品进行销售,给音乐创作者带来实惠。现在,该解决方案命名为“音视频互换技术”(Audio
21、 Video EXchange,AVEX)。BionicFx的工作流程是:待处理的音频数据转换成图形数据GPU处理处理后的图形数据转换成所需音频数据。这说明AVEX实际上是作为虚拟硬件层在与GPU通讯,但GPU不仅是图形处理器,而是变成了一颗独立的数字信号处理器(DSP)。在计算机上进行专业音频处理或音乐创作时,专业人员的追求完美的精神和对各种音频插件的苛刻要求总是使得系统资源不够用,DSP不够强。然而高端设备的高昂价格往往令人望而却步。AVEX的出现无疑可能大大缓解这种窘境,因为它依托于浮点运算能力强大的GPU。这是目前所有资料中可查证的,并且是有详细记载地第一次大规模开发GPGPU通用程序
22、并用于商业化运作。 ATI黄金架构诞生,Foldinghome项目抛出橄榄枝DirectX 9.0c无可争议是我们经历过的所有图形API中最长寿和多产的一款,更长的指令支持与动态流控制,使得基于DirectX 9.0c的游戏具备前一代游戏无法比拟的真实感和幻想般的画质,甚至也为很多影视作品和其他图形领域提供了可以实现梦想的平台,GPU走进更多玩家的视野,也正是因为GeForce 6、GeForce7系列以及Radeon X1000等一系列经典显卡,和极品飞车:变速和使命召唤4:现代战争等经典游戏的出现。而后期的大量DirectX 9.0c游戏已经对Shader单元运算能力提出难以达到的要求,G
23、PU必须适应游戏画面渲染发展趋势才能生存。根据ATI的研究,在2001年刚刚出现具备像素着色器的显示卡时,当时游戏的像素着色器程序中算术指令和纹理指令数量的比例在1:1左右,打这以后,算术指令的数量呈显著增加之势。算术指令与贴图指令数量对比在2005年像素着色器程序中,平均每5条算术指令才会出现一条贴图指令,而这样的算术指令数量急剧增长趋势仍将继续保持下去。我们对于一条像素流水线定义是“Pixel Shader(像素着色器)+TMU(纹理单元)+ROP(光栅化引擎,ATI将其称为Render Back End)。从功能上简单的说,Pixel Shader完成像素处理,TMU负责纹理渲染,而RO
24、P则负责像素的最终输出,因此,一条完整的传统流水线意味着在一个时钟周期完成1个Pixel Shader运算,输出1个纹理和1个像素。但是目前的情况是TMU纹理填充单元和ROP单元并没有成为GPU设计的瓶颈,反倒是更长更复杂的着色器程序指令让多个像素渲染管线感受到前所未有的压力。据此研究结果,ATI在代号R520的Radeon X1800核心上市之后果断推出了酝酿已久的增强型改进产品R580Radeon X1900。在R580面世之后人们才知道,这颗核心早在RADEON X1800发布的时候就完成流片、取样等一系列的后期研发,几乎是进入生产阶段了。它相对于R520最大的改进之处就在于提供了三倍于
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 显卡只能玩游戏 10GPU通用计算回顾 显卡 只能 游戏 10 GPU 通用 计算 回顾
链接地址:https://www.31ppt.com/p-2393320.html