鐵之狂傲

 取回密碼
 註冊
搜尋

切換到指定樓層
1#
  在APU 13大會上,AMD以及DICE的演講中都特別提到了Mantle API的作用,我們只知道Mantle是一種底層API,可以減少遊戲運算中CPU帶來的間接成本(overhead),進而提升性能,但是Mantle目前還沒有公開的實際應用,我們只從DICE口中得知Mantle版《戰地4》性能會比DX11.1版更好,但是怎麼個好法呢,Mantle到底能給遊戲帶來什麼可見的好處呢?
  在這次的大會上,Oxide Games也做了Mantle及他們的引擎Nitrous(液氮)相關的演講,其中就明確闡述了Mantle API帶來的好處,它最佳化了多核CPU的支援,CPU管理渲染命令的成本降低了10倍,部分渲染場景速度是非Mantle的3倍多,而且在Mantle的輔助下,AMD的FX-8350處理器實測性能已經匹敵Core i7-4770K,對於R9 290X這樣的顯示卡來說,即便是降頻到2GHz的FX-8350都不再是性能瓶頸了。
IMG0043495_1.jpg
為什麼推出Nitrous引擎

  為什麼Oxide會設計Nitrous引擎,目前64位及8核處理器已經很平常了,GPU也有了TFLOPS等級的運算能力,但是現在很難同時利用所有這些能力。
IMG0043496_1.jpg
Nitrous引擎的特色

IMG0043500_1.jpg
目前的瓶頸

  現在的GPU性能非常強大,前提是CPU能充分喂飽它們。如今的PC也有很多核心及大量內容,如何利用好這些資源是個問題。對提高性能來說,SSE指令、快取、記憶體管理都是很關鍵的因素,Nitrous引擎可以管理好上述因素,並且支援60fps速度處理器10000+單位。
IMG0043512_1.jpg
現在進入Mantle的世界

IMG0043514_1.jpg
支援Mantle只需要多增加1000行代碼

  對於很多人擔心的支援Mantle需要耗費很多時間和精力的問題,Oxide表示對於現代的引擎,支援Mantle並不需要多大的代價,2個人幾個月的時間就支援Mantle,需要改進的代碼也不多,Oexide稱非Mantle的代碼大約是3500行,支援Mantle driver層大約要4500行代碼。
Mantle帶來的性能提升
  至於Mantle帶來的性能提升到底是什麼樣的,Oxide也舉了實際的例子,在一個4核8執行緒的CPU系統中,設定場景大約有1萬個單元,5萬個大量腳本(batch)。
IMG0043501_1.jpg
不支援Mantle的情況

  不支援Mantle時,這種設定需要99毫秒的CPU執行時間,GPU執行時間忽略不計(時間都用在CPU執行上了),這樣總的幀時間就是99毫秒,期間需要6個額外的驅動執行緒。
IMG0043519_1.jpg
支援Mantle的情況

  如果支援Mantle,同樣的情況下CPU執行時間只要18毫秒,另有15毫秒的GPU等待時間,總的幀時間是33毫秒,而且完全不需要驅動執行緒,這樣算起來支援Mantle的性能幾乎是不支援Mantle的三倍。
IMG0043520_1.jpg
如果有12個執行緒,執行80個大量腳本的幀時間也只要33毫秒

IMG0043521_1.jpg
最終的結果

  有了這樣的實例對比,我們再來看下Oxide的總結。
  支援Mantle之後,API的間接成本減少了10倍,而且Mantle的效果可隨CPU核心數並行擴充,如果算上驅動層花費的時間,真實性能很容易就有10倍提升。在應用層面,StarWarm遊戲部分場景有2倍的性能提升。
  關鍵的來了,Mantle與其說一個GPU最佳化API,倒不如說是CPU最佳化API,它減少的大多數都是CPU執行時間,這樣一來AMD的FX-8350處理器的性能都能匹敵Core i7-4770K(物理多核的優勢啊)。此外,Mantle也解放了CPU的性能,對與R9 290X這樣的顯示卡來說,即便是2GHz頻率的FX-8350也不是問題,瓶頸還是在GPU上,喂不飽GPU的情況幾乎不存在了。
IMG0043522_1.jpg
展望未來
 
轉播0 分享0 收藏0

回覆 使用道具 檢舉

你需要登入後才可以回覆 登入 | 註冊

存檔|手機版|聯絡我們|新聞提供|鐵之狂傲

GMT+8, 24-12-13 00:07 , Processed in 0.024392 second(s), 17 queries , Gzip On.

回頂部