What is Fermi?(4)
变化巨大 SM架构解析
既然NVIDIA宣称在GF100上采用了第三代流式多处理器(Streaming Multiprocessors,简称SM阵列)设计,那么我们接下来就再来看看,NVIDIA在SM阵列设计上发生了什么样的变化。
NVIDIA表示,在第三代SM阵列架构方面引入了多项改进,能够让SM阵列性能更加强大,并且在可编程方面以及效率方面也将会获得很高的提升。
流式多处理器(SM)解析
NVIDIA每次进行架构方面的调整,都会对SM阵列当中的流处理器(在GF100中,NVIDIA称之为CUDA Core,CUDA核心)数量进行调整。在G80当中,每组SM阵列包含有16个流处理器;而到了GT200核心之后,SM阵列当中增加到了24个;最新的GF100当中则提升到了32个。另外,除了最新的GF100,原有的G80以及GT200核心当中,均为8个流处理器为一组,G80的一个SM当中包含两组,GT200的SM当中为三组。在GF100核心当中,不再刻意为流处理器核心进行分组。
Writer/WhatisFermi4_D423/SM_thumb.jpg" width="260" border="0" /> SM阵列逻辑架构图
从图中可以看到,每个SM阵列均包含了一个Instruction Cache(顶部蓝色方框,指令高速缓存,负责接收存储线程块)、两个Warp Scheduter(第二行两个橙色方框,Warp调度器,负责为后面的Core将线程块分解为线程)、两个Dispatch Unit(第三行两个橙色方框,分派单元,负责分派由Warp调度器分配后的指令)、Register File(第四行蓝色方框,寄存器文件,存储分派单元的warp)、32个CUDA Core(绿色正方形方框,CUDA核心,负责运算指令)、16个Load/Store Unit(核心右侧标有"LD/ST"的绿色方框,载入/存储单元,负责运算线程地址)、4个Special Function Unit(最右侧标有“SFU”的绿色方框,特殊功能单元,负责执行其他抽象指令)、64KB Shared Memory/L1 Cache(倒数第5行蓝色方框,64KB高速缓存,可灵活划分为共享存储器和L1缓存使用)、Uniform Cache(倒数第四行蓝色方框,统一高速缓存)、4个Texture Unit(倒数第三行深蓝色方框,纹理单元,进行纹理填充)、Texture Cache(倒数第二行蓝色方框,纹理高速缓存)以及PolyMorph Engine(最下一行黄色方框,多形体引擎,曲面细分的主要部分)。