為什麼 DirectX 12 能極大地提升 AMD 顯卡的性能?
對於硬體的理解僅限於混混卡吧。
一百度「DirectX 12」就是各種文章表示性能提升巨大云云,A 卡多麼多麼猛。A 卡在 DirectX 12 下效率大幅度提升秒殺同級 N 卡。雖然這些文章似乎用的同一個論據就是 3Dmark 跑分。請問真是 A 卡這次提升超神了嗎?這麼說來,將來 Win10 配置電腦還是優先用 AMD 顯卡嗎?
瀉藥。
這個問題下現有的回答里民科內容太多。
DX12對顯卡本身的性能並沒有影響,但是因為新的API,驅動可以砍掉許多檢查和生成的步驟,縮短了從API到硬體指令的時間,節省了CPU。所以所有評測中關於「性能大漲」的部分,都是因為這些測試本身的瓶頸在於CPU上。
對於你的問題,最粗暴的答案也許就是:
DX12下的A卡,要和DX12下的N卡比。珍愛生命,遠離農企。請組織放心,農企不會倒閉,有索尼和微軟和因特二養著,實在不行還有傳言說某國內企業要買了它。以下是題外話時間:
至於為什麼(Mantle, Metal, DX12, Vulkan)這個事情是由A卡先發起,個人認為原因有兩點:
一是AMD的硬體團隊要比軟體團隊強勢的多。AMD軟體部門常年孱弱,而硬體又在Workload Scheduler上做了很多事情,所以他們應該一直都有進一步減少軟體層的衝動。NV的軟硬體相對平衡一些,驅動也更完善性能更好,所以他們並沒有太大的動力去做這件事情。
另外就是AMD從NGC時代開始就做主機,包括Wii,Wii U,XBox 360到這一代的PS4和XBox One。主機的API因為沒有什麼兼容性問題,又要壓榨硬體性能一直都是面向硬體而不是程序員,所以ATI/AMD也在此基礎上積累了大量的經驗,所以做出這麼一個極簡風格的API也就是情理之中的事情了。
當然我覺得Metal/Vulkan/DX12最大的受益者其實應該是移動設備。移動設備的通用計算資源比較少(內存/CPU),CPU Performance Bottleneck在Mobile設備上更容易發生,所以能得到的幫助更多,況且更少的計算也意味著同樣性能(如60FPS)下要更加省電。
首先,和Mantle、Metal等新API一樣,DX12的性能提升主要來自於減少了CPU上的開銷,GPU部分是一樣的。所以可以在現有的GPU上得到性能提升。
其次,從程序中提交一個Draw,數據需要經過App-&>DX runtime-&>User mode driver-&>dxgkrnl-&>Kernel mode driver-&>GPU。在到達GPU之前,全都是在CPU上執行的,這也正是DX12試圖降低的開銷。
第三,DX12把很多底層的東西暴露給App,由app去完整各種細節,比如同步。也就是說,同樣的代碼,本來在runtime和driver完成的,現在挪到了App里。所以App可以根據自己的需要來決定做哪些不做哪些,達到減少開銷的目的。
第四,從第三可以看出,同樣的事情,以前由runtime和driver完成的,現在由App完成。所以,遇上了AMD這樣的垃圾驅動,在app里完成無論如何不會比他差。所以,性能相比以前會有巨大提升。
第五,AMD的DX12驅動在開發的過程中得到了MS很大的幫助,幾乎可以說是手把手教他們怎麼做的。所以,性能再次有了提升。簡單來說:沒有AMD的mantle就不會有微軟的DX12.AMD的架構先天適合mantle/DX12的思想。一個簡單的draw,在到達GPU之前,要經過app,dx runtime,umd driver, dxgkernel,kmd driver,裡面不乏冗餘操作。減少其中環節,把靈活性直接交給程序開發者去實現,在特定情況下就可以在同樣硬體條件下極大提高性能。AMD正是基於這種思想開發了mantle,也正是mantle的出現倒逼微軟加速開發DX12. 因此NV在這局落後了。要知道gfx相關的很多黑科技都是AMD率先搞出然後被微軟吸收進Windows dxgkrnl的。
幾個誤區:
1支持最新的dx技術的顯卡,一定速度快?
參考dx10剛上市時候的若干顯卡,相同價位,支持dx10的顯卡性能都是被只支持dx9的上一代老顯卡吊打的。請記住,是否支持最新的dx技術,和顯卡的性能是否強勁,無必然關係。2購買支持最新dx技術的顯卡,一定畫面好?首先,國內的網遊不說百分之百,至少90/100還是用dx9開發的,別說你顯卡支持dx12,就是支持dx120,玩國內的遊戲,還是那個爛畫面。(當然,如果你是單機遊戲黨,你當我沒說,單機遊戲對新技術確實支持的很好)其次,就算你玩的是歐美大作,遊戲確實支持dx12,如果你的顯卡級別不夠高,其實遊戲還是帶不動,畫面再好,看幻燈片悠悠什麼意思?最近的巫師3,海飛絲特效,無數人又要升級顯卡了吧?3是否購買最牛逼的顯卡,玩遊戲一定不卡?不一定,看遊戲類型,網遊看cpu,單機看顯卡,大型讀圖遊戲請購買SSD。幾乎不同類型的遊戲,對於硬體的側重性都不一樣。網遊:畫面爛,但是角色多,人物多,要處理的事件多,因此需要很好的CPU.另外說一點,現在的網遊對於多核CPU的優化很爛,相同價位的CPU,主頻高的一定比核心多的要好。單機:畫面各種吊暴,就算你的是大幾千元的高端顯卡,在最高特效下,幀數感人。。。。所以這個量力而為吧,儘力買自己負擔的起的最貴的。大型讀圖遊戲:主要是歐美大型網遊,比如wow,購買ssd後,進入新地圖,新副本的讀圖的等待時間,比原來絕對縮短了一倍不只。結論:
A卡好~~主要是cpu端的api更快了,程序員的控制力更強,更利於多線程的發回,測試也主要集中在cpu端drawcall提交數量上。拋開A卡不說,dx12能夠利用多GPU,尤其是筆記本上的集顯和獨顯協同工作還是很期待的,這一塊倒是潛在的能對於渲染性能提升的地方--很多筆記本上的默認Intel HD4600戰鬥力還是挺強的。
之前透出的dx12測試是一個特殊的API調用測試,不同於真正的圖形性能測試(如3dmark跑分) ,API調用測試只關心cpu給gpu派任務的性能,而不關心gpu完成任務的性能。真實場景下後者才是大頭中的大頭。所以不要被這個測試結果誤導,實際真實提升會很微弱。但dx12另一項多顯卡混交倒是能帶來真正有意義的提升。
近一兩年就別想太多了,支持dx12的遊戲不會太多。
現在的遊戲開發商懶得去寫代碼支持DX12,支持DX11的遊戲都沒幾個,更何況是支持DX12了。
首先題主能把"廣為流傳的文章"鏈接貼出來嗎?
我猜測原因可能有:1.農企作弊了
2.DX12把一些驅動的活兒攬走了,於是大大弱化了農企的劣勢最後一個問題的話,其實1000以內我是建議A卡的,再高端目前可能農企性價比略勝一點,但是畢竟架構老,題主不妨期待不久之後的一大波新品。DX12是基於mantel的,mantel是誰的?是AMD的你懂了吧?DX12就是為GCN寫的。當塔希提都能支持一個12.1的時候,N卡只能支持一個基本的什麼特別功能都沒有的12.0。
推薦閱讀:
※為什麼NVIDIA GTX1080還是沒有增加硬體ACE(非同步計算引擎)?
※如何評價 GTX 1080/1070 系列顯卡?
※GPU 硬體的發展史是怎樣的?
※如何評價NVIDIA 發布的 Max-Q 設計方法(Design Approach)?
※如何看待NVIDIA 即將開源的DLA?