您所在的位置:首页 >> 专题报道

真实重新定义,NVIDIA GeForce8800系列显卡

Reality Redefined,NVIDIA Geforce8800 Series

2006-11-09 16:41:38
出处: 本站
人气值:
作者: EXP Studio
精彩分页

标量式渲染流水线设计(Stream Processing Architecture)

  毫无疑问,GPU架构的革新也带来直接的速度提升。通常的做法是增加GPU内部的渲染管线(Pipeline)来获得更多的计算能力,但G80图形核心的实现方式截然不同。

Shader时代图形渲染的基本操作是以各种指令为基本单位的,而这些操作可以分为两类:vector(矢量)和scalar(标量)。scalar是基本的单位,一个scalar操作可以包括一个mad或mul这种基本指令,被称为1D操作;一个vector就是n个标量,一般来说n = 4,因为现在最流行的RGBA中,3D刚好满足RGB操作,1D则适应Alpha通道的操作要求。因为指令是3D+1D,所以被称做4D操作,传统的GPU管线中ALU的操作能力就是这样。

  像R5XX和G7X的每个ALU都有能力单周期完成一个3D+1D(也就是3D矢量+1D标量指令,它们如果并行,被称做co-issue)或者2D+2D(一般是贴图坐标的处理, 因为一般是2d的坐标, 所以可以两个同时进行)总共4D这样的指令操作。而观察G80图形核心的着色单元设计,我们会发现最大的不同就是G80图形核心将3D+1D或者2D+2D这样执行能力为4D的“大”ALU拆分为单个执行能力为1D的“小”ALU,然后将这些ALU组成8个阵列(TCP),每个TCP拥有16个ALU,它们被称做1D Scalar Streaming Processors。通过独特的内部分频技术,这些着色单元阵列能以超过时钟频率2倍多的频率(1.35GHz)运行。

  G80的纹理单元也被重新设计。前面已经提到,G80取消了传统的纹理单元。将传统纹理单元(TMU)的功能拆分为两种单元-- 纹理拾取单元(Texture Address Unit)和纹理过滤单元(TexTure Filtering Unit),它们以跟核心频率相同的频率(575MHz)运作,以1:2的比例组成了新的纹理渲染阵列(Tex Array)。


G80图形核心的TCP阵列

  那么,这种“瘦身高频”的做法到底有什么好处呢?

  让我们回过头来看看Shader,当操作数为4D也就是vector4的时候,G80图形核心和传统流水线的GPU都有很好的性能,传统流水线的1*vec3 add/mul/madd + 1*scalar add/mul方式(也就是3D+1D处理)能直接单周期内完成指令,G80图形核心的单scalar 1D单元遇到4D指令虽然要4个周期才能完成,但期间的延迟通过G80图形核心庞大的Thread资源完全可以掩盖。但是,shader中的操作数不可能每时每刻都为4D,更多的是常用的mul或add这种简单指令,这种操作对于传统4D流水线就有些划不来了,因为不管操作数是多少,单个周期内它们都要占据一个ALU的运算资源。而对于G80图形核心来说,不管是多么“细小”的操作,它的这种分散式流水线都有很强的适应能力。


G80的单个标量处理单元示意图

  另外,即使是标准的3D+1D的标量+矢量并行操作,co-issue也不是每时每刻都有效的,当前的各个GPU,在内部指令执行方面都有一定限制。比如,R4XX、R5XX要求程序对RGB+Alpha的co-issue进行配对优化;R580这种非对称架构需要着色器指令的顺序针对不同的过滤方式、不同的纹理格式使用不同的TMU、ALU指令配对比例;G7X要求nrm_pp指令紧挨着TMU指令执行..…等等等等。一旦出现不符合它们“胃口”的Shader顺序或者指令搭配方式,那么它们的理论指标就会大打折扣。

  而对于G80图形核心的128个1D Scalar Streaming Processors来说,就完全没有这些限制了。当扣除掉这些Shader渲染时的意外情况,我们再来计算G80图形核心和传统GPU的FLOPS,就会发现它们之间的巨大差别。G80图形核心的每个Scalar能做mul+mad,一个mad是2个flop,一个mul是1个,所以总FLOPS是3(flop)*128(SP)*1350MHz=519Gflops,而R580是4D mad+add,所以就是12个flop,总Flop是12(Flop)*650(MHz)*48(Pipeline)=375Gflops。看似差距不大,但当co-issue失效的时候(大多数情况就是这样),R580只能执行125Gflop/s,而G80图形核心依然有346Flops。再考虑到Shader中各种细微操作造成的资源浪费,这一差距更大。


G80的单个纹理渲染阵列示意图

  在纹理渲染方面,G80也充分为未来进行了考虑。传统的GPU中TMU兼负纹理拾取和纹理过滤两重功能,而G80对这两种功能采用了分离设计,能最大限度的适应当前shader中需要对主内存进行操作的纹理拾取指令减少,而与HDR等相关的纹理过滤指令增多的情况。

文章分页:上一页  1 2 3 4 [5] 6 7 8 9 10  下一页  下10页
关于我们 | 联系我们 | 网站记事
Copyright © 2006 Expreview.com. All rights reserved.
粤ICP备 06080755号