NVIDIA GeForce GTX 280测试报告(2)

时间:2008-12-17   来源:pcinLife   网友评论:0   人气: 931 作者:


 

GT200体系结构概述

GT200属于革新性的体系架构,其宣传口号是所谓的Gaming Beyond和Computing Beyond,这两句口号要是直译的话肯定会非常别扭,要了解其含义还是先让我们看看GT200这枚GPU的研发目标。

GT200的 设计目标

根据NVIDIA的文件,NVIIDA的工程师在设计GT200的时候订立了如下必须实现的目标:

  1. 设计一枚达到GeForce 8800 GTX两倍性能的处理器;
  2. 为适应使用更复杂shader以及更大内存的未来游戏在架构设计上作重新的衡量;
  3. 改进每瓦特以及每平方毫米性能;
  4. 改进Geometry Shader和Stream Out等DX10特性的性能;
  5. 显著提升CUDA高性能运算应用程序以及GPU物理加速的性能;
  6. 提供改进的电力管理能力,包括在闲置状况下显著地减少用电。

在业界共同为实现Moore's law的强力推动下,GT200要实现上述目标是有一定工业基础的,但是制造工艺只是芯片设计目标实现的一个重要前提,体系架构本身的重新修订其实也是相当复杂的事情,并非在图板上复制几个模块就了事的。

GT200/GeForce GTX 280工艺与体系结构

GT200是NVIDIA基于该公司第二代统一着色器及计算架构的第一款产品,架构归属于为G100,在性能上相对上一代的产品(G80)来说快大约50%到100%。

GT200采用TSMC 65nm工艺生产,芯片面积为576平方毫米,拥有14亿晶体管。

这个面积规模接近Intel 90纳米工艺的Montecito内核Itanium 2(596平方毫米,17.2亿晶体管),而后者一半以上面积都是密度较高的SRAM。

GT200大部分的晶体管都消耗在各种晶体管密度较低的运算单元电路(NVIDIA表示这部分的晶体管数量达到了80%)、单元间的Interconnector上,当然GT200也有不少晶体管是用在SRAM只是比例上远不如现在的通用处理器那么多。

GT200的interconnector依然采用crossbar总线连接,这样的interconnector方式在延迟上要比ring bus表现更好,而且方便实现容错设计,加上NVIDIA在crossbar上经验,其性能/成本比例控制在合理的水平上。

NVIDIA上一代的统一着色器/运算架构——G80有不少被被证明是成功的特性,例如庞大的线程处理器、share memory、标量化的流处理器等,这些特点都在GT200上被沿用下来,并且依据性能/成本以及性能/耗电为出发点在不同程度上作出了调整或保留原规模。

  G80 G92 GT200

制造工艺

90nm 65nm 65nm
       

统一着色器架构

是[第一代] 是[第一代] 是[第二代]
       

流运算内核(SM)频率

1350 MHz 1688 MHz 1296 MHz

固定单元(TMU/ROP)频率

575 MHz 675 MHz 602 MHz

内存总线频率

1800 MT/s 2200 MT/s 2214 MT/s

内存总线位宽

384-bit 256-bit 512-bit
       

纹理/处理器簇(TPC)数量

8 8 10

每个TPC内的流运算内核(SM)数量

2 2 3

流运算内核(SM)总数

16 16 20

流处理器(SP)总数

128 128 240

标量架构

       

SM寄存器容量

8KB 8KB 16KB

IEEE-754 FP32

全速 全速 全速

IEEE-754 FP64

不具备 不具备 1/8速度

scratch pad容量

16KB 16KB 16KB

threads per Warp

32 32 32

Warps per SM

24 24 32

threads per SM

768 768 1024

threads per GPU

12,288 12,288 30720

 

     

每个TPC内的纹理/理器单元数量

8 16 16

每个TPC内的纹理拾取单元数量

16 16 16

纹理处理单元总数

64 128 160

4D INT8纹理处理能力(binlinear)

18.4G Tex op/s 43.2G Tex op/s 48.16G Tex op/s

4D FP16纹理处理能力(binlinear)

18.4G Tex op/s 21.6G Tex op/s 24.08G Tex op/s
       

晶体管数量

681M+5M 754M 1400M+5M

关于GT200,实在有太多资料需要给大家逐一讲述,上面的表格其实尚未完全包容下GT200与上一代架构的区别之处,我们后面将会以TPC、TMU/ROP/IMC两部分展开详细的阐述,不过在这之前可能有些读者需要了解GPU的演进历程以及回顾一下G80(Tesla第一代架构)。

GPU的演进历程与Tesla架构各单元的角色

在PC上,第一枚GPU是NVIDIA在1999年推出的GeForce 256,这枚GPU集成了一个功能固定的32位浮点单元用于顶点变换与打光,此外还有一个功能固定的pixel-fragment定点数流水线,编程接口为OpenGL及微软DX7 API。

2001年,NVIDIA推出了第一个拥有能够对顶点进行编程的Vertex Shader(顶点着色器)以及拥有可配置(configurable)32位浮点Fragment流水线(这个部件被NVIDIA称为Texture Shader)的GPU——GeForce 3,编程接口为OpenGL和DX8 API。

2002年,ATI推出了第一款DX9 GPU——RADEON 9700,RADEON 9700拥有支持Pixel Shader 2.0的24位浮点可编程fragment处理器,编程接口为OpenGL和DX9。而后NVIDIA推出了拥有32位浮点可编程fragment处理器的GeForce FX GPU。

在2005年,xbox 360内置的Xenos首次实现了统一着色器架构,能够让定点处理和像素处理在同样的处理器上执行。

2006年11月,NVIDIA推出了针对PC的统一着色器架构——代号G80,这个架构也被命名为Tesla架构,G80是这个架构的第一代产品,而我们今天介绍的GT200则是Tesla的第二代架构。

NVIDIA在2008月3月首次在IEEE上发表了Tesla架构的全部细节,供IEEE的读者参阅。


IEEE文档NVIDIA TESLA: A UNIFIED GRAPHICS AND COMPUTING ARCHITECTURE的配图

在Tesla架构中的所有可编程运算都是由SPA完成,SPA是streaming processor array的缩写,其实就是几个TPC组成的整个阵列。

与显卡本地内存操作直接相关的色彩以及深度帧缓存是由内存控制器(MC)以及固定功能的光栅操作器(ROP)完成的。

在SPA和ROP之间的Interconnection Network负责把计算好的pixel-fragment色彩和深度数值从SPA带到ROP,并把SPA的纹理读取请求发往内存控制器,让SPA透过L2 cache读取来自DRAM的数据。

在上图中余下的其他单元负责向SPA递交input work(输入工作任务),其中Input assembler(输入装配器)依照输入指令流进行顶点工作(vertex work)任务的收集处理。

Vertex work distribution负责把vertex work打包交付给SPA中空闲的TPC,TPC就会执行vertex shader程序,如果有指示的话还会执行geometry shader程序。

TPC执行的结果会被写到GPU的片上缓存(buffer),这些buffer会把数据转发到viewport/clip/setup/raster/zcull功能模块,完成顶点光栅化为pixel fragment的处理.

这些pixel fragment会被pixel work distribution递交给空闲的TPC来完成pixel-fragment运算处理。

完成了pixel shader处理的pixel fragment会被Intercnnection Network传送至下游的ROP完成色彩、深度以及可能的多彩样计算。

而Compute work distribution这个东西在NVIDIA一般的G80文档中是极少透露的,按照NVIDIA这份在IEEE发表的文档,Compute work distribution负责把compute thread array(运算线程矩阵)分发至SPA中空闲的TPC,由SPA同时对多个逻辑流完成处理。

在Tesla架构中为了实现独立的电力、性能优化,有针对GPU单元、处理器、DRAM以及其他单元的多个域区频率。以GeForce 8800 GTX为例,TPC中的SM运行于1.35GHz,TPC中的纹理单元运行于内核一致的575MHz,SM和内核频率的频率比率可以随意调整,只要GPU的体质可以的话...


 

文章评论