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!
GT200架构的每个TPC中,每三个SM共享一个纹理单元
在GF100之前的GPU中,SM与纹理单元在一种叫做“纹理处理集群”(TPC)的硬件模块中聚集在一起。而在GF100中,每一个SM都拥有四个专用独立的纹理单元,这样就不再需要TPC了。