[GF100架构深入剖析之一]
今年初,我们曾在第一时间介绍过GF100游戏架构的诸多方面,不过当时公开的资料比较有限,所以今天我们会花费较大的篇幅,再次系统性地剖析一下GF100的内部架构。由于涉及技术点比较多,可能会显得有些晦涩,但只有吃透这些我们才能真正明白GeForce GTX 400系列显卡的精髓,以及NVIDIA公司的发展思路。
1、整体概览
GF100芯片外表看起来非常庞大,内部结构也是异常复杂,简单地说可以分成以下几个模块:主接口(Host Interface)、GigaThread引擎、四个图形处理器集群(GPC)、六个64位GDDR5显存控制器、六个ROP分区、768KB二级缓存,其中每个GPC包含四组流式多处理器(SM)、四个PolyMorph引擎、一个Raster引擎,而每个流式多处理器内又有32个流处理器——NVIDIA称之为CUDA核心,完整的核心拥有512个。
16个SM都是高度并行的多处理器,能在任何时候支持最多48个Wrap。512个CUDA核心都是统一的处理器核心,能够执行顶点、像素、几何学和计算内核等不同任务。48个ROP单元可用于像素混合、抗锯齿、原子存储等操作,每组6个由一个64位显存控制器进行控制。统一的二级缓存则能够提供载入、存储、纹理操作等服务。
GPU工作的时候,通过主接口读取中央处理器指令,GigaThread引擎从系统内存中获取特定的数据并拷贝到显存中,显存控制器提供数据存取所需的高带宽。GigaThread引擎随后位各个SM创见和分派线程块,SM则将多个Warp(32个线程的群组)调度到各个CUDA核心以及其他执行单元。在图形流水线出现工作超载的时候,GigaThread引擎还负责进行工作的重新分配。
2、GPC架构
GPC是GF100的主要高级硬件模块,每个完整的GF100核心内拥有四个GPC。
GF100 GPC有两项重要创新:一是用于顶点属性提取与曲面细分的可扩展PolyMorph引擎,驻留在SM中,二是用于三角形设置、光栅化以及Z轴压缩(Z-Cull)的可扩展Raster引擎,驻留在GPC中。
GPC囊括了所有主要的图形处理单元,代表了顶点、几何、光栅、纹理、像素处理资源的均衡集合。除了ROP功能之外,GPC还完全可以看作是一个自给自足的GPU。
在NVIDIA之前的GPU中,SM和纹理单元组成的集合叫作纹理处理集群(TPC),而GF100中每一个SM都有四个专用的纹理单元,这样就不再需要TPC了。
3、并行几何学处理
随着图形渲染工作量的突飞猛进,传统的固定流水线已经不堪重负,特别是曲面细分的加入可以将三角形密度提高数十倍,从根本上改变了GPU图形负载的平衡,因此很有必要重新设计平衡的图形流水线,以保证高效率和高性能。
为了实现较高的三角形输出率,GF100设计了总计一种可扩展几何引擎PolyMorph,并为其配备专用的顶点拾取单元和曲面细分单元(Tessellator),从而极大地提升了几何性能。与之相配,GF100还设计了并行Raster引擎,可以在每个时钟周期内设置最多四个三角形。
(1)、PolyMorph引擎
该引擎的工作流程可分为五个阶段:顶点拾取、曲面细分、视口转换、属性设置、流式输出。每个阶段中的运算结果都会被发送到一个SM,由其执行游戏的着色程序并将结果返回到引擎中的下一个阶段,而五个阶段全部完成后结果就会发送到Raster引擎。
每个完整的GF100核心拥有16个PolyMorph引擎,每个GPC分配四个。
(2)、Raster引擎
基元在PolyMorph引擎中处理完毕后便发送至Raster引擎,这里又分为三个阶段:边缘设置、光栅器、Z轴压缩。事实上这些阶段在此前的GPU中也都存在,GF100只不过将它们放在了一起,而且全部四个Raster引擎采取了并行工作的方式,从而实现更高的三角形吞吐量。
正是通过GPC架构几何流水线的重大突破,GF100提供了曲面细分所需要的更高级别三角形和光栅化性能,几何性能也达到了GT200核心的八倍,并且随着曲面细分几何复杂度的增加,GF100会更加得心应手,超越竞争对手的幅度也会越来越大。
微软DirectX SDK软件开发包中就提供了多个演示程序,比如“SubD11”中,曲面细分等级为2的时候,GeForce GTX 480的性能只是Radeon HD 5870的1.4倍左右,但曲面细分等级增加到31之后,性能差距就骤然拉大到了9.8倍之多,再比如“PN Triangeles”,曲面细分等级分别为5、19的时候,GeForce GTX 480的性能分别是Radeon HD 5870的2.3倍和7.2倍。
还有我们都很熟悉的Unigine Heaven,NVIDIA给出的数据显示GeForce GTX 480的速度全程都在30FPS之上,而Radeon HD 5870却有47%的时间都不到30FPS,而且在细节较少、天空场景开阔的时候,两款显卡速度差不多,而在几何细节等级较高、曲面细分网格密度较大的情况下,GeForce GTX 480的速度已经是对手的二倍,快了足足20FPS。
正因为如此,NVIDIA宣称自己的架构是面向未来设计的,有充足的发展空间,不过问题是游戏在短期内还不太可能使用太高负载的曲面细分,而且AMD也不可能没有考虑过这种情况,下半年的新架构应该会有些不同。