HD7970脱胎换骨全测试!5年架构大革命
第二章/第十节 真正的并行计算架构:GT200只为计算优化
G80的MIMD架构开了一个好头,128个流处理器虽然听起来虽然没有AMD 320个那么多,但这些流处理器是可以媲美真正的CPU核心,在执行任何指令时都能发挥出接近理论值的性能,这样高效率的核心如果只是用来玩游戏岂不太可惜了?
于是在游戏市场大获全胜的NVIDIA并没有止步于此,而是将目光放在了更长远的高性能计算领域,一边着手开发基于GPU计算的应用程序中间件,帮助程序员以更高效的方式开发基于GPU硬件加速的软件,另一方面在G80的基础上继续优化核心架构,将MIMD架构高效率的优势发挥到极致!
GT200核心:真正的并行计算架构
G80依然只是为DX10 3D渲染而设计的,虽然MIMD架构本身能够胜任并行数据计算的需要,但NVIDIA发现图形架构还有继续改进的余地,只要在核心内部设计全新的控制模块,并对微架构进行专门的优化,就能将GPU的图形架构改造成更加适合非图形领域的并行数据处理架构。
第一代统一渲染架构的主要目的是把原本像素着色、顶点着色以及新增的几何着色,统一交给流处理器来处理。而NVIDIA的GT200核心则被称为第二代统一渲染架构,其主要含义就是将图形处理架构和并行计算架构完美的结合起来,成为一颗真正意义上的通用处理器,超越图形处理器的概念!
GT200相对于G80,不止是把流处理器数量从128个扩充到240个这么简单,其实最关键之处是对TPC(线程处理器簇)和SM(流处理器簇)的改进:
新增Atomic原子操作:透过原子操作,硬粒化之后的线程操作管理将更加有序和具体,这也就意味着像素或者其他类型如通用计算应用的Thread的生成、仲裁、泵送、内存位置确定和执行过程都将变得更加精确和高效,Atomic单元和原子操作的引入也为未来NVIDIA构架最终实现并行化设计起到了关键的先导作用。
每个SM可执行线程上限提升:G80/G92核心每个SM(即不可拆分的8核心流处理器)最多可执行768条线程,而GTX200核心的每个SM提升至1024条,而且GTX200拥有更多的SM,芯片实力达到原来的2.5倍!
每个SM的指令寄存器翻倍:GTX200与G80核心在SM结构上基本相同的,但功能有所提升,在执行线程数增多的同时,NVIDIA还将每个SM中间的Local Memory容量翻倍(从16K到32K)。Local Memory用于存储SM即将执行的上千条指令,容量增大意味着可以存储更多的指令、超长的指令、或是各种复杂的混合式指令,这对于提高SM的执行效能大有裨益。
DX10游戏会越来越多的使用复杂的混合式Shader指令,一旦排队中的超长指令溢出或者在N个周期内都排不上队,那么就会造成效率下降的情况,此时双倍寄存器容量的优势就体现出来了。由于Local Memory并不会消耗太多晶体管,因此将其容量翻倍是很合算的。
纹理单元数量提升,比率下降,达到了ATI当年鼓吹的3:1水平
其它改进还有:几何着色性能提升,提高双指令执行(Dual-Issue)效率,达到93%-94%之多,支持双精度64Bit浮点运算,运算能力为单精度的1/8。
综合来看,GT200除了流处理器、纹理单元、光栅单元这些硬货数量增多对游戏性能大有裨益以外,其它细节部分的优化跟游戏关系不大。因为GT200是为并行计算而设计的,从GT200开始,GPU计算变得更加实用和普及,NVIDIA的Tesla开始进入科学实验室,并杀进超级计算机市场。