在未来的计算应用中,GPU承担的任务将愈来愈重要,无论高清3D渲染、高清视频播放,还是科学计算程序,都可以找到GPU的身影,也正因为如此,GPU在计算系统的地位日趋重要,甚至达到可与CPU分庭抗礼的地步—在半年之前,nVIDIA掀起一场与英特尔的口水战就是最好的例证,nVIDIA认为GPU的重要性将逐渐超越CPU,用户投资GPU将能获得更高的效益。这场口水战虽然没有得出什么结论,但也从侧面看出GPU已经底气十足。 nVIDIA与AMD都保持每隔一年半更新换代的节奏,现在距离上一次GPU更新换代已经超过一年半时间,新一轮的GPU大战已然拉开序幕:nVIDIA在今年6月份推出开发代号为“GT200”的GeForce GTX 200系列图形处理器,AMD则针锋相对带来代号为RV770的Radeon HD 4800 系列产品,并祭出多芯片显卡方案来与nVIDIA争夺3D性能的王座。这场大战不仅让许多3D玩家关注,也将对通用计算的未来发展产生关键性的影响 6月17日,nVIDIA正式将代号为GT200的新一代GPU公诸于众,其正式名称为GeForce GTX 200系列,nVIDIA先期推出针对高端市场的GTX 280和GTX 260,开始新一轮的更新换代。GeForce GTX 200基于nVIDIA的第二代统一渲染架构,它依然采用“巨无霸”芯片的惯有设计——GeForce GTX 200集成的晶体管数高达14亿个,比过去任何一款GPU都来得复杂,Intel Core 2 Quad、AMD Phenom X4之类的X86处理器在它面前基本不值一提。GeForce GTX 200采用台积电65纳米工艺制造,芯片DIE面积高达546平方毫米,它也是迄今为止最大的GPU芯片。 与此对应的是,GeForce GTX 200的性能提升相当令人兴奋。相比同级GeForce 8或GeForce 9芯片,GeForce GTX 200系列GPU的平均性能增幅在1.5倍以上,能够胜任更复杂3D画面的渲染,同时也会给AMD更大的压力。 GeForce GTX 280 GPU实物照片 第二代NV统一渲染架构 nVIDIA的统一渲染架构之旅始于G80,统一渲染架构是微软在DirectX 10中所提出的新概念:即利用一个通用的计算单元来取代传统的顶点渲染单元(Vertex Shader)与像素渲染单元(Pixel Shader),其优点在于硬件利用效率更高,也具有更强的可编程性。GeForce GTX 200同样基于该架构,我们甚至可以将它简单看作G80的扩展。 我们知道,G80拥有128个流处理器,这些流处理器被平均分配在8个TPC(Texture Processing Clusters)阵列中,每个阵列包括16个流处理器并分为两组,以及8个纹理单元。GeForce GTX 200在这方面有了可观的增强:它拥有240个流处理器,这些流处理器被分布在10个TPC阵列中,每个阵列包含24个流处理器(被划分为3组)以及8个纹理单元,并共享L1缓存—从这些直观的对比中,我们不难看出GeForce GTX 200仍奠基于G80之上。与流处理器数量提升相对应,GeForce GTX 200的纹理单元数量达到80个,ROP光栅处理器数量则提升到了32个,各项规格都有了全面性的提升。 GeForce GTX 200的流处理器架构示意 GeForce GTX 200继承了G80的频率异步模式,即渲染单元(流处理器)的频率与GPU核心频率(主要指纹理单元和ROP单元)以异步的方式运作,以此大大提升显卡的浮点计算能力。其中,旗舰定位的GeForce GTX 280的核心频率为600MHz,流处理器频率则达到1300MHz,理论计算能力高达933GFLOPS,相比GeForce 9800GTX的432GFLOPS提升一倍多。 与计算能力的跃升相匹配,GeForce GTX 280的显存规格提升到了1024MB/512bit,带宽从70.4GBps提升到了140.8GBps,相比GeForce 9800GTX同样提升整整一倍,从而避免出现显存资源拖性能后腿的情况。在容量方面,GeForce GTX 280、GTX 260分别内建1GB和896MB的显存容量,也比上一代GPU提升了一倍。 针对通用计算的加强 一款GPU能够具有多高的通用计算,不仅决定于GPU的硬件指标,与其内部设计关联更大。在这一点上,GeForce GTX 200发扬了G80的优良传统,不过更为关键的是引入了SIMT(Single instruction-multiple thread)单指令多线程架构,从而保证GeForce GTX 200的每个线程处理器能够全负荷工作。 GeForce GTX 280与Penryn的DIE面积对比,后者仅为GeForce GTX 280的五分之一不到。 必须提到的是,GeForce GTX 200执行通用计算指令的方式与传统的CPU完全不同—CPU灵活性极高,可以执行标量和矢量程序指令,但付出的代价就是计算性能很难有跨越性的提升;而GeForce GTX 200的流处理器均为标量计算单元,在执行纯粹的数学计算指令具有很高的效率—这些指令包括科学计算、气象预报、DNA建模、物理计算等等,基本覆盖了各类需密集计算的场合。 我们不妨进一步分析GeForce GTX 200如何来执行这些计算指令。前面我们介绍过,GeForce GTX 200拥有10组TPC阵列,每组TPC包含24个流处理器,而TPC阵列与流处理器对应的计算指令并不相同:TPC阵列支持MIMD(多重指令,多重数据)模式的指令,这些指令具体进入到流处理器之后,流处理器所面对的其实是SIMT(单一指令,多重线程)的情况—作为标量计算,SIMT模式无需设置矢量宽度,故而流处理器单元可以全速执行运算。 GeForce GTX 200的TPC阵列,该阵列包括平均分成三组的24个流处理器。 在线程管理上,GeForce GTX 200也远远强于上一代GeForce 8和GeForce 9系列;后两者的每个流处理器可应对96个线程,支持的总线程数达到12288个;而GeForce GTX 200的每个流处理器可支持128个线程,加之流处理器数量提升到240个,支持的线程数也猛增到3万个以上。不仅如此,GeForce GTX 200的线程切换极其高效:倘若某个特殊线程在执行过程中需等待内存访问,那么流处理器会迅速切换到另一个线程,继续执行运算任务,不会出现资源闲置的不良情况。 除了流处理器数量提升外,GeForce GTX 200的内部设计也专门针对通用计算进行加强,例如TPC内局部缓存的容量比GeForce 8和GeForce 9均增加一倍,更大的局部缓存可以允许更长、更复杂的计算指令。另外还有一项非常重要的改进就是支持64bit双精度浮点运算—GeForce GTX 200的每一个TPC阵列内都包含3个双精度64位浮点运算单元,相当于每8个流处理器共享一个双精度浮点单元,这样GeForce GTX 200总计拥有30个双精度单元,这一特点主要针对高端科技、大型工程以及金融领域运用,以及那些需要高精度的计算任务。 (xiayuxiao78) |