10年GPU通用计算回顾.docx

上传人:b****5 文档编号:7682511 上传时间:2023-01-25 格式:DOCX 页数:21 大小:1.53MB
下载 相关 举报
10年GPU通用计算回顾.docx_第1页
第1页 / 共21页
10年GPU通用计算回顾.docx_第2页
第2页 / 共21页
10年GPU通用计算回顾.docx_第3页
第3页 / 共21页
10年GPU通用计算回顾.docx_第4页
第4页 / 共21页
10年GPU通用计算回顾.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

10年GPU通用计算回顾.docx

《10年GPU通用计算回顾.docx》由会员分享,可在线阅读,更多相关《10年GPU通用计算回顾.docx(21页珍藏版)》请在冰豆网上搜索。

10年GPU通用计算回顾.docx

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当今成就的见证者,正是我们的无数硬件玩家和游戏爱好者。

我们可以肯定以GPU诞生初期的设计定位和市场需求,没有人敢相信今天GPU能走上通用计算这条道路,正所谓无心插柳柳成荫。

●硬件T&L单元催生GPU诞生

  Geforce256——代号NV10于1999年8月发布。

这是图形芯片领域开天辟地的产品,也是第一款提出GPU概念的产品。

GPU英文全称GraphicProcessingUnit,中文翻译为“图形处理器”。

Geforce256所采用的核心技术有硬体T&L、立方环境材质贴图和顶点混合、纹理压缩和凹凸映射贴图、双重纹理四像素256位渲染引擎等,而硬体T&L技术可以说是GPU的标志。

Geforce256诞生

  1999年,已经凭借RivaTNT2在图形芯片界立足的NVIDIA,主动放弃帮自己打下江山的Riva品牌,新启用的Geforce强调力量并沿用至今,并衍生出驱动品牌Forceware及芯片组品牌nForce。

  Geforce256之所以被称作GPU原因就在于Geforce256划时代的在图形芯片内部集成了T&L(几何光照转换)功能,使得GPU拥有初步的几何处理能力,彻底解决了当时众多游戏瓶颈发生在CPU几何吞吐量不够的瓶颈。

  Geforce256显卡的出色表现,NVIDIA强大的技术实力得到全面释放,这块显卡是真正的全面领先型产品,而不是靠16bit色和32bit色的区域优势或者是单纯依赖特定的3DAPI支持。

  T&L几何光照转换原先由CPU负责,或者由另一个独立处理机来负责处理(例如一些旧式工作站显视卡)。

较强劲的3dfxVoodoo2和RenditionVerite显示核心已整合了几何(三角形)建构,但硬件T&L仍是一大进步,原因是拥有该技术的显示核心从CPU接管了大量工作。

硬件T&L单元让Geforce256几乎成为一个全新的GPU标准,也让GPU更加独立自主。

DirectX7.0推出获得众多支持

  不可否认在成功的背后,离不开微软推出的图形API——DirectX7.0的鼎力支持。

DirectX7.0最大的特色就是支持T&L,在T&L问世之前,位置转换和灯光都需要CPU来计算,CPU速度越快,游戏表现越流畅。

使用了T&L功能后,这两种效果的计算用显示卡的GPU来计算,这样就可以把CPU从繁忙的劳动中解脱出来。

同时从另一个角度提升了GPU在PC系统中的地位。

  值得一提的是GeForce2首开了GPU通用计算的先河,凭借其强大的多纹理处理性能,结合纹理环境参数和纹理函数可以实现一些很灵活的应用。

它具有TextureShader以及RegisterCombiner单元,有一定的数值计算能力。

开发人员可以利用TextureShader的依赖纹理进行数据访问,用RegisterCombiner进行计算。

GeForce2被用于求解数学上的扩散方程,成为GPU通用计算的最早应用。

1f96

第2页:

Shader概念形成GPU走上“邪路”

●Shader单元概念形成,GPU开始走上“邪路”

  面向图形计算,让GPU逐渐找到了自己的方向,这个方向就是给予用户更真更快地视觉体验,但是GPU架构也遇到一些问题亟待解决。

首要问题就是,要实现更加复杂多变的图形效果,不能仅仅依赖三角形生成和固定光影转换。

  虽然当时游戏画面的提高基本上都是通过大量的多边形、更复杂的贴图来实现的。

但是后期发展中,顶点和像素运算的需求量猛增。

每个顶点都包含许多信息,比顶点上的纹理信息,散光和映射光源下表现的颜色,所以在生成多边形的时候带上这些附加运算,就可以带来更多的效果,但这也更加考验顶点和像素计算能力。

研究人员发现,同硬件T&L仅仅实现的固定光影转换相比,VS和PS单元的灵活性更大。

  可编程模型与旧有的预定义模型是不同的。

这种模型中,数据是透过virtualmachine以一个类似于带有特殊汇编指令集的pre-arranged(事先安排好)程序进行处理的,程序员可以直接对其进行编程。

  凭借可编程几何管线和可编程像素管线,使用者可以自由的控制几何和像素的代码设计。

这对于图形开发者是空前的,他们可以通过基本的着色器,利用开发工具,产生全新的、极具创造力的效果。

也正是可编程管线的引入,为GPU发展翻开了新的篇章,GPU开始向SIMD处理器方向发展,凭借强大的并行处理性能,使得GPU开始用有了部分流式处理器特征。

UT2003已经模拟出比较真实的场景

  Shader概念的提出,意味着程序员可通过它们实现3D场景构建的难度大大降低。

通过VS和PS的渲染,可以很容易的宁造出真实的水面动态波纹光影效果。

此时DirectX的权威地位终于建成。

  PixelShader(顶点着色器)和VertexShader(像素着色器)硬件逻辑,真正支持像素和顶点的可编程。

虽然当时可编程性很弱,硬件限制太多,顶点部分出现可编程性,像素部分可编程性有限。

但这的确是硬件T&L之后PC图形技术的又一重大飞跃。

3D娱乐的视觉体验也因此向接近真实迈进了一大步,波光粼粼的水面是那个时期用于演示Shader能力的典型DEMO,相比之下DirectX7绘制的水面效果就单调得多。

  Shader单元概念提出之后,无论NVIDIA还是ATI,都在做强显卡前端(SetupEngine及其相关部分,如光栅器Rasterizer、设定Setup和顶点装配器VertexAssembler)的同时,逐渐将竞争重点放在显卡核心部分——PixelShader(顶点着色器)和VertexShader(像素着色器),无论是Radeon8500还是GeforceTi4200都内置的规格和频率更强的PS和VS单元。

同时显卡的后端ROP(光栅化引擎,负责完成像素的输出)也逐渐强大,各种各样的多重采样AA模式和更高的抗锯齿模式逐步得以实现。

第3页:

ShaderModel2.0Shader编程性增强

●ShaderModel2.0时代到来,Shader编程性逐步增强

  随后到来的DirectX9.0时代,让Shader单元具备了更强的可编程性。

2002年底微软发布的DirectX9.0中,PS单元的渲染精度已达到浮点精度,传统的硬件T&L单元也被取消。

全新的VertexShader(顶点着色引擎)编程将比以前复杂得多,新的VertexShader标准增加了流程控制,更多的常量,每个程序的着色指令增加到了1024条。

  PS2.0具备完全可编程的架构,能对纹理效果即时演算、动态纹理贴图,还不占用显存,理论上对材质贴图的分辨率的精度提高无限多;另外PS1.4只能支持28个硬件指令,同时操作6个材质,而PS2.0却可以支持160个硬件指令,同时操作16个材质数量,新的高精度浮点数据规格可以使用多重纹理贴图,可操作的指令数可以任意长,电影级别的显示效果轻而易举的实现。

Mark2003第四项游戏测试MotherNature

  基于ShaderModel2.0的3DMark2003第四项游戏测试MotherNature,对Shader单元运算复杂度和材质大小提出非常严苛的要求,当时只有高端显卡才能流畅通过该测试。

  VS2.0通过增加Vertex程序的灵活性,显著的提高了老版本(DirectX8)的VS性能,新的控制指令,可以用通用的程序代替以前专用的单独着色程序,效率提高许多倍;增加循环操作指令,减少工作时间,提高处理效率;扩展着色指令个数,从128个提升到256个。

  最重要的一点改进是增加对浮点数据的处理功能,以前GPU只能对整数进行处理,改进后提高渲染精度,使最终处理的色彩格式达到电影级别。

ShaderModel2.0时代突破了以前限制PC图形图象质量在数学上的精度障碍,它的每条渲染流水线都升级为128位浮点颜色,让游戏程序设计师们更容易更轻松的创造出更漂亮的效果,让程序员编程更容易。

而从通用性方面理解,支持浮点运算让GPU已经具备了通用计算的基础,这一点是至关重要的。

  如果说DirectX8中的Shader单元还是个简单尝试的话,DirectX9中的Shader则成为了标准配置。

除了版本升级到2.0外,DirectX9中PS单元的渲染精度已达到浮点精度,传统的硬件T&L单元也被取消,在较低DirectX版本游戏运行时会使用VS单元模拟执行硬件T&L单元的功能。

第4页:

Shader快速发展灵活度不断提升

●Shader计算能力快速发展,灵活度不断提升

  在图形渲染中,GPU中的可编程计算单元被称为着色器(Shader),着色器的性能由DirectX中规定的ShaderModel来区分。

GPU中最主要的可编程单元式顶点着色器和像素着色器。

  为了实现更细腻逼真的画质,GPU的体系架构从最早的固定单元流水线到可编程流水线,到DirectX8初步具备可编程性,再到DirectX10时代的以通用的可编程计算单元为主、图形固定单元为辅的形式,最新的DirectX11更是明确提出通用计算APIDirectCompute概念,鼓励开发人员和用户更好地将GPU作为并行处理器使用。

  图形流水线中可编程单元的行为由Shader单元定义,并可以由高级的Shading语言(例如NV的Cg,OpenGL的GLSL,Microsoft的HLSL)编写。

Shader源码被译为字节码,然后在运行时由驱动程序将其转化为基于特定GPU的二进制程序,具备可移植性好等优势。

传统的图形渲染流线中有两种不同的可编程着色器,分别是顶点着色单元(VertexShader,VS)和像素着色单元(PixelShader,PS)。

表一和表二比较详细地罗列出从Shader2.0到Shader4.0像素着色单元和顶点着色单元的演进过程。

表一PixelShader像素着色器单元的演进

表二VertexShader顶点着色器单元的演进

表中:

PS2.0=DirectX9.0originalShaderModel2specification。

PS2.0a=NVIDIAGeforceFX-optimizedmodel。

PS2.0b=ATIRadeonX700X800X850shadermodel,DirectX9.0b。

PS3.0=ShaderModel3。

PS4.0=ShaderModel4。

N=NO,Y=YES。

“32+64”指32个纹理指令和64个算术指令。

22c2

第5页:

ShaderModel着色器模型快速发展

●ShaderModel着色器模型快速发展

  传统的分离架构中,两种着色器的比例往往是固定的。

在GPU核心设计完成时,各种着色器的数量便确定下来,比如著名的“黄金比例”——顶点着色器与像素着色器的数量比例为1:

3。

但不同的游戏对顶点资源和像素资源的计算能力要求是不同的。

如果场景中有大量的小三角形,则顶点着色器必须满负荷工作,而像素着色器则会被闲置;如果场景中有少量的大三角形,又会发生相反的情况。

因此,固定比例的设计无法完全发挥GPU中所有计算单元的性能。

  顶点着色单元(VertexShader,VS)和像素着色单元(PixelShader,PS)两种着色器的架构既有相同之处,又有一些不同。

两者处理的都是四元组数据(顶点着色器处理用于表示坐标的w、x、y、z,但像素着色器处理用于表示颜色的a、r、g、b),顶点渲染需要比较高的计算精度;而像素渲染则可以使用较低的精度,从而可以增加在单位面积上的计算单元数量。

在ShaderModel4.0之前,两种着色器的精度都在不断提高,但同期顶点着色器的精度要高于像素着色器。

  ShaderModel4.0统一了两种着色器,所以顶点和像素着色器的规格要求完全相同,都支持32位浮点数。

这是GPU发展的一个分水岭。

过去只能处理顶点和只能处理像素的专门处理单元被统一之后,更加适应通用计算的需求,应用程序调用着色器运算能力的效率也更高。

  DirectX11提出的ShaderModel5.0版本继续强化了通用计算的地位,微软提出的全新API——DirectCompute将把GPU通用计算推向新的巅峰。

同时ShaderModel5.0是完全针对流处理器而设定的,所有类型的着色器,如:

像素、顶点、几何、计算、Hull和Domaim(位于Tessellator前后)都将从新指令集中获益。

  在这一过程中,着色器的可编程性也随着架构的发展不断提高,下表给出的是每代模型的大概特点。

ShaderModel着色器模型演进历程

第6页:

GPGPU概念提出并付诸行动

●GPGPU概念提出并付诸行动

  对GPU通用计算进行深入研究从2003年开始,并提出了GPGPU概念,前一个GP则表示通用目的(GeneralPurpose),所以GPGPU一般也被称为通用图形处理器或通用GPU。

随着GPUShader单元计算能力的不断增长,一场GPU革命的时机也成熟了。

GPU已经从由若干专用的固定功能单元(FixedFunctionUnit)组成的专用并行处理器,进化为了以通用计算资源为主,固定功能单元为辅的架构,这一架构的出现奠定了GPGPU的发展基础。

Shader单元运算性能不断增长

  在SIGGRAPH2003大会上,许多业界泰斗级人物发表了关于利用GPU进行各种运算的设想和实验模型。

SIGGRAPH会议还特地安排了时间进行GPGPU的研讨交流。

与此同时,DirectX9ShaderModel3.0时代,新的ShaderModel在指令槽、流控制方面的显著增强使得对应GPU的可编程性能得到了大大的提升。

GPGPU的研究由此进入快车道。

  在众多GPGPU项目研究中最接近成功的是英国剑桥大学的BionicFx课题组。

剑桥大学的BionicFx课题组便宣布在NVIDIA的GeforceFX5900产品中实现了专业的实时音频处理功能,并且准备进行商业化的运作,对其产品进行销售,给音乐创作者带来实惠。

GPU所能涉及的领域正在迅速增加

  2004年9月份,剑桥大学的BionicFx课题组宣布在NVIDIA的最新GPU产品中实现了专业的实时音频处理功能,并且准备进行商业化的运作,对其产品进行销售,给音乐创作者带来实惠。

现在,该解决方案命名为“音视频互换技术”(AudioVideoEXchange,AVEX)。

BionicFx的工作流程是:

待处理的音频数据—〉转换成图形数据—〉GPU处理—〉处理后的图形数据—〉转换成所需音频数据。

这说明AVEX实际上是作为虚拟硬件层在与GPU通讯,但GPU不仅是图形处理器,而是变成了一颗独立的数字信号处理器(DSP)。

  在计算机上进行专业音频处理或音乐创作时,专业人员的追求完美的精神和对各种音频插件的苛刻要求总是使得系统资源不够用,DSP不够强。

然而高端设备的高昂价格往往令人望而却步。

AVEX的出现无疑可能大大缓解这种窘境,因为它依托于浮点运算能力强大的GPU。

这是目前所有资料中可查证的,并且是有详细记载地第一次大规模开发GPGPU通用程序并用于商业化运作。

第7页:

ATI黄金架构与Folding@home接触

●ATI黄金架构诞生,Folding@home项目抛出橄榄枝

  DirectX9.0c无可争议是我们经历过的所有图形API中最长寿和多产的一款,更长的指令支持与动态流控制,使得基于DirectX9.0c的游戏具备前一代游戏无法比拟的真实感和幻想般的画质,甚至也为很多影视作品和其他图形领域提供了可以实现梦想的平台,GPU走进更多玩家的视野,也正是因为GeForce6、GeForce7系列以及RadeonX1000等一系列经典显卡,和《极品飞车:

变速》和《使命召唤4:

现代战争》等经典游戏的出现。

  而后期的大量DirectX9.0c游戏已经对Shader单元运算能力提出难以达到的要求,GPU必须适应游戏画面渲染发展趋势才能生存。

根据ATI的研究,在2001年刚刚出现具备像素着色器的显示卡时,当时游戏的像素着色器程序中算术指令和纹理指令数量的比例在1:

1左右,打这以后,算术指令的数量呈显著增加之势。

算术指令与贴图指令数量对比

  在2005年像素着色器程序中,平均每5条算术指令才会出现一条贴图指令,而这样的算术指令数量急剧增长趋势仍将继续保持下去。

  我们对于一条像素流水线定义是“PixelShader(像素着色器)+TMU(纹理单元)+ROP(光栅化引擎,ATI将其称为RenderBackEnd)。

从功能上简单的说,PixelShader完成像素处理,TMU负责纹理渲染,而ROP则负责像素的最终输出,因此,一条完整的传统流水线意味着在一个时钟周期完成1个PixelShader运算,输出1个纹理和1个像素。

但是目前的情况是TMU纹理填充单元和ROP单元并没有成为GPU设计的瓶颈,反倒是更长更复杂的着色器程序指令让多个像素渲染管线感受到前所未有的压力。

  据此研究结果,ATI在代号R520的RadeonX1800核心上市之后果断推出了酝酿已久的增强型改进产品R580——RadeonX1900。

在R580面世之后人们才知道,这颗核心早在RADEONX1800发布的时候就完成流片、取样等一系列的后期研发,几乎是进入生产阶段了。

它相对于R520最大的改进之处就在于提供了三倍于前者的像素着色器算术计算能力,实现这一目标的方式是采用了3个PixelShader对1个贴图单元的方式。

最后的开销仅仅是在晶体管数量只增加20%的情况下提供了相对R520200%的PixelShader性能增长。

  RadeonX1900系列最终做到了3个PixelShader对1个贴图单元,将PixelShader单元数量从X1800的16个推升到48个。

这一改动使得GPU运算能力空前强大,其高端产品RADEONX1900XTX的FP32精度像素运算能力达到374.4GFLOPS,如果再加上顶点着色器的话,RADEONX1900XTX的FP32计算能力总共会是426.4GFLOPS——R580因此得名“3:

1黄金架构”。

大幅提升的运算能力除了提高了对像素着色器运算需求饥渴的游戏之外,也引起了另一方的注意,那就是斯坦福大学。

Folding@home项目蛋白质实时折叠示意图

  2006年由斯坦福大学化学系的潘德小组(PandeGroup)主持的全球最大的分布式计算项目——Folding@home,逐步将眼光转向GPGPU领域。

该项目可精确地模拟蛋白质折叠和错误折叠的过程,以便能更好地了解多种疾病的起因和发展,任何一台个人电脑都可以下载客户端参与。

  ATI在2006年8月惊人地宣布即将联手斯坦福大学在其Folding@Home项目中提供对ATIRadeonX1900的支持。

在显卡加入Folding@Home项目后,科研进展速度被成倍提升,人们第一次感受到了GPU的运算威力。

  2006年10月2日,Folding@home项目公开发行供Windows系统使用的GPU测试版本,测试期间收到由450颗ATIX1900GPU提供的31TFLOPS运算性能,每颗显核平均运算运力为一颗传统CPU的70多倍。

此后GPU客户端成为Folding@home项目中最耀眼的明星,GPU使用和CPU近乎相同的功耗,却提供了平均10倍于CPU的运算能力。

GPU的Shader单元在经过了长期的演化之后,终于在GPGPU领域释放了其强大动力。

  该项目同时引来了全世界大量GPU高端玩家的参与,这是第一个可以让民用级别显卡开展大规模通用计算的尝试,也是目前最火爆的分布式计算项目。

该项目在中国发展缓慢,主要是因为真正能理解GPU的玩家数量还是很少,甚至高端发烧友都对它一知半解。

而事实上比较运算量可以得出,一款普通的9600GSO显卡的运算能力,已经远远超越一颗高端的4核心CPU。

  中国分布式计算总站作为一个公益性团体,一直在致力于各个分布式计算项目的推广,特别是属于生命科学类别的Folding@home项目。

该项目中国团队代码为3213,有兴趣或者想提升技术的玩家,可以尝试参与该项目,为自己的GPU通用计算能力找到一个“发泄”的空间。

1feb

第8页:

统一着色器架构释放GPU运算能力

●统一着色器架构再次释放GPU运算能力

  ShaderModel在诞生之初就为我们提供了PixelShader(顶点着色器)和VertexShader(像素着色器)两种具体的硬件逻辑,它们是互相分置彼此不干涉的。

但是在长期的发展过程中,NVIDIA和ATI的工程师都认为,要达到最佳的性能和电力使用效率,还是必须使用统一着色器架构,否则在很多情况下PixelShader计算压力很轻造成大量PixelShader单元闲置,VertexShader资源有限但遇到大量三角形时会忙不过来。

也就是说不再区分PixelShader和VertexShader,最终设计出来的产品可以在任何API编程模型中都不存在任何顶点/像素着色器固定比率或者数量限制。

VertexShader和PixelShader的负载对比

  每一帧渲染中VertexShader和PixelShader负载压力几乎没有相关性,总是在出现资源闲置和资源紧缺,所以有必要使用统一着色器架构。

  在统一着色器架构的GPU中,VertexShader和PixelShader概念都将废除同时代之以ALU。

ALU是个完整的图形处理体系,它既能够执行对顶点操作的指令(代替VS),又能够执行对象素操作的指令(代替PS)。

GPU内部的ALU单元甚至能够根据需要随意切换调用,从而极大的提升游戏的表现。

  微软XBOX360所采用的Xenos图形处理器,第一次引入了统一着色器架构,这个着色器架构包含了3个独立的着色器矩阵,每个着色器矩阵内有16个5D向量SIMD单元,这些SIMD单元既可以执行VertexShader也可以执行PixelShader,可以称之为符合DirectX9标准的统一着色器架构。

随后NVIDIA推出的GeForce8800GTX使用了128个标量流处理器(StreamProcessor)。

在通用计算方面,GeForce8800GTX的统一架构比Xbox360的C1更先进、更强大,这表现在标量设计、整个US和Shader簇内的MIMD化执行。

AMD历代着色器演进

  在GeForce

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 判决书

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

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