主宰DX11新纪元!GTX480/470显卡详评测

2010-04-15 20:06  出处:PConline原创  作者:后天太阳   责任编辑:chenri 

GF100架构分析:图形处理集群

  GigaThread引擎是NVIDIA在G80时候开始提出的一项线程调度多任务管理引擎,其角色在整个核心中起着一个任务分派的角色。G80的GigaThread引擎已经能实时管理多达12288个Thread,而在GF100架构上不仅线总程数增加了一倍,还显著性地提升了contextswitching的性能、实现并发式核心程序(concurrent kernel)执行以及改进的Thread Block调度。

  GigaThread引擎能够从系统内存中获取指定的数据并将其拷贝到显存中。GF100采用了6个64位GDDR5存储器控制器(总共384位),便于显存高带宽存取。GigaThread引擎然后会为各个SM创建和分派线程块。单个SM反过来会将多个Warp(32个线程的群组)调度至多个CUDA核心以及其它执行单元。当图形流水线中出现工作高负载现象时,例如在Tessellation(曲面细分)以及光栅化阶段之后,GigaThread引擎还能够将工作重新分配至SM。

  GF100核心内部总共拥有512个CUDA核心,每32个核心构成一个SM(流式多处理器),共有16个SM。每个SM都是一个高度并行的多处理器,它们在任何时候都能够支持多达48个Warp。每个CUDA核心都是统一的处理器核心,能够执行顶点、像素、几何学以及计算内核。统一的2级高速缓存架构能够提供载入、存储以及纹理操作等服务。

  GF100拥有48个ROP单元,它们可用于像素混合(Pixel Blending)、抗锯齿以及原子存储器操作。ROP单元每8个一组,共有6组。每一组均由一个64位存储器控制器来进行控制。存储器控制器、2级高速缓存、以及ROP群组全都密切关联,扩展一个单元就会自动地扩展其它部件。

GF100的主要计算单元——图形处理集群(GPC)

  GF100的图形架构由大量叫做“图形处理集群”(GPC)的硬件模块构成。一个GPC包含一个Raster引擎以及最多四个SM。

  如其名称所示,GPC囊括了所有主要的图形处理单元。它代表了顶点、几何、光栅、纹理以及像素处理资源的均衡集合。除了ROP功能以外,GPC可以被看作是一个自给自足的GPU,而一颗GF100拥有四个GPC!

  在GF100之前的GPU中,SM与纹理单元在一种叫做“纹理处理集群”(TPC)的硬件模块中聚集在一起。而在GF100中,每一个SM都拥有四个专用独立的纹理单元,这样就不再需要TPC了。

GF100图形处理集群改进:PolyMorph引擎

  GPC是GF100的主要高级硬件模块。它拥有两项重要的创新:一个用于三角形设置、光栅化以及Z坐标压缩(Z-cull)的可扩展Raster引擎,一个用于顶点属性提取与Tessellation(曲面细分)的可扩展PolyMorph引擎。Raster引擎驻留在GPC当中,而PolyMorph引擎则驻留在SM中。

  虽然可编程着色让PC游戏能够在每像素特效上与电影相媲美,但是在几何学逼真度上PC游戏还差得很远。当今最先进的PC游戏在每一帧中运用一两百万个多边形。相比之下,计算机生成的电影中每一帧通常会运用数以亿计的多边形!在解决几何学逼真度这一问题上,NVIDIA把目光投在了电影上获得启发。电影中人物的精细画质归功于两种关键技术:Tessellation(曲面细分)以及Displacement Mapping(贴图置换)。

  Tessellation(曲面细分)的使用从根本上改变了GPU图形负荷的平衡。凭借Tessellation(曲面细分),特定帧中的三角形密度能够增加数十倍,但这给设置于光栅化单元等串行工作的资源带来了巨大压力。为了保持较高的Tessellation(曲面细分)性能,有必要重新平衡图形计算流水线。

  为了便于实现较高的三角形速率,NVIDIA设计了一种叫做“PolyMorph引擎”的可扩展几何引擎。每16个PolyMorph引擎均拥有自己专用的顶点获取单元以及Tessellator,从而极大地提升了几何性能。与之搭配,每个GPC还配有一个并行Raster引擎,它们在每个时钟周期内可设置最多四个三角形。同时,它们还能够在三角形获取、Tessellation(曲面细分)、以及光栅化等方面实现巨大性能突破。

  PolyMorph引擎:

  PolyMorph引擎拥有五个阶段:顶点获取、Tessellation(曲面细分)、观察口转换、属性设置以及流式输出。每个阶段中所运算得出的结果均被发送至一个SM。该SM能够执行游戏的着色程序、将结果返回至PolyMorph引擎中的下一个阶段。在所有阶段都完毕之后,结果会被传递给Raster引擎。

  第一个阶段是从一个全局顶点缓冲区中获取顶点。所获取的顶点于是被发送至SM,以进行顶点着色以及外壳着色。在这两个阶段中,顶点从一个物体空间转变成了世界空间,而且还算出了Tessellation(曲面细分)所需的参数(例如Tessellation(曲面细分)系数)。Tessellation(曲面细分)系数(或LOD)被发送至Tessellator。

  在第二个阶段中,PolyMorph引擎读取Tessellation(曲面细分)系数。Tessellator将修补面(控制点网格所定义的光滑表面)分成小方块并输出许多顶点。修补(u、v)值定义了网格以及形成网格的连接方式。

  全新的顶点被发送至SM,域着色器与几何着色器均在这里执行。域着色器能够根据外壳着色器与Tessellator的输入来运算每个顶点的最终位置。在本阶段中,通常会附上一个Displacement Mapping(贴图置换)以提升修补面的细节表现。几何着色器能够执行任何后期处理、按需增加或删除顶点以及基元。结果最终将被发回至Tessellation(曲面细分)引擎。

  在第三个阶段,PolyMorph引擎会执行观察口转换以及视角校正。接下来就是属性设置,把后期观察口顶点属性转变成了平面方程,以进行高效的着色器评估。最后,可以选择将顶点“流出”至存储器,使其能够用于更多处理。

  在之前的架构上,固定功能的操作由单个流水线来执行。在GF100上,固定功能与可编程操作全部都实现了并行化,从而极大地提升了性能。

GF100图形处理集群改进:Raster引擎

  在PolyMorph引擎处理完基元之后,它们就被被发送至光栅(Raster)引擎。为了实现较高的三角形吞吐量,GF100采用四个Raster引擎并行工作的方式。

  Raster引擎由三个流水线阶段组成。在边缘设置阶段中,可提取顶点位置、计算三角形边缘方程。没有朝向屏幕方向的三角形都通过背面剔除而删掉了。每一个边缘设置单元在一个时钟周期中最多都能够处理一个点、线或三角形。

  光栅器(Rasterizer)为每一个基元而运行边缘方程并计算像素的覆盖。如果开启了抗锯齿功能,那么就会为每一个多采样以及覆盖采样执行覆盖操作。每一个光栅器在每个时钟周期内均可输出8个像素,整个芯片每个时钟周期内总共可输出32个光栅化的像素。

  光栅器所生成的像素将被发送至Z坐标压缩(Z-cull)单元。Z坐标压缩单元获取像素图块(Pixel Tile)并将图块中像素的深度与显存中的现有像素进行比较。完全处于显存像素后面的像素图块将从流水线中剔除,从而就不再需要进一步的像素着色工作了。

PolyMorph引擎与Raster引擎加入对GF100的GPC架构具有重大意义:

  PolyMorph引擎与Raster引擎的加入让GPC架构在平衡图形流水线方面实现了巨大突破。Tessellation(曲面细分)需要全新级别的三角形与光栅化性能。PolyMorph引擎为三角形、Tessellation(曲面细分)以及流出(Stream Out)等方面实现了大幅性能提升。四个并行Raster引擎在三角形设置与光栅化方面能够提供持久的高吞吐量。通过为每一个SM配备一个专用的Tessellator、为每一个GPC配备一个Raster引擎,GF100所能够实现的几何性能可达GT200的8倍。

GF100架构分析:第三代流处理器群(SM)

  从G80到GT200再到GF100,NVIDIA GPU的流处理器群(SM)已经升级至第三代,每一代各部分单元的配比都不一样。第三代SM在架构上引入了多项革新,使其不仅成为迄今为止最强大的SM,而且还是可编程性最强、效率最高的SM。

  GF100架构每个SM都有32个CUDA处理器,达到了之前SM中处理器数量的四倍。GF100的CUDA核心专为在着色器的任何负荷下均实现最高性能以及最高效率而设计。通过采用全标量架构,无论输入向量尺寸如何,都能够实现全部性能。Z缓冲区(1D)或纹理存取(2D)方面的操作均可充分利用GPU资源,再不受旧有的固定4D算法的约束。

  每一个CUDA处理器都拥有一个完全流水线化的整数算术逻辑单元(ALU)以及浮点单元(FPU)。GF100采用了全新的IEEE754-2008浮点标准,能够为单精度以及双精度算术提供融合的乘法加法(FMA)指令。FMA在一个最终的四舍五入步骤中即可完成乘法与加法运算,改进了乘法加法(MAD)指令,在加法中不会损失精度。FMA在处理紧密重叠的三角形时能够最大限度地减少渲染错误。

  在GF100中,全新设计的整数ALU支持所有指令全32位精度,符合标准编程语言的要求。整数ALU还经过了优化,可有效支持64位以及更高精度的运算。它支持各种指令,其中包括Boolean、移位、移动、比较、转换、位字段提取、位反向插入(Bit-reverse Insert)以及种群统计。

GF100流处理器群的载入单元与存储单元:

  每一个SM都拥有16个载入/存储单元,从而在每个时钟周期内均可为16个线程运算源地址与目标地址。支持的单元能够将每个地址的数据载入和存储到高速缓存或DRAM中。

GF100流处理器群的四个特殊功能单元:

  特殊功能单元(SFU)可执行抽象的指令,例如正弦(sin)、余弦(cosine)、倒数和平方根。图形插值指令也在SFU上执行。每个SFU在一个时钟周期内针对每个线程均可执行一条指令,一个Warp(32个线程)的执行时间可超过八个时钟周期。SFU流水线从分派单元中分离出来,让分派单元能够在SFU处于占用状态时分发给其他执行单元。复杂的程序着色器在特殊功能专用硬件上的运行优势尤为明显。

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