30亿晶体管怪兽 全新颠覆性架构GF100
● 言归正传 了解Fermi架构GF100图形核心
我们知道全规格Fermi架构产品拥有512 CUDA Cores,而作为顶级的单芯产品GeForce GTX 480并没有标配全规格图形处理核心,而是缩减了1组SM后得到核心,这是让笔者和众多消费者没有想到的。不过笔者分析,GeForce GTX 480标配非全规格图形核心的原因主要有三:其一、该核心足以满足用户需求,同时能够镇压竞争对手顶级产品;其二、处于功耗以及成本方面的综合考虑;其三、提高GF100图形核心良率。当然这些仅是笔者个人猜测,不代表本站和NVIDIA官方意见,但无论怎样GeForce GTX 480的发布确实对图形核心发展有着重要的意义。
基于40nm工艺的GF100-375-A3核心
GeForce GTX 480标配的GF100-375-A3核心是由台积电(TSMC)采用40nm工艺制造,其共有32亿晶体管,是目前最庞大的图形处理核心。用于GeForce GTX 480的GF100核心拥有480个流处理器、60个纹理单元、48个光栅处理器,同时标配384bit显存控制器。
Fermi架构的GF100芯片相对于早期G80架构(G80架构影响了G8X、G9X和G200架构设计),除了常规的流处理器数量等参数升级外,Fermi架构相对G80架构做了重大调整,例如在Cache、SM架构等等方面做了改革,目的是让GF100核心适应现在甚至未来的用户应用需求。例如,Fermi架构图形核心引入了真正可读写L1/L2缓存,新增了Polymorph Engines和Raster Engines引擎等。
Fermi架构GF100核心 新增强劲神器引擎
当然仅是在数量优化上做改变还不能称为第二代CUDA架构,我们在GF100核心架构图和SM架构图上可以看到,相比G80/92和GT200核心架构多了Polymorph Engines和Raster Engines功能模块组。那么它们又是做什么的呢?
全新的Polymorph Engines和Raster Engines
我们可以这样简单的理解,在数据处理流程中的一些功能模块现组成了现在的Polymorph Engines和Raster Engines。其中Polymorph Engines包括Vertex Fetch、Tessllator、Viewport Transform、Attribute Setup和Stream Output,Raster Engines包括Edge Setup、Raterize和Z-Cull。
GF100对比RV870 Tessellation性能
值得一提的是DirectX 11中Tessellation功能是必不可缺的,而Tessellator并不是使用SP来完成,而是采用独立功能模块完成,在这一点上与AMD的做法一致。但不同的是,AMD的Tessellator采用串行计算模式,也就是说核心中只有一个Tessellator功能模块,数据计算从分配到接收Tessellator会成为瓶颈。反观NVIDIA的GF100核心,每组SM拥有一个Polymorph Engines,这也就意味着一个GF100核心拥有16个Tessellator功能模块,在Tessellation多数据并行计算方面GF100遥遥领先RV870。
Polymorph Engines和Raster Engines在GF100中的设计
前文提过每组SM都会标配一个Polymorph Engines,同时每组GPC将独立拥有一个Raster Engines,这样的设计都是增加各种数据计算的并行效果,相比RV870的非Shader计算串行设计要优越很多。
Fermi具备的光栅并行化是一个重要创新。NVIDIA称Fermi GF100是一个全新架构,不但是通用计算方面,游戏方面它也发生了翻天覆地的变化,几乎每一个原有模块都进行了重组:有的砍掉了,有的转移了,有的增强了,还有新增的光栅引擎(Raster Engine)和多形体引擎(PolyMorph Engine)。
光栅引擎(Raster Engine)
光栅引擎严格来说光栅引擎并非全新硬件,只是此前所有光栅化处理硬件单元的组合,以流水线的方式执行边缘/三角形设定(Edge/Triangle Setup)、光栅化(Rasterization)、Z轴压缩(Z-Culling)等操作,每个时钟循环周期处理8个像素。GF100有四个光栅引擎,每组GPC分配一个,整个核心每周期可处理32个像素。
多形体引擎(PolyMorph Engine)
多形体引擎则要负责顶点拾取(Vertex Fetch)、细分曲面(Tessellation)、视口转换(Viewport Transform)、属性设定(Attribute Setup)、流输出(Stream Output)等五个方面的处理工作,DX11中最大的变化之一细分曲面单元(Tessellator)就在这里。Fermi GF100产品中有16个多形体引擎,每个SM一个,或者说每个GPC拥有四个。
凭借多形体PolyMorph引擎,Fermi实现了全球首款可扩展几何学流水线,该流水线在单颗GPU中包含了最多16个Tessellation引擎。这些引擎在DirectX 11最重要的全新图形特性GPU加速Tessellation中能够发挥出革命性的性能。通过将更加细腻的几何图形融入到场景当中,Tessellation让开发人员能够打造出视觉清晰度极高、更加复杂的环境。锯齿边缘平滑了,从而使游戏中所渲染出来的人物能够拥有影院般细腻的画质。
在以前的架构中,固定功能单元只是单一的一条流水线。而在GF100,无论是固定功能单元和可编程操作单元都并行设计,这大大提高图形性能,也解决了GPU长期以来未有重大突破的性能短板。
多形体PolyMorph引擎的出现,是几何流水线近几年间不断演化的重大突破。特别是细分曲面操作,需要的三角形和光栅能力都异常可怕,传统GPU无法应对。多边形引擎的出现大幅度提高了三角形、细分曲面和流输出能力。通过给每个SM搭载属于自己的细分曲面Tessellation硬件单元,并为每个GPC搭载属于自己的光栅化引擎,GF100最终为我们提供了高达8倍于GT200几何性能。