自从NVIDIA的GTX480推出以来,网上能见到不少对比评测。但大家一般都是用3DMark之类大型的评测方法,得到的结果比较笼统。我在这里打算评测的方法是用DX SDK Feb2010的sample,对GPU的不同模块分开评测。这样的结果对于图形相关人员更有意义。
我的评测打算分三轮进行,分别评测传统图形流水线,DirectCompute和Tessellation的性能。测试的机器是两台Dell T5400 Workstation(Xeon E5440 4-core,4GB内存),分别装一块GTX480和一块HD5870。两块显卡都是公版配置。操作系统是Win7 64bit,使用传统界面以消除Areo界面的PS开销。显卡驱动分别是Forceware 197.41和Catalyst 10.3。
第一轮 传统图形流水线
第一论测试的是两块显卡在游戏常见的场景中的图形性能表现,选用的sample是Cascaded shadow depth map,contact hardening shadows, variance shadows 11和Dynamic shadow linkage 11。测试结果如下:
NVIDIA Geforce GTX 480 | ATI Radeon HD 5870 | |
CascadedShadowDepthMap | 402.7 | 366.4 |
Contact Hardening Shadows | 716.8 | 740.5 |
VarianceShadows11 | 391.2 | 346.5 |
DynamicShaderLinkage11 | 1151.2 | 998 |
从结果可以看出,对于传统图形流水线,GTX480 有一点优势。尤其是CSM和VSM这两个在不少游戏中都是用到的方法,GTX480分别比HD5870快了10%和13%。Dynamic shader linkage 11这个sample值得注意。Dynamic shader linkage是个D3D11的新功能,相当于让shader也可以使用虚函数的概念。在使用的时候只要访问接口,而实现部分可以动态link上去。对于 对付shader的组合爆炸有为有用。在这个sample里GTX480快了15%。Contact hardening shadows是唯一让GTX480败阵的例子(也许是因为这是个来自AMD的demo)。它的shader里面用了GatherCmpRed这样 D3D11新函数(ATI再D3D10.1里就开始发展Gather),而且涉及到大量的向量计算,更适合于HD5870的架构。
第一轮,GTX480小胜。
第二轮 DirectCompute
DirectCompute 是D3D11的重头戏,第一次把GPGPU带入了主流图形API。那么,在这两块显卡上,DirectCompute的性能又如何呢?这次选择的例子是 NBodyGravityCS11,AdaptiveTessellationCS40和HDRToneMappingCS11。注 意,AdaptiveTessellationCS40是用compute shader来实现tessellation,并非用硬件的tessellator,所以在这一轮出现。测试结果如下:
NVIDIA Geforce GTX 480 | ATI Radeon HD 5870 | |
NBodyGravityCS11 | 275.6 | 364.7 |
AdaptiveTessellationCS40 | 554.4 | 837.4 |
HDRToneMappingCS11 | 1710.9 | 3393.3 |
很显然,HD5870完胜,分别领先32%,51%和98%!这足以说明,ATI对DirectCompute的支持相当好。比如HDRToneMappingCS11是可以切换使用PS还是CS来进行post process的,在HD5870上,CS比PS稍微快一点,而在GTX480上,CS只有PS一半多点的速度。值得注意的是,从G80开始,NV的显卡在从GPGPU切换回Graphics pipeline的时候总会有一个不可忽略的开销。这使得程序如果需要来回切换,性能会受到很大的影响。不光DirectCompute如此,CUDA也是如此。
眼尖的同学一定会发现,OIT11这个sample用的也是DirectCompute,为什么没有参与?是因为我发现在GTX480上该sample运行结果不对,没法记入统计。
第二轮,HD5870大胜。
第三轮 Tessellation
D3D11在图形流水线中增加了Tessellation部分,使得Subdivision,曲面等精细活也可以简单地在实时渲染中呈现出来。NVIDIA宣传的时候非常注重Tessellation,号称最高比HD5870快8倍。是驴是马拉出来遛遛才知道,以下是测试结果:
NVIDIA Geforce GTX 480 | ATI Radeon HD 5870 | |
DetailTessellation11 | 1065.1 | 743.2 |
PN-Triangles | 731.4 | 715.6 |
SimpleBezier11 | 1217.9 | 1165.1 |
SubD11 | 471.7 | 360.9 |
眼镜小跌了一把。在这几个sample中,GTX480最多领先43%。其中两个简单的例子还只是<5%的优势。也许是因为这些sample都太简单,发挥不出GTX480的优势。
第三轮,GTX480小胜。
从这次的分块测试结果可以看出,DirectCompute和Tessellation分别是ATI和NV的强项,两者兼具的显卡还没降临地球。如果你做的是纯图形渲染,GTX480是个好选择。如果要作GPGPU+渲染,HD5870则好得多。
Comments