[转]
近期对显卡一直很感兴趣,所以一直在补习显卡方面的知识。今天觉得有点头绪了,总结一下。
首先,影响显卡性能的参数有很多,比如显卡的核心频率、显存频率、显存位宽、显存类型、管线或是流处理器的多少,以及显存大小等。现在大家要显卡的时候都会点名说“128位128兆”,当然这是对的,但是还要注意的是核心频率、显存频率和显存的类型,其他参数相同的一块DDR2和DDR3的显卡,显示能力是绝对不在一个档次上的。
其次,由于DX10的出现,显卡的架构由非统一架构转变到了统一架构(下文会详细解释),而“管线”的概念不再存在,转而出现的是“流处理器”这个名词。
现在DX9还是主流,而且主流的游戏都针对DX9显卡作了优化,所以我们先来看DX9。下面是用EVEREST检测到的一些数据。
图形处理器(GPU):
显示卡 nVIDIA GeForce 7900 GS
BIOS 版本 5.71.22.44.06
GPU 代码名称 G71GS
PCI 设备 10DE-0292 / 0000-0321
晶体管数量 278 百万
工艺技术 90 nm
核心芯片大小 196 mm2
总线类型 PCI Express x16 @ x16
显存大小 256 MB
GPU 时钟频率 (Geometric Domain) 621 MHz (原始频率: 620 MHz)
GPU 时钟频率 (Shader Domain) 601 MHz (原始频率: 600 MHz)
GPU 时钟频率 (ROP Domain) 601 MHz (原始频率: 600 MHz)
RAMDAC 时钟频率 400 MHz
像素流水线 20
材质单元/流水线 1
顶点着色引擎 7 (v3.0)
像素着色引擎 20 (v3.0)
DirectX 硬件支持 DirectX v9.0c
像素填充率 12020 兆像素/秒
纹理填充率 12020 兆像素/秒
内存总线特性:
总线类型 GDDR3
总线位宽 256 位
真实时钟频率 747 MHz (DDR) (原始频率: 750 MHz)
有效时钟频率 1494 MHz
带宽 46.7GB/秒
红色的数据就是核心频率/显存频率了,也就是621/1494。有的读者会问为什么有三个GPU时钟频率,可以这样解释,Geometric Domain=几何处理单元;Shader Domain=阴影处理单元;ROP Domain=光栅操作处理器单元(官网没有解释,这是显卡高手们自己翻译的)。下面我们来看一下管线的概念。
“管线”的全称应该是“图形渲染管线”。它好像是工厂的流水线一样,按照不同的生产指令来产生3D图形。通俗一点来讲,一条完整的渲染管线应该是可以独立完成图形渲染任务的所有处理单元的总合。所以管线的定义需要配合相应的API(应用软件接口程序)来进行,不同的API程序对管线的要求也是不尽相同的。以我们最常见的DirectX程序为例,一条管线包括顶点渲染引擎(VS)、像素渲染引擎(PS)、光栅化引擎(ROP)三个部分。
[color="#ff0000"]Vertex Shader(顶点渲染引擎):通常简称VS[/color],它的主要任务是生成3D图形的骨架——顶点。任何3D图形在计算机中,其实只是由两种形式的存在,即构成骨架的顶点,以及联结个顶点的直线。比如说我们生活中最常见的圆,但是计算机并不认为它是圆,而是正多边形,当然如果对精度要求很高的话,这个正多边形可以是正千边形,而这个正千边形的顶点就是由VS构建成型的,这就是VS的作用。
[color="#ff0000"]Pixel Shader(像素渲染引擎):通常被称作PS[/color],它的作用是继续VS后面的工作——在构建了图形的顶点之后,还需要处理图形表面的纹理、像素值、颜色等等的信息,使他们达到预期的效果。[color="#ff0000"]在PS引擎中,还可以详细分为“像素渲染单元”(Pixel Shader Unit简称PSU)及“纹理贴图单元”(Texture Shader Unit简称TMU)[/color]。前者负责像素的运算工作,比如游戏中的光影效果、HDR等都是通过PSU来实现的;后者主要负责纹理贴图的处理工作,比如岩石、水面的反光等等。
[color="#ff0000"]Rop(光栅化引擎)[/color]:此部分主要负者像素的最终输出工作,执行像素的读写操作、Z-Buffer检测,色彩混合、抗锯齿等操作。得益于上面3部分的密切配合,我们才能在计算机上看到栩栩如生的3D场景。当然,这3部分是我们将GPU抽象化之后,得出的最基本的元件,其实,GPU中还有很多其他的控制单元,这里就不一一介绍了。
在DirectX 8时代,VS、PS、POP单元是1:1:1的关系,即完整的管线在一次处理过程中,必须要经过VS、PS、ROP单元的处理。但是,目前主流的DirectX 9中,这一比例被打破,但最基本的图形处理过程仍旧没有本质的变化。知道了一条最基本的图形渲染管线的组成之后,我们大概了解到一个GPU最少应该具有一条完整的渲染管线,但是我们都知道,现在DirectX 9的环境下,一条管线很难完成图形渲染的需要,于是多条管线并行处理的结构诞生了。多管线结构带来的优点就是:工作效率显著提高,所以高端显卡的管线数量要明显多于入门级显卡,比如GeForce7900GT拥有24条管线,而GeForce 7300GT只有8条管线。
在管线数量相同的情况下,管线结构设计的进化也会影响GPU的性能,比如同是12管线的GeForce 7600GT与GeForce 6800GS相比,GeForce 7600GT性能较高。当然,影响显卡性能的参数还有很多,比如核心频率、显存位宽、显存频率、显存容量等。简单来说,GeForce7300GT(8管线)部分高频版的显卡的性能使者能好于GeForce7600GS(12管线)。
增加管线的数量得以提升显卡的性能,故市场上很多显卡都是以管线的数量来标定产品的性能,不过目前更多的显卡都标以“XX像素处理单元(即像素渲染单元PSU)”。像素处理单元和传统的管线又有什么关系呢?DirectX 9时代以来,VS、PS、ROP的比例已经打破1:1:1的比例,原因就是,[color="#003366"]由于3D技术的发展,管线的各部分负载压力逐渐变得十分不均衡。在图形处理工作中,VS能够很快地完成顶点的处理工作,但是PS却还在忙着处理贴图、纹理的数据,ROP部分也无法得到足够的信号来“开工”,结果PS单元成为了整个GPU的瓶颈。于是,管线中的PS数量开始得到增加[/color],PS的数量也开始成为衡量显卡的重要标准之一。VS:PS由最初的1:1发展到目前的1:3,PS单元的重要性在不断加强。
2005年底,GeForce7系发布后,ATI(AMD)也推出了Radeon X1000系列显卡,与以往不同的就是,Radeon X1000系列不在以“管线”的多少来恒定显卡的性能,取而代之的就是“像素处理单元”。据ATI的解释,游戏的处理过程经过了重纹理,到后来的纹理像素的平衡、再到现在的重像素三个阶段,而且按照游戏渲染方面的需要,未来的游戏会更加偏重于对像素的处理,而对纹理贴图的要求并没有提高很多,所以ATI就定不再单纯的增加管线的数量,而是单独增加PS中的PSU的数量,其实这还是在增强PS的作用,不过不同的是,PSU与TMU的比例发生了变化。
其实这一点nVIDIA其实也在实行,比如GeForce7900GTX中PSU得数量实际上是48个,采用两个一组的串行方案,但是nVIDIA仍以传统的24PS来标记24管线;而ATI的Radeon X1950XTX则标记为48像素处理单元(PSU),如果换算成传统的方式,X1950XTX则为8VS+16PS+16ROP,即16管线。48PSU实际被包含在16PS中(PSU:TMU=3:1),这就使ATI著名的3:1构架。由于PSU的大幅增加,使得ATI的显卡在一些偏重遇像素处理的游戏中大放光彩,特别是在复杂光影场景、HDR场景以及开启全屏抗锯齿之后,多PSU的优势一览无余。
从整体的性能上,我们可以大致认为ATI 3:1构架的显卡是普通1:1构架的1.5倍左右。也就是说如果某块拥有48像素处理单元(即16管线)的ATI的显卡,他的性能大致是与nVIDIA的24管线的显卡性能相当。
有了这些,我们反过头来再看上表的数据,在EVEREST中,
像素流水线 20 就是有20条管线
材质单元/流水线 1 就是每条管线有1个纹理贴图单元(TMU)
顶点着色引擎 7 (v3.0)
像素着色引擎 20 (v3.0) 就是每条管线有1个像素处理单元(PSU)
DirectX 硬件支持 DirectX v9.0c
像素填充率 12020 兆像素/秒 =核心频率*管线数量
纹理填充率 12020 兆像素/秒 =核心频率*管线数量*每个单元纹理贴图单元数量
1.jpg
(47.48 KB)
2008-2-11 16:54
-------------------------------------------------------------------------------------------
这个家伙很懒,什么也没留下......