微軟DirectX 12性能測試

本帖最後由 Cm.Lui 於 2015-2-8 03:05 編輯

作為Windows系統最重要的功能之一,DirectX標準(以下簡稱DX)
停留在DX11時代已經過去5年多了,雖然期間有過DX11.1、DX11.2的小修小補,
但總體上依然沒什麼變化,這點升級不痛不癢。

5年多的時間足夠硬件升級一兩代了,DX11標準在某些方面已經落後了,
所以AMD期間自己搞起了Mantle API,相比DX11規範效率更高,
最終微軟也在去年3月份的GDC大會上公佈了DX12規範,同樣大幅提升了底層硬件效率。



今年月份的Windows 10技術預覽版發佈會上,微軟同樣也提到了DX12規範,
最新的9926 Build上已經開始支持DX12,現在DX12的大門已經打開了,
這樣一個新時代DX規範是否真的能給我們帶來驚喜呢?

Anandtech網站日前在微軟、NVIDIA及AMD的幫助下做了DX12性能測試,
儘管只是一個初步的預覽測試,而且問題還比較多,
但這畢竟是首個DX12的實際測試,心急的玩家不妨先來一睹為快。


去年GDC大會上公佈的DX12與DX11渲染時間對比

目前的DX12支持情況及WDDM 2.0

儘管Windows 10系統上已經有DX12支持了,不過DX12依然還在開發中,
即便是Windows 10自身其實也沒有完成,依然在完善中,所以這裡的測試只是早期的預覽,還有很多問題,
但足夠我們一窺DX12的驚豔。

從技術角度來看,DX12其實只是微軟計劃中的一部分,跟之前的DX11升級一樣,
DX12也需要全新的WDDM(Windows顯示驅動模型),
這裡就是WDDM 2.0,實際上WDDM 2.0可以說是微軟自從Vista系統上首次引入WDDM以來最大的一次變化,
而DX12則是Windows GPU生態系統上的一次大翻修。

R9 290X顯卡的WDDM 2.0狀態




GTX 980顯卡的WDDM狀態


微軟沒有公佈WDDM 2.0的具體細節——相關內容要在3月份的GDC 2015大會上才公佈,
不過WDDM 2.0是開啟DX12的基礎,內核及顯示驅動會增添新的功能以便支持DX12 API必需的功能。
與WDDM 2.0相關的就是DX12中的外顯內存管理、動態資源索引等功能,這些功能是目前WDDM 1.3所沒有的。

WDDM 2.0大動干戈意味著OS上的驅動要受影響,
除了微軟之外,AMD、NVIDIA現在也在準備WDDM 2.0驅動,目前還在開發中,
而且也不是所有的顯卡都支持新驅動,支持的硬件目前也依然存在很多問題。


AMD/NVIDIA硬件的DX12支持情況

總括而言,最新的硬件都可以支持WDDM 2.0,但不是所有的早期硬件產品都可以。
AMD的GCN 1.0架構(HD 7000及Rx 200系列)雖然支持WDDM 2.0,
但在StarWorm中遇到了問題,但之後的產品就沒問題。

NVIDIA的驅動目前只支持Kepler、Maxwell 1和2代架構,早期的Fermi不支持WDDM 2.0。
不過AMD和NVIDIA都在致力於向早期的GCN 1.0和Fermi架構產品提供DX12(以及WDDM 2.0)支持,
只不過不是現在,等到DX12上市了再說吧。


DX12的軟件平台支持

軟件平台的支持就好說了,微軟之前已經表態了,DX12是Windows 10專屬,Windows 7/8/8.1用戶就不要想了,
唯一的選擇就是升級到Windows 10平台,還好微軟提供免費升級的機會。

Star Sworm及DX12測試說明
目前還沒有哪個遊戲是正式支持DX12的,
不過微軟跟Oxide Games給Anandtech提供了一個新版本的Star Sworm星際蟲群demo,
這個遊戲原本是支持DX11和Mantle的,現在也可以支持DX12了。
這個遊戲其實之前針對Mantle的特性做了很多優化,比如支持100K個繪製命令(draw call),
原文還有個視頻。Link





測試平台配置及說明

這次的測試使用了AMD、NVIDIA提供的支持WDDM 2.0的驅動,N卡是349.56,A卡是15.200。
此外,由於DX12和驅動都還不是最終狀態,所以測試中也有很多問題,
微軟建議他們使用3GB及以上的顯卡,不過Aandtech表示他們使用了2GB顯存的顯卡,也沒發現什麼問題。

本次的測試使用了GTX 980(Maxwell 2)、GTX 750 Ti(Maxwell 1)和GTX 680(Kepler)顯卡,
AMD陣營的則是R9 290X(GCN 1.1)、R9 285(GCN 1.2)及R9 260X(GCN 1.1),
Fermi和GCN 1.0架構的顯卡因為驅動還不支持就沒測了。

CPU方面使用了Core i7-5960X,但通過降低核心和線程數模擬了Core i5以及Core i3處理器的情況,如下圖所示:


測試平台配置

首先來回答大家最關心的一個問題:DX12是否真如之前宣傳中那樣很強力呢?
答案是絕對地,如下圖所示,DX12的性能遠遠勝過DX11(不過這個項目裡略輸Mantle)


DX12測試之CPU並行性能

首先來看DX12規範下不同顯卡對CPU並行能力的測試。

GTX 980搭配2、4、6核下的DX12性能

R9 290X搭配2、4、6核下的DX12性能
DX11規範下基本是單線程限制,多核性能提升並不明顯,
DX12對多線程的利用就好得多了,可並行利用2-4核,不過再多的核心之後提升也不大了。
不過這裡的測試主要受限於設置,如果設置成100K Draw calls,那麼所有CPU其實都受制於GPU瓶頸了。

在CPU不受限制的情況,任何超過4核的處理器都有些浪費了,不過這也意味著DX12不需要太多的多線程處理器。
對比AMD和NVIDIA,DX11下二者的性能差別也非常大,
這裡的測試中A/N兩家都是CPU瓶頸而非GPU瓶頸,但AMD驅動下的R9 290X性能只有NVIDIA的三分之一,
考慮到這個遊戲中AMD把重心放在了Mantle API上,不知道是不是AMD沒什麼動力再去優化DX11了。


DX12下雙核及四核CPU配置下不同顯卡的性能

批處理時間,越低越好

GTX 980在DX11下的的CPU佔用率

GTX 980在DX12下的的CPU佔用率

R9 290X在DX11下的的CPU佔用率

R9 290X在DX12下的的CPU佔用率

R9 290X在Mantle下的的CPU佔用率
DX12測試之GPU並行能力
前面的CPU並行能力測試之後再來看看Star Sworm在不同顯卡下的GPU並行能力。

4核處理器下的GPU並行能力

這裡的測試中CPU瓶頸開始變成GPU瓶頸了,Star Swarm開始青睞NVIDIA顯卡了(AMD情何以堪),
GTX 980性能領先R9 290X顯卡50%以上,GTX 680也領先R9 285顯卡25%,而真實遊戲性能上差距可沒麼大。

與此同時,由於AMD顯卡在DX11下性能差勁,所以AMD顯卡在DX12下提升非常明顯,
GTX 980從DX11到DX12只提升了150%,但R9 290X提升了416%,至於Mantle性能,我們之後再來詳細說下。


2核處理器下的GPU並行能力
搭配GTX 980的情況下,雙核CPU也足夠喂飽這個遊戲,
GTX 980顯卡在雙核與四核配置下從DX12獲得的性能提升是一致的,可以說即便是搭配較弱的CPU,
DX12依然能從中受益,至少在搭配強力顯卡的情況下是這樣的。

DX12、Mantle的對比及功耗測試
前面提到了AMD顯卡的Mantle及DX12性能,這裡就來單獨對比下吧。

搭配四核處理器的情況下,AMD的Mantle性能比DX12更高,雖然差距不是很大,
但多個測試中都是要比DX12高一些。造成這個現象的原因可能有很多
Mantle驅動優化的更好、應用程序開發的更好或者是在已知平台上雙方合作的更好,到底是哪個原因還不好確定,
不過可以說在AMD硬件上,Mantle的性能比DX12還要好一些。


雙核配置下的Mantle與DX12性能
另一方面,如果搭配雙核處理器,Mantle似乎就不能保持更好的性能了,
R9 290X甚至在Mantle下比DX12性能更差一些,雖然差距同樣很小。


批處理時間,越低越好
如果深入分析下draw calls的批處理時間,DX12的性能也比Mantle API更好,Mantle批處理平均用時要比DX12多一半以上。

mantle、DX11及DX12功耗測試
功耗測試中DX12及Mantle下的功耗都要比DX11要高,差距其實還是很明顯的,
在DX12及Mantle的支持下,CPU不再是瓶頸,GPU則有更多機會全速運行,功耗自然要升高。

中等畫質下的測試
之前測試的結果都是Exrteme畫質下的,這裡測試的是Mid中等畫質。

雙核配置下,GTX 980依然是唯一一個受到雙核瓶頸影響的GPU

四核下性能測試

DX12與Mantle、DX11的對比
DX12的幀時間測試及總結
最後的測試是記錄DX12、DX11及Mantle下的幀時間對比。

GTX 980在四核CPU下的幀時間

R9 290X在四核CPU下的幀時間對比
不論是GTX 980還是R9 290X顯卡,DX11下的幀時間都要高於DX12下的,
這意味著DX12性能比DX11高得多。而在AMD顯卡上,Mantle的幀時間表現跟DX12基本一致。

原文這裡也製作了多個視頻,有興趣的讀者自行去觀看吧。

總結:
總結這裡就長話短說,DX12還沒有最終完成,
相關的功能、開發者支持等還要等微軟在GDC 2015大會上公佈,
這裡的測試還是初步的,是DX12的開始而非結束。

微軟和合作夥伴們希望設計一種跨硬件平台但依然底層的全新API,
最終他們做到了,DX12在CPU效率及多線程上有著驚人的提升。









AMD Driver 又係 Buggy support.........
重要係最多人用既 GCN 1.0 ........

TOP

要新卡先可以全部support

TOP

提示: 作者被禁止或刪除 內容自動屏蔽

TOP

回覆 3# waikatang


    970 la

TOP

回覆 5# roll_done


    or 980

TOP

又要升window 10了

TOP