[配件]高科技三国志 AGP专业显卡大比拼
作者: 来源: 添加时间:2006-5-23 13:11:05我们也很高兴地看到3DLabs采用全新架构的野猫Wildcat Realizm 200显卡,这款产品带有512MB显存,性能强大,支持Vertex Shader 2.0和Pixel Shader 3.0。由于在对PS的支持上好于ATI的产品,3DLabs的Realizm和NVIDIA的Quadro系统又一定的起步优势。
对工作站级别的显卡进行评测在以往是一件比较需要技巧的事情,不过随着SPECviewperf 8.0.1的发布,评测工作得到了一定的简化。相对于之前的版本(7.X系列),SPEC确实的提高了他们测试软件的质量,可以更好的反映显卡实际工作中的性能。在下面的测试中,我们很高兴的加入了SPECviewperf的内容,SPEC记录下实际应用程序操作过程,直接向显卡发送OpenGL指令而无需具体应用程序(Maya、AutoCAD等)。SPEC提供的这个测试也是我们使用的唯一综合测试,其他测试都是在实际应用程序中完成的。
我们今天测试的显卡都是AGP平台产品,这主要是因为我们无法得到想要的PCIE平台来测试对应的显卡,而艾崴则愿意提供给我们DK8N主板。这块主板支持双路Opteron处理器,可以保证系统在测试中提供足够的CPU动力,让显卡充分表现自己。
在正式测试开始之前,我们先来看看待测工作站显卡GPU架构。ATI和NVIDIA的产品都是基于桌面芯片开发而来,大家不会太陌生,所以我们从3DLabs的野猫开始。
3DLabs的Wildcat Realizm 200

3DLabs的野猫Realizm 200高端AGP工作站显卡
在工作站显卡的世界中,固定功能处理仍然是主要内容,不过3DLabs似乎在技术上有些落伍了。新款野猫RealizmGPU支持几乎所有能想到的功能,包括VS 2.0和PS 3.0级别的编程功能。GPU本身包含1.5亿个晶体管,采用0.13微米制程。Realizm 200是目前3DLabs最高端的AGP平台产品,显卡上带有2颗GPU核心,通过顶点/标量单元连接,下面就是Realizm 200的架构图:

指令处理器(Command Processor)负责将系统发出的指令流传入GPU,支持同步AGP操作的NISTAT和NICMD寄存器。这块处理器可以让显卡在给定的时间间隔中完成恒定数据流操作,不支持同步AGP的显卡则会出现长度不定的延迟(根据芯片性能有所差别)。指令处理器的这项功能对于实时视频广播操作相当适合,当然这也需要应用程序的支持。目前我们还没有测试这项功能的方法。
Visibility单元通过分级Z轴算法实现可视化处理,可以同时检测大量数据,无需显示的内容将由Visibility单元立即舍弃。3DLabs表示他们采用的可视剔除算法在每个时钟周期完成最多1024的多重采样物体,这也就是可以完成16×16象素画面加上每个象素4×多重采样操作。3DLabs实现的实际上是256象素操作,和ATI的Z轴分级引擎一样。不过请大家记住,上面给出的数据是最大值,如果只是部分封闭的情况,那也只能将部分数据剔除。
3DLabs所说的“Pixel Array”实际上负责的是抗锯齿、复合端子输出、色彩转换、过滤以及其他最终图像输出需要的功能。这个单元的功能类似于NVIDIA GPU上的ROP。野猫的RealizmGPU支持多种格式输出,从传统的FP16数据到10bit透明度混合、10bit对照表。在基础硬件级别上,3DLabs将Pixel Array单元定义未16×16bit的浮点SIMD数组,也就是可以同时完成4个浮点16位RGBA象素处理。实际上,野猫Realizm所有的可编程处理单元都可以当作SIMD数组处理,我们也就可以通过数学手段来些计算:
Vertex Array:16路,高精度36位浮点SIMD数组,支持DX9 VS 2.0;
Fragment Array:48路,32wei浮点SIMD数组,支持DX9 PS 3.0;

对于Vertex Array,我们有一个16×32位的浮点SIMD数组。由于上面的芯片设计图上出现了2个物理Vertex Array,我们谈的又是SIMD数组,所以该芯片的每个数组可以最多完成8×36位。如果3DLabs跟随ATI、NVIDIA的趋势,那么这里就会划分成6+2的形式,在一个SIMD区块(6)上完成2个Vec3操作,另一个区块(2)上完成2个标量操作,也就是每个数组2个顶点管线。我们不知道SIMD单元的间隔,也不知道驱动怎样在这些单元上分配资源,所以我们无法算出每个时钟周期可以完成多少工作量。
同时,芯片中还存在2个物理隔绝的顶点数组,顶点处理区块之间共享寄存器和缓存。顶点引擎一共是36bit宽,多出的4个bit超过了其他产品的水平,使得最后的顶点计算中可以达到真正的32位精度。这样的设计可以保证高精度顶点的准确性,不过目前还没有哪个实际应用程序可以用到这样的功能。顶点硬件单元的准确性会在达到64bit后有较大的提高。CAD/CAM应用需要64bit的数据,但是目前的显卡硬件水平还无法提供。
野猫Realizm顶点引擎另一个值得关注的功能就是支持32个硬件级固定功能硬件光照和VS 2.0级别的功能(最大支持1000条指令)。3DLabs很有意思,他们的新产品不支持VS 3.0但却完全支持PS 3.0。从目前的情况来看,对固定功能的支持对于CAD/CAM市场而言更加重要,对于工作站市场也同样占据重要地位。不过geometry instancing功能也可以在处理满屏复杂物体、又限定几何结构的应用程序;顶点纹理对于DCC市场相当有用。应用程序一旦支持这样的功能,硬件厂商一定会提供对应的产品,不过我们真的很希望3DLabs可以拿出完全支持SM 3.0的产品。
Fragment Array包括3个物理区块,,组成一个48路、32位的浮点SIMD数组。这也就是说在任何时间每个物理区块都可以处理16×32bit的数据。演绎一下,每个物理区块都共享通用寄存器和缓存资源。3DLabs很可能已经在象素的分配(管线)上采用了类似ATI、NVIDIA的方式,不过我们目前还没有办法获得进一步资料。我们同样不清楚3DLabs是怎么组织自己的SIMD数组的,无法说出每个时钟周期的工作量。按照最糟糕的设计,野猫Realizm系列的每个物理fragment区块采用了4×4的SIMD单元,也就是当一个单元工作时三个单元处于闲置状态。不过事实很可能是3DLabs采用了更小的单元组合方式,可以将工作在单元上更好的分配,就像ATI、NVIDIA的设计一样。3DLabs采用的单元全部都是矢量单元,这也就限定了2、3、4三种方式的组合。
3DLabs的野猫Realizm 200采用4顶点/12象素管线架构,Fragment Array支持PS 3.0和256000指令长度的着色程序。这里的Fragment Array还可以在一个时钟周期完成32个纹理操作。
野猫Realizm系列将所有象素数据以32位浮点方式计算,不过存储却使用16位浮点形式(5s10)。数据精度可能因为数据处理和算法的不同而有所降低,但是GPU和内存之间的32-16位浮点转换将不会对性能造成影响。我们很难测试这个Fragment引擎的精度,3DLabs表示他们的精度在32位左右。我们同时听到未来野猫系列产品可以完全舍弃16位精度而转向全面的32位浮点,不过我们还没有看到驱动中出现这样的选项或是调整。
野猫Realizm另一项值得一提的功能就是虚拟内存。Realizm支持16GB的虚拟内存,可以让满足那些需要大量内存的应用程序。这样的应用程序在桌面PC平台不多见,但是在工作站领域就不少了。速度当然很重要,但比速度更重要的就是可以真实的看到自己需要的数据。如果数据和负载无法完全容纳在显存之中,野猫Realizm 200拥有的512MB显存也可能无法满足需要,虚拟内存技术就可以将系统内存拿来使用。3DLabs采用的虚拟系统不支持使用硬盘虚拟内存文件,也不由Windows操作系统来管理控制,而是由3DLabs的驱动来负责。
在显示输出方面,Realizm 2000可以超过900万象素面板、视频墙和多系统显示的极限。这块显卡带有2个10位400MHz的RAMDAC,2个双连接DVI-I接口,支持选配的MultiView套件(带有Genlock和Framelock功能)。