跨入GF100新时代!GeFroce GTX480评测

2010-04-07 13:53  出处:PConline原创  作者:佚名   责任编辑:zhengwanglun 

DirectX11技术回顾(2)

◆ OIT乱序透明

    OIT(透明独立叠加)乱序透明是一种对半透明物体的全新渲染方式,它不仅能够以更好的画面效果展示半透明物体(例如玻璃、水、火、烟雾等),同时还能够加快半透明物体的渲染速度。

    实际上,这一技术只是在DirectCompute 11中的一部分,不过目前得到实际应用的游戏还并不很多。

◆ 渲染后处理

  进行后处理渲染的ROP单元在ATI的DX11架构当中也被改进了一部分,这其中就包括了最新的景深、运动模糊、环境光遮蔽、色调映射、边缘检测、平滑、锐化后处理多种特效的加入。新的算法同样进行了优化,不仅使得开发人员在编程时更加简便,同样还增加了运行效率,并且画面效果也得到了提升。

  后处理效果同样是在DX11特效中的一个不小改进,其主旨在于让GPU获得更快的处理速度,并且还能够获得更好的显示效果。

◆ DirectX11纹理压缩

  纹理压缩技术同样是一种不容易被玩家察觉的技术,微软表示在DX11当中,纹理压缩技术再次升级,尤其是在HDR纹理压缩方面首次提供了支持。虽然这一技术我们并不会看到,但是纹理压缩能够更好的节省显存,从侧面加快运行速度。

  实际上,DX11还对一些其他特性进行了改动或者添加,不过这些改动或微不足道、或对游戏画质提升不大、或与GPU无关,因此本文就不再为大家复述了。接下来我们就结合NVIDIA的首款DX11产品,来为大家介绍一下NVIDIA在DX11方面的应用。
GTX400为DX11改进亮点

  了解了微软在DX11方面做出的改进之后,接下来我们再来看看NVIDIA相对DX11方面做出的重要改进有哪些方面。

  NVIDIA在DX11方面的改变非常巨大,尤其是在Tessellation(曲面细分)方面的改进,明显要比ATI的Radeon HD 5000系列产品更加明显。下面就是NVIDIA在GPU上为Tessellation做出重大改进的两个部分

  为了加入Tessellation的支持,并且能够更好的保证执行效率,NVIDIA在每个SM阵列当中均加入了一组PolyMorph引擎(多形体引擎)以及Raster引擎(光栅引擎)。相比ATI的HD5000架构来说,拥有非常大的优势。

  从NVIDIA官方公布的性能对比上来看,同样都具备Tessellation功能的HD5870和GTX480显卡在开启低曲面细分设置情况下,两者性能差距并不明显,而将曲面细分级别调制较高设定后,GTX480将会拥有非常明显的性能优势。究竟NVIDIA如何做到?接下来我们就来通过架构解析,为大家详细阐述。

  之所以GTX400系列产品受关注度如此之高,并非简单的性能表现。GTX400在核心架构方面的巨大转变,同样是不少玩家们最为关注的焦点。上一页中,我们为大家简单归纳了一下GTX400系列产品在架构方面的改进。接下来我们就用一个较长的小节,为大家做GTX400的核心架构设计的全面介绍。

  GTX400系列产品采用了GF100核心架构,而GF100核心架构又是从Fermi架构演变而来。但是Fermi不能直接与GF100划等号,因为Fermi架构代表了这一代产品的总体架构设计方式,而GF100则主要泛指Fermi架构针对GeForce产品设计演变而来的核心架构。后文中,我们将以GF100核心架构来为大家进行讲解,再次提醒GF100架构又不能完全等同于GTX480(这一点我们将在后文的规格介绍当中说明)。

◆ GF100架构总览

  从NVIDIA的首款统一架构的G80开始,到今天的GF100产品,这已经是NVIDIA第三代统一架构产品。除了在架构方面的改进外,此次GF100的核心数量也再次得到了翻倍。

  如果说Radeon HD 5870的核心架构酷似一个双核心处理器的话,那么此次NVIDIA发布的GF100核心就有点类似于四核心处理器的逻辑架构图了。从下图当中来看,GF100核心主要划分为Host Interface(主接口,负责PCI-E通讯传输,包括读取CPU指令等)、GigaThread Engine(主线程调度引擎)、4组Graphics Processing Clusters(后文简称GPC,图形处理集群,GPU的核心部分)、6组Memory Controller(显存控制器,每组显存控制器位宽为64bit,总位宽384bit)、L2 Cache(二级缓存,容量为768KB)、6组ROP单元(每组包含8个ROP,共48个)。

  在GF100核心当中,共包括4组GPC部分,每组GPC又包括四个Streaming Multiprocessors(流式多处理器阵列,简称SM阵列),而每个SM阵列当中又包含了32个Core(NVIDIA称之为CUDA Core,CUDA核心,为了便于读者理解,后文当中我们依然延续NVIDIA原有的名称:流处理器)。在每个GPC当中,NVIDIA都增加了一组全新的Rester Engine(光栅引擎)。而在每组SM当中,NVIDIA还增加了同样全新设计的PolyMorph Engine(多形体引擎,执行曲面细分的主要单元)。Rester引擎以及PolyMorph引擎实际上是NVIDIA对GF100核心架构做出的最大变化。

  在GPU通过主接口获取了CPU的指令之后,GigaThread引擎将会从系统当中调取GPU所需计算的数据,并且拷贝到存储器当中。随后,GigaThread引擎将这些数据为不同的SM创建和分派线程块。每组SM会将GigaThread引擎分配来的线程块分配至Warp(32个线程的群组,后文当中为大家详细介绍),再由Warp调度器重新分配为线程,并由分派单元派发至每个CUDA核心或者其他执行单元上。

  当然,GPU当中的执行并不会总是如此顺利。如果此时某一个SM阵列当中的工作出现无法完成的情况,例如在完成了Tessellation(曲面细分)以及光栅化之后即将进入其他流程,但是单个SM阵列无法完成全部工作,那么GigaThread引擎能够将这些已完成的数据重新分配到其他的SM阵列当中,从而提高执行效率,避免了因为某一个SM阵列数据量过大,导致所有SM阵列空循环。

◆ 对比GT200核心架构

  前面我们对GF100核心架构有了一个大概的认识,想要了解GF100在核心架构方面究竟发生了哪些变化,我们还是要再来看看当年NVIDIA的GT200显示核心架构:

  从GT200的核心架构图来看,GF100的设计思路虽然还在遵循一些GT200的痕迹,不过显然GF100在不少方面已经发生了翻天覆地的变化。这其中包括NVIDIA在每组GPC以及SM阵列当中引入的Rester引擎(原有的光栅引擎重新设计并且位置也发生了变化)以及PolyMorph引擎。除了两个全新引擎,每个SM阵列的规格、设计也发生了较大的改变。

  当然,在GT200核心架构当中,并没有引入GPC这一概念。NVIDIA实际上更想通过这样的架构设计,让未来产品(例如中端、入门级等)的等级划分更加容易。关于这一点,我们会在后文中的NVIDIA未来产品线预测中,为大家更详细的介绍。

GF100新单元,GPC架构

  想要一两句说明NVIDIA的GF100架构显然不切实际,在我们对GF100核心架构总体有一定的了解之后,接下来我们将GF100核心拆分开来,一一为大家介绍GF100架构图当中的每个细节。

◆ GPC架构解析

    前面我们介绍了,GF100核心当中总共由四组GPC(Graphics Processing Clusters,图形处理集群)组成。那么,接下来我们就来仔细了解一下这个全新的GPC单元当中的内部架构是如何设计的。

  在每个GPC当中,都会包括一个Raster Engine(光栅引擎,顶部黄色横条)以及最多四组SM(Streaming Multiprocessors,后文统一采用SM阵列简称,不再复述)阵列。注意,我们这里说到的是每个GPC内最多有四组SM阵列,NVIDIA会根据情况对GPC内的SM单元进行削减。例如在GTX480核心当中,就削减掉了一个GPC当中的一组SM阵列,也就是说其中三组GPC均有四个SM阵列,而另外一组GPC当中仅有三组SM阵列。

    GPC是GF100当中的一个重要模块,也是NVIDIA在统一架构产品当中首次引入的概念。在每个GPC当中,都增加了一个Raster Engine(光栅引擎)。除此以外,每个GPC几乎都可以被看成是一个完整的GPU小核心,因为每个GPC当中均包括了能够对定点、几何、光栅、纹理以及像素处理的功能。可以说,除了ROP功能外,GPC几乎已经能够完成绝大部分的图形处理工作。如果NVIDIA对整体GPC进行削减,那么也将会是一件非常容易的事情。我们猜测这对产品线架构的划分,会非常有利。

◆ GPC设计的优势

    几乎等同于单个GPU的GPC部分,在每个GF100核心当中均拥有四组。如此一来,NVIDIA想要在中端、主流级以及入门级显卡当中重新调整核心架构就显得相当容易了。因为NVIDIA仅需要对GPC数量进行调整,几乎就可以完成对不同等级显卡的划分。而在具体到每个系列产品的结构划分当中,NVIDIA又可以根据产品的良品率适时的削减SM阵列。这样一来,NVIDIA不仅能够将产品线划分得更细,同时对于晶圆的良品率也起到了间接的提升作用,可谓一举两得。

  或许有读者会说,NVIDIA原有的SM阵列屏蔽方式不也一样能够起到等级划分的作用么?没错,如果NVIDIA的设计思路依然停留在GT200的时代,那么原有的等级划分方式确实有效,不过在引入了全新的Raster引擎以及Polymorph引擎之后,单纯屏蔽SM阵列的方法显然就不再那么合适了。

变化巨大 SM架构解析

  既然NVIDIA宣称在GF100上采用了第三代流式多处理器(Streaming Multiprocessors,简称SM阵列)设计,那么我们接下来就再来看看,NVIDIA在SM阵列设计上发生了什么样的变化。

  NVIDIA表示,在第三代SM阵列架构方面引入了多项改进,能够让SM阵列性能更加强大,并且在可编程方面以及效率方面也将会获得很高的提升。

◆ 流式多处理器(SM)解析

  NVIDIA每次进行架构方面的调整,都会对SM阵列当中的流处理器(在GF100中,NVIDIA称之为CUDA Core,CUDA核心)数量进行调整。在G80当中,每组SM阵列包含有16个流处理器;而到了GT200核心之后,SM阵列当中增加到了24个;最新的GF100当中则提升到了32个。另外,除了最新的GF100,原有的G80以及GT200核心当中,均为8个流处理器为一组,G80的一个SM当中包含两组,GT200的SM当中为三组。在GF100核心当中,不再刻意为流处理器核心进行分组:

  从图中可以看到,每个SM阵列均包含了一个Instruction Cache(顶部蓝色方框,指令高速缓存,负责接收存储线程块)、两个Warp Scheduter(第二行两个橙色方框,Warp调度器,负责为后面的Core将线程块分解为线程)、两个Dispatch Unit(第三行两个橙色方框,分派单元,负责分派由Warp调度器分配后的指令)、Register File(第四行蓝色方框,寄存器文件,存储分派单元的warp)、32个CUDA Core(绿色正方形方框,CUDA核心,负责运算指令)、16个Load/Store Unit(核心右侧标有“LD/ST”的绿色方框,载入/存储单元,负责运算线程地址)、4个Special Function Unit(最右侧标有“SFU”的绿色方框,特殊功能单元,负责执行其他抽象指令)、64KB Shared Memory/L1 Cache(倒数第5行蓝色方框,64KB高速缓存,可灵活划分为共享存储器和L1缓存使用)、Uniform Cache(倒数第四行蓝色方框,统一高速缓存)、4个Texture Unit(倒数第三行深蓝色方框,纹理单元,进行纹理填充)、Texture Cache(倒数第二行蓝色方框,纹理高速缓存)以及PolyMorph Engine(最下一行黄色方框,多形体引擎,曲面细分的主要部分)。

    在简单的了解了SM阵列当中的构造之后,下面我们继续将SM拆分开来,仔细的为大家介绍一下SM当中这些名称复杂的单元究竟如何运作的。
GPU最小执行单位Core

键盘也能翻页,试试“← →”键