真DX11架构发威!HD5000输的心服口服
● GF100对比RV870:几何引擎16:1
GF100与上代的GT200和上上代的G80相比,SM的变化非常大。GF100每组SM当中拥有32个流处理器,而GT200/G80的每组SM都是8个流处理器。在SM内部流处理器数量翻三倍的同时,GPC/TPC的构成也发生了变化,G80每个TPC内部拥有2组SM,GT200是3组SM,而GF100每个GPC内部则是4组SM。
GF100每组SM内部都包含了一个多形体引擎
GF100与GT200最大的不同其实就是PolyMorph Engine,译为多形体引擎。每个SM都拥有一个多形体引擎,GF100核心总共有多达16个。那么多形体引擎是干什么用的呢?为什么要设计如此之多?
★ 为什么要设计多形体引擎?
之前的GPU架构一直都使用单一的前端控制模块来获取、汇集并对三角形实现光栅化。无论GPU有多少个流处理器,这种固定的流水线所实现的性能都是相同的。但应用程序的工作负荷却是不同的,所以这种流水线通常会导致瓶颈出现,流处理器资源未能得到充分利用。
实现光栅化并行处理的同时还要保持API的顺序是非常困难的,这种难度阻碍了这一领域的重大创新。虽然单个前端控制单元的设计在过去的GPU中曾有过辉煌的历史,但是随着对几何复杂度的需求不断增长,它现在已经变成了一个主要障碍。
Tessellation的使用从根本上改变了GPU图形负荷的平衡,该技术可以将特定帧中的三角形密度增加数十倍,给设置于光栅化单元等串行工作的资源带来了巨大压力。为了保持较高的Tessellation性能,有必要重新平衡图形流水线。
为了便于实现较高的三角形速率,NVIDIA设计了一种叫做“PolyMorph”的可扩展几何引擎。每16个PolyMorph引擎均拥有自己专用的顶点拾取单元以及镶嵌器,从而极大地提升了几何性能。与之搭配的4个并行光栅化引擎,它们在每个时钟周期内可设置最多4个三角形。同时,它们还能够在三角形获取、Tessellation、以及光栅化等方面实现巨大性能突破。
● RV870只有一个控制引擎:
ATI似乎也意识到了单个装配引擎无法满足如此庞大规模流处理器并行处理的需要,因此设计了两个Rasterizer(光栅器)和Hierarchial-Z(多级Z缓冲模块)。但其它的模块如Tessellator(镶嵌器)、Vertex Assembler(顶点装配器)、Geometry Assembler(几何装配器)都只有一个:
RV870只有一个前端控制引擎
4:2的光栅化引擎,16:1的多形体引擎(包括Tessellator),GF100的几何图形性能有多么强大已经可以想象。Tessellation作为ATI发明的技术,对于图形渲染流程与负载的改变ATI不会不知道,如此鸡肋的设计只有一个原因,那就是不做任何改动抢先进入DX11时代,至于执行效率问题暂时抛诸脑后。
NVIDIA则比较务实,他们要的不是抢第一赚噱头,而是做最完美的DX11显卡。当NVIDIA的工程师通过计算机模拟测试得知几何引擎将会成为DX11新的瓶颈之后,毫不迟疑的选择了将单个控制模块打散,重新设计了多形体引擎和光栅化引擎,并分散至每组SM或每个GPC之中,从而大幅提升了几何性能,彻底消除了瓶颈。
当然这种革命性的设计代价很大,消耗了NVIDIA工程师无数的精力、资源和时间。事实上多形体引擎正是GF100核心最大的变化所在,也是它无法在去年及时发布的本质原因。