| 第8页:夺面双雄第一面:GT200并行计算架构 |
可以说,NVIDIA在开发GT200时更多的考虑是如何将其并行计算能力发挥到极致,下面以Geforce GTX 280为例来分析一下GT200的并行计算架构(Parallel Computing Arthitecture)。GT200庞大的核心Shader阵列和新增的功能单元,更多是出于提升并行计算的能力和效率而设计的。

GT200并行计算模型包括一个庞大的TPC线程阵列,共有10组,每组TPC阵列拥有一个基于硬件的线程管理器(thread Scheduler)、材质纹理缓存(Texture caches)、L2纹理缓存、显存界面单元(Memory Interface units),纹理缓存通过“Atomic”单元来自动调整和控制对显存的读写访问操作。控制Combine内存访问,为实现更高效和更高带宽的内存读写操作。“”Atomic单元的功能是提供内存定址和减少并行,和并行数据结构管理。

和传统CPU当中片上缓存占据大部分芯片面积不同,GeForce GTX 200 GPU当中,大部分芯片面积都用来进行图形和计算处理。粗略的统计显示,CPU芯片当中只有20%的晶体管专门用来进行逻辑计算,而GPU芯片当中有80%的晶体管都用来进行逻辑计算。
每个SM单元共享16k缓存
GT200内部的每个TPC均集成3个TPA,NVIDIA在每个TPA均加入了16KB本地共享缓存。TPA单元中的线程处理核心不仅可以与同TPA中的其他处理器交换数据,与其他TPA单元中的线程处理也可以通过共享内存交换数据,不需进行读取、写入操作,也不用占用外部LI缓存,完全做到数据共享,这种架构设计会大大提升线程并行的效率,加速计算的速度,并且对各种类型的计算都有显著的加速效果,其实这种设计也是在将计算延迟降到最低。

一个TPC单元,在每三个SM模块阵列中拥有16k片上共享缓存,位于SM中的每个流处理核心与其它核心共享数据,而不需要去访问外部的显存部分。

线程处理器中包含3个部分,运算单元(包括浮点与整数运算)、寄存器,运算单元负责数据的浮点、整数及二进制位(bit)内存操作、,逻辑操作运算,寄存器组则相当于缓存的功能,负责数据的存储。
通过240个线程计算器与1300MHz的线程处理器频率,GeForce GTX 280可提供933 gigaflops的浮点运算能力,比G80的浮点能力翻了一番,对比目前顶级的酷睿2处理器则可以提供的30~50 gigaflops能力,高出了几十倍。另外我们需要注意的是,之前在比较GPU与CPU处理能力的时候总是忽略的整数性能的比较,这是因为之前用于GPU与CPU不同的程序,而如果GPU要真正通过CUDA架构涉及桌面级的主流程序运算,整数能力也就变得至关重要,因为3D以为的程序通常考验的是处理器的整数能力。不过无须担心,因为GeForce GTX 280的整数能力同样是目前顶级CPU的几十倍。