NV GTX680對GTX580:另一個視角


2年前,D3D11顯卡剛出來沒多久的時候,我曾經做過一個《NV GTX480對ATI HD5870:另一個視角》,用DX SDK的D3D11例子來對當時巔峰的顯卡進行各個單項的性能評測。時過境遷,現在NV GTX680已經上市,硬指標對比如下表所示。

GTX 680 GTX 580
制程(nm) 28 40
晶體管數量(Million) 3540 3000
Die大小(mm^2) 294 520
顯存(MB) 2048 1536
SM數量 8 16
核心配比 1536:128:32 512:64:48
核心頻率(MHz) 1006-1058 772
shader頻率(MHz) N/A 1544
顯存頻率(MHz) 6008 4008
像素填充率(GP/s) 32.2 37.06
紋理填充率(GT/s) 128.8 49.41
顯存帶寬(GB/s) 192 192.4
總線寬度(bit) 256 384
API D3D11.1
OpenGL 4.2
OpenCL 1.2
D3D11.1
OpenGL 4.2
OpenCL 1.1
Gflop/s 3090.4 1581.1
TDP(watts) 195 244
Gflop/s-watt 15.85 6.48

從指標上可以看出,GTX680的 SP數量急劇提高(512->1536),但SM數量見到原來的一半(16->8),所以每個SM內的SP個數從32猛增到192。這對scheduler是極大的考驗。

由於配置上的較大不同,性能能有多高看理論值不行,還是得實際跑程序才能知道。這次的評測仍然分三輪進行,分別評測傳統圖形流水 線,DirectCompute和Tessellation的性能。測試的機器仍是兩年前的Dell T5400 Workstation(Xeon E5440 4-core,4GB內存),依次裝上GTX580和GTX680。兩塊顯卡都是Zotac的公版。操作系統是Win7 64bit,使用傳統界面以消除Areo界面的PS開銷。顯卡驅動分別是Forceware 295.73和Forceware 301.10。DX SDK的版本是June 2010。

第一輪 傳統圖形流水線

第一論測試的是兩塊顯卡在游戲常見的場景中的圖形性能表現,選用的sample是Cascaded shadow depth map,contact hardening shadows, variance shadows 11和Dynamic shadow linkage 11。測試結果如下:

GTX 680 GTX 580
CascadedShadowDepthMap 332.04 337.63
Contact Hardening Shadows 1225.67 851.30
VarianceShadows11 305.40 309.83
DynamicShaderLinkage11 2716.49 2620.81

很失望吧,除了Contact hardening shadows,GTX 680並沒有比GTX 580提高多少,甚至還有所下降。但領先的那個例子恰恰是計算量和帶寬要求最大的。

第二輪 DirectCompute

盛傳GTX 680的GPGPU能力不如從前,第二輪就來測試DirectCompute這個GPGPU能力。

GTX 680 GTX 580
NBodyGravityCS11 675.10 374.28
AdaptiveTessellationCS40 1031.88 938.46
HDRToneMappingCS11 3308.63 2815.89

GTX 680在三個例子中都得到了領先的地位,最明顯的是NBodyGravityCS11,達到了1.8x的提升。我認為和這個例子的計算量大、但分支較少有關。一個SM包含那么多的SP,對於分支diverse的代價是很大的。

第三輪 Tessellation

Tessellation一直是NV的強項,這次GTX 680的tessellator再次有了提升。

GTX 680 GTX 580
DetailTessellation11 1077.48 983.20
PN-Triangles 2481.89 2376.34
SimpleBezier11 4373.63 3884.52
SubD11 923.32 578.62

也達到了全部領先的程度。最復雜的SubD11提升1.6x。

以上三個測試可以看到,GTX 680並沒有傳說中的GTX 580×3的性能,至少,在DX SDK sample的分辨率和復雜程度下沒達到。但是可以看到的一個趨勢是,對計算量和帶寬要求越大的例子,GTX 680的提升就越大,所以其實在大部分時候它的能力是沒有完全發揮出來的。分支的程度也比較影響GTX 680,所以應該在shader/kernel級別明智使用分支。另一個重要的事情在於驅動,對比2年前的測試,雖然GTX 580比GTX 480只是多了32個SP,但由於驅動的改進,性能卻有非常明顯的提升,部分例子甚至達到了3倍。目前GTX 680的驅動剛處於非常初級的狀態,相信過一段時間成熟了才會達到GTX 680的最佳狀態。

額外測試

在測完DX SDK的例子之后,我與順便測試了KlayGE的例子。這里選了兩個比較有代表性的例子,分別是Deferred和Forward流水線。分辨率是1280×800,高於DX SDK sample的800×600。

GTX 680 GTX 580
Deferred rendering 150.55 139.84
Shadow cubemap 267.38/330.78 259.08/239.07

Deferred rendering的例子情況類似於前面的評測。比較有趣的是Shadow cubemap的例子。和《不爭氣的geometry shader》 一樣,這里分別測試了6 pass cubemap和1 pass cubemap。斜杠之前的FPS是6 pass的。在以前的顯卡上,不管是NV還是AMD,通過geometry shader完成render to cubemap都比6 pass還慢。但在GTX 680上,GS終於翻身了,徹底打敗6 pass的做法。從這個角度也可以看出GTX 680的硬件性能提升。

總的來說,GTX 680並沒有官方宣傳的“恐怖”性能。但憑借工藝的進步,在那個Die大小的情況下能達到這樣的速度是很不容易的。期待下半年的旗艦GK110。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM