◆ G200的平行计算架构解析
下图是GTX 280的平行计算架构,图上方描述的是一个基于硬件的线程分派器,线程分派器是用来安排TPC间的线程数。此外,我们还可以通过图了解到,GTX 280的计算模式包括纹理缓存以及内存单元。纹理缓存连接内存,以便达到更高效更快速的内存宽带读取。“atomic”指的是执行对内存读取—修改—写入能力。
『逻辑架构没有变化,只是各单元的功能发生了转换,另外Rop单元不参与』
每三个SM公用一个local shared memory(局部公用存储器),通过公用存储器,SM中的每一个处理器核心就可以与其他SM中的处理器核心共享数据,从而省去了读取或者写入或者一个外置内存子系统。这对GPU的计算速度以及效能有很大的帮助。架构是同一个架构,只不过在进行并行计算的时候,Rop单元不参与其中。
◆ SIMT架构体系
NVIDIA的统一hading和运算架构采用两种不同的处理模式。对于TPC的执行,架构是MIMD(多重指令,多重数据)模式;而对于SM执行,架构就成了SIMT(单一指令,多重线程)模式。SIMT对SIMD(单一指令,多重数据)从性能和每一条可编程序两方面加以改进。作为标量,SIMT并没有设置矢量宽度,所以可以全速执行运算,而不用估计矢量大小。
正好相反,如果输入数据小于MIMD或者SIMD 的宽度的话,SIMD会以低速运算。SIMT可以确保处理器核心一直处于完全被利用状态。从编程人员的角度看,SIMT模式允许每一条线程占据各自的路径。由于分支过程由硬件操控,所以没有必要在矢量宽度中管理分支。
◆ 大量线程同时运算
GeForce GTX 200 GPU支持超过3万个线程同时并行。对硬件线程的安排可以确保所以的处理核心都能达到100%的利用率。GPU架构为容忍延迟设计,如果某一个特殊的线程正在等待访问内存的话,GPU可以执行零成本基于硬件的内容切换,而且可以立刻切换成另一个线程,继续执行命令。
『GTX280的线程总数达到了30720条,比上一代顶级卡高几乎2倍』
SM内部的SIMT多线程指令单元可以在的32个平行线程组中创造、管理、安排以及执行线程运算,32个线程可以称之为32 “warps”。GeForce GTX 200 GPU可以支持大于32 warps/SM,而GeForce 8 or 9 Series GPU仅能支持24 warps/SM。每一个SM可以同时管理最多可以达到32 x 32或1,024条线程。GeForce GTX 280一共内建30个SM,也就是说,GTX 280可以支持30,720条线程同时运算(GeForce 8800 GTX仅支持12288条)。