去年10月,ATI正式发布了X1000系列显卡,最新的R580+核心以及RV560/570核心都是基于X1000架构,完全按照DirectX 9.0c的规格设计。最高端的R580+除了拥有强大的像素处理能力之外,还集成了众多ATI引以为傲的先进技术和功能。
ATI在X1000系列的Pixel Shader Engine首次引入了Ultra-Threading Dispatch Processor(超级线程分派处理器),超级线程分派处理器具备调度/控制逻辑,R520最多能够同时处理512个并行的线程。在当今显卡架构设计中,多线程思想是相当重要的。多线程能够使得GPU的象素处理核心在等待请求的同时,还能够处理其他的请求。配合SM3.0的加速流控制,消灭纹理等待和减少渲染等待,大大提高性能。当然RadeonX1900系列(R580)也支持SM3.0和Ultra-Threading Dispatch Processor(超级线程分派处理器)。
● 48个像素渲染单元
X1000系列的第一代R520核心仅拥有16条像素渲染管线,而对手NVIDIA的G70为24条,这使得R520在与G70的竞争当中处于不利局面,不得不依靠高频率来弥补不足。而ATI的R580/R580+的像素渲染单元一举提升至48个的境界,足足是R520的三倍,让人刮目相看!
不过也有人对ATI的这种架构表示质疑,R580/R580+虽然拥有48个像素单元,但纹理单元依然保持16个不变,按传统意义上的说法R580+还是只有16条管线,只不过架构上变成了16×3=48个像素渲染单元。
R580已经发布了半年有余,时间证明了ATI这种像素:纹理=3:1的架构对2006年新游戏的适应性非常好,X1900XTX除了在老游戏中表现不佳之外,在绝大多数主流游戏中都击败了拥有完整传统意义上24条管线的7900GTX,而且优势比较明显!
当然像素处理引擎的渲染指令包括从显存中拾取数据的纹理操作和完成数学变化的渲染处理操作。实际上这两种渲染指令的使用比例决定者图形芯片像素处理引擎的组成。ATI认为大部分的像素处理都是双线过滤操作或者从整数纹理中进行点取样,并没有多少纹理查找的过程。纹理操作过多依赖于显存容量跟带宽这些外界因素,而算术处理操作则不同,它的处理能力大多数场合取决于像素处理器集成的像素渲染单元的数量。理论上通过相应的约束参数纹理操作生成像素算术纹理,可以降低纹理操作对外界因素的依赖,减少对显存容量和带宽的要求。
因此ATI下半年即将推出的所有显卡——X1950XTX、X1950Pro、X1650XT、X1650Pro、X1300XT,都将全面贯彻像素:纹理=3:1的架构,以满足当前和未来新游戏的需要。
当然,ATI并非是忽视纹理单元的性能,实际上3D渲染纹理操作过多的依赖于显存容量和速度,因此ATI通过改进显存控制器、采用高速GDDR4显存的方式增强了纹理渲染能力,并且集成了后面将要提到的Fetch4纹理样本过滤器,提升了纹理渲染效率!
今后的游戏极其依赖于显卡的像素处理能力,像素渲染单元也被赋予了更多额外的处理和运算,因此除了给GPU设计更多的像素单元之外,如何高效能的分配像素处理操作,是提高显卡性能的关键所在!
● 超线程引擎支配48个PSU
R580+的像素渲染引擎当中除了48个像素渲染单元之外,最核心的部分是一个叫做“Ultra-Thearding Dispatch Processor”(超线程调度引擎)的模块,这一部分的作用就是将线程分派给下面的像素渲染单元。而且可以看出Ultra-Thearding能够统一调度48个像素单元和16个纹理单元之间的协同工作。
传统的像素渲染架构(Pixel Shader Engine)设计造成大量的延迟及运算周期的浪费,这主要体现在动态分支(Dynamic Branching)的执行能力上,这是Pixel Shader 3.0中常用的指令,令Pixel Shader程序可以执行不同的分支或是根据运算而循环执行。
R580/R580+核心进一步优化了动态分支的运算。Ultra-Threaded Pixel Shader Engine能把一个庞大的像素渲染操作分拆为大量较小的执行簇,然后平衡地分给各个像素渲染单元,在同样的Shader程序下其执行簇被分割成细少的Pixel Blocks,因此为排除了部份单元需要等待其它单元完成的结果而造成闲置,减少了不必要的延迟并提供更快的执行效率。
动态分支被认为是Pixel Shader 3.0的重要新特性,可以让Pixel Shader根据计算出来的数值来跑不同的分支或者循环。如果正确使用的话,动态分支能显著地提高性能。例如在使用阴影贴图的时候,如果要对阴影作边缘柔和取样,使用动态分支可以在遇到不需要作取样的像素例如的时候就跳过去,以节省大量的Pixel Shader计算资源。
● 独一无二的HDR+AA技术
DirectX 9.0c的主要规格就是升级到了Pixel Shader 3.0和Shader Model 3.0,前面提到ATI严格按照PS3.0架构设计,动态分支执行力大幅提高,在新版DX9C游戏中的表现非常出色。而SM3.0所带来的HDR(高动态范围光照)技术则让人又爱又恨,因为所有的游戏在打开HDR之后就无法开启AA(全屏抗锯齿)——这是在NVIDIA的显卡之上!
ATI在X1000架构设计之初就意识到了HDR的重要性,也考虑到了仅有HDR难以满足追求完美画质游戏玩家的要求。于是在X1000系列的高中低端所有GPU都集成了特殊的缓冲区域,通过驱动或者游戏引擎调用这部分缓冲区同时开启HDR和AA。
但由于是来自API的限制,程序设计者仍必须对游戏引擎进行改进,重新指定缓冲区域才能实现HDR+AA效果。由于绝大多数游戏都是按照FP16 HDR模式设计,支持SM3.0的A卡开启HDR后还是会占用FSAA缓冲区,因此能够同时支持FP16 HDR+FSAA的游戏数量还比较少,有些需要打补丁或者安装特殊驱动才能开启,这也算是不成熟的SM3.0历史遗留问题,怨不得ATI。
自从ATI HDR+AA技术被炒热之后,完美的画面表现力征服了越来越多的游戏玩家。从最早的3DMark06、孤岛惊魂1.4、英雄萨姆2,到较新的上古卷轴4、分裂细胞3以及西部枪战,随着时间的推移也有更多的游戏能够支持HDR+AA技术。