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处于占用状态时分发给其他执行单元。复杂的程序着色器在特殊功能专用硬件上的运行优势尤为明显。