| 第9页:让线程满负荷高效工作 SIMT架构解析 |
除了线程数提升到G80的2.5倍以外,SIMT(Single instruction-multiple thread)单指令多线程架构的引入,也保证了GeForce GTX 280的每个线程处理器可以全负荷工作。
GeForce GTX 280的TPC线程阵列使用的是MIMD多指令多数据的处理方式,而具体到TPA则是采用了SIMT。MIMD比SIMD(单指令多数据)更进一步强调了晶体管的执行效率,但是缺点是更加难控制,解决好了指令和数据的控制问题,MIMD就能真正的发挥威力,那么MIMD就是最高效和理想状态的体系结构。
而关于GeForce GTX 280能否解决好指令和数据控制问题我们根本就不需要担心,因为在G80时期NVIDIA的线程管理器设计功底就已经有目共睹,G80可以128个SP完胜R600的320PSU,线程管理器GigaThread就功不可没。

而在TPA中采用SIMT架构则更加完善GPU的整体执行效率。SIMT是由SIMD单指令多数据的处理方式中改进而来的,这种设计既能保证处理的效能,同时又兼顾了硬件的可编程性。
SIMT使用的是标量指令,这点与G80相同,不必再设置矢量指令的宽度,因此它们可以全速处理固定长度的矢量指令。相反的如果输入的指令长度更小,那么SIMT处理的速度也要比MIMD和SIMD要慢。因此SIMT可以确保每一个处理核心总是能够全负荷工作。从程序员的视角来看,SIMT也可以为每一个线程设定自己独立的处理路径,在对矢量指令的管理中,硬件可以自动进行分支,而不必分支管理器进行干预。
可执行多达3w的线程数量
其实单纯的比较这些浮点与整数的运算数值并没有太多意义,举个简单的例子,如果只论浮点预算能力,G80是无法与R600与RV770相比较的,但是我们知道G80核心的GeForce 8800 GTX所能提供的运算能力越是R600及RV770所无法企及的,这是因为NVIDIA在设计产品的时候不仅考虑到ALU的理论浮点运算能力(Flops),ALU的运算效率也同样是NVIDIA关注的重点。
从前文的GeForce GTX 280线程处理器分析中我们可以发现,GeForce GTX 280更像是一颗传统CPU的核心设计,整数和浮点运算,内存操作运算,逻辑操作等设计,GeForce GTX 280的每一个线程处理器是一个带有多重管线阶层的硬件级多线程处理器,硬件级别的线程调度确保所有的处理核心都100%满负荷运转。如果比较特殊的线程在等待访问显存,那么GeForce GTX 280的硬件级别的调度控制就可以马上顺序切换到后面的线程,让其他线程可以对显存进行不间断的访问,从而实现零等待的高效显存访问机制。
Chip |
TPCs |
SM per TPC |
Thread per SM |
Total Threads per Chip |
Geforce 8/9 |
8 |
2 |
768 |
12.288 |
Geforce GTX 200 |
10 |
3 |
1024 |
30.720 |
在TPA中的多重指令处理单元可以同时创建、管理、调度和执行32组并行的指令,在GPU中是以32个为一个“warps”组的形式执行的。Waps被线程调度部分分配到流处理器组SM中执行。一个SM包含8个处理器核心,每一个核心成为流处理器单元SP,或线程处理器,具备每线程一个指令的执行能力。因此,执行完毕一个32线程的Warp,SM单元需要4个处理时钟周期。
GeForce GTX 280具备32 Warps/SM的处理能力,而上代GeForce 8、9中仅仅具备24 Warps/SM的处理能力。G80可以处理的线程数是12,288个,GeForce GTX 280拥有10组TPC单元,每个TPC单元具备3个TPA单元,而每个TPA中可以运行1024个线程,那么GeForce GTX 280的最大线程数量可以达到30720个(1024线程/TPA x 3TPA/TPC x 10T PCs=30720)。
双精度支持
其实双精度浮点运算在民用领域涉及的并不多,主要集中在科学计算等领域应用,不过既然GeForce GTX 200作为并行架构处理器出现,那么支持双精度运算也就无可厚非了。
GeForce GTX 200 GPU架构当中,TPA核心内建一个双精度64bit浮点算术单元,达成全部30个双精度64bit处理核心。GeForce GTX 200中的专用流处理核心可以得到全速的双精度乘法运算(MAD),并且乘法运算使用线程处理器中的MAD单元,每个线程处理器可以进行三个浮点运算,将原始的顶点单元属性值,进行像素属性值的转换。

每个双精度单元可以执行1个fused累加,这种累加是1个双精度MAD指令,它完全遵循IEEE754R浮点标准。GeForce GTX 200 GPU当中全部10个TPC的双精度整体效能等于8核心Xeon CPU的效能,大约90gigaflops,而GeForce GTX 200的能够提供近乎1 Teraflop的单精度IEEE 754标准浮点运算能力。
