What is Fermi?(2)

 

GTX480核心架构详解

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个)[注:ROP,即Raster Operator Units,光栅处理单元,其最大的作用是将一组渲染管线完成渲染后的数据,进行像素读/写操作、抗锯齿等操作,因此光栅处理单元的数量以及实际性能多少已经成为衡量显卡性能的另一大指标了。需要注意的是,目前两大传统显卡制造商NVIDIA和ATI采用了不同的显卡架构,因此在光栅处理单元数量上,并不具备单纯的比较性。]。

FermiImage GF100核心架构图(非GTX480/470)

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

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

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

你可能感兴趣的:(rmi)