DirectX® 12是DirectX® API史上第一個具備專屬功能與技術工具以支援多重GPU(mGPU)遊戲的版本。AMD將帶您一同認識mGPU在PC遊戲裡所扮演之角色,瞭解DirectX® 12將如何徹底顛覆傳統思維。
多重GPU發展現況
現今的多重GPU遊戲直到DirectX® 9才邁入實際應用階段,在長時間的DirectX® 11世代日漸受到歡迎。即便如此,許多已上市的PC遊戲並沒有特別設計支援多重GPU系統。這些遊戲並不會因系統增加額外的GPU而獲得效能提升,甚至會下降。
AMD的AMD Gaming Evolved遊戲計畫目的就是要解決此情形,透過各大遊戲開發公司合作,在其遊戲與引擎中加入多重GPU的支援,結果非常成功。對於未參與AMD Gaming Evolved遊戲計畫的其他應用程式,AMD旗下的軟體工程師還是能透過驅動程式的更新,為它們加入AMD CrossFire™的支援功能。
在此之前,DirectX® 11並沒有明確支援多重GPU。某些API雖沒有防止多重GPU組態,但本身只有極少工具或功能來支援多重GPU。因此,大多數遊戲採用交替畫面渲染(Alternate Frame Rendering,AFR)這項常見的暫時解決方法。
AFR運作原理
繪圖卡在運作時會使用一連串的緩衝區,裡面存放渲染後的資料,直到被提取使用於顯示螢幕上。藉由AFR的mGPU模式,每個顯卡緩衝區將渲染色後的畫面排入佇列,之後由各個GPU輪流取出畫面資料加以處理,而後組成螢幕上的影像。
AFR能提高畫面更新率,故極受歡迎。每秒能顯示的畫面數增加,因為使用者看到一個畫面之後,系統在背後已準備好顯示新的畫面。
但是,AFR用這種畫格緩衝區排成冗長佇列的作法,會造成滑鼠移動到螢幕上出現的時間拖得更長,大多數遊戲玩家稱之為「滑鼠延遲」。
第二, DirectX® 11在「非對稱組態」或其中一顆GPU效能遠勝過另一顆的多重GPU配對模式下,通常無法提供顯著的效益。速度較慢的裝置無法及時運算完畫面以提供使用者有意義的效能提升。
第三,在DirectX® 11裡就算啟用非重度的GPU多重執行緒模式,也會讓系統難以充分發揮多重GPU的優勢,因為很難把大的繪圖工作切成小部分。
EXPLICIT MULTI-ADAPTER介紹
DirectX® 12為克服這些挑戰,首度把多重GPU的支援功能直接納入DirectX®規範,加入名為「Explicit Multi-adapter」的功能,此功能讓遊戲開發商能精準控制其引擎的作業負載,並直接控制系統中每個GPU的各項資源。然而在遊戲中該如何運用這些功能?以下介紹幾種選項。
分割畫面渲染(SPLIT-FRAME RENDERING)
新推出的DirectX® 12多重GPU著色模式,像「分割畫面渲染(SFR)」能把遊戲的每格畫面切成多個較小的分塊,並指派給系統中每個GPU處理。GPU會以平行模式同步著色這些畫面分塊,之後在組成完整的場景畫面呈現在使用者眼前。以平行模式運用GPU資源能縮短渲染延遲,從而改進第一人稱射擊與虛擬實境遊戲的反應速度。有些人把SFR稱作是「兩顆GPU併成一顆更強大GPU」,這的確讓人興奮!
分割畫面渲染帶來的優勢,已反映在Firaxis Games公司運用AMD Mantle技術的《文明帝國:超越地球》(Sid Meier’s Civilization®: Beyond Earth™)遊戲中,有詳盡的解說與記錄。
非對稱式多重GPU支援(ASYMMETRIC MULTI-GPU)
DirectX® 12 提供原生支援非對稱多重GPU的功能,也就是我們在「AFR運作原理」提到的。舉例來說,一部裝有AMD APU加上AMD Radeon™ GPU高效能獨顯的電腦,和AMD Radeon™ Dual Graphics技術並沒有太大的差異,只是其執行功能更加多元。
運用DirectX® 12的非對稱渲染技術,遊戲引擎能指派適當大小的作業負載給系統中的每個GPU。當系統加入一顆獨顯GPU後,在DirectX® 11遊戲中APU的繪圖晶片可能還是紋風不動,不會投入運算的工作,但現在則能用來當成3D協同處理器,負責處理物理虛擬或光源等等規模較小的著色作業。較大的GPU則負責例如3D幾何座標等繁重運算作業,完成後再組成整個畫面場景,讓使用者感受到更高的整體效能。
4加4等於8?
在DirectX® 9與11的世界裡,遊戲玩家已習慣看到即使是雙GPU系統,某一個GPU配置較少的RAM,該GPU就會成為整個系統的瓶頸。這也是AFR的一項缺點,AFR要求每個GPU含有遊戲資料集的一致複本,以確保同步性並避免破圖的狀況。
不過DirectX® 12再一次顛覆傳統。不是絕對要求使用AFR,因此不要求每個GPU必須保存遊戲資料的複本,如此一來能容納更大的遊戲作業負載,資料集也能分派給多顆GPU去處理,並讓多顆GPU把其記憶體匯整成一個超大集區,將讓未來的遊戲擁有更逼真的材質效果。
結論
最後,這是值得提出給開發者的現實面,讓他們在發展下一代PC遊戲時,可選擇採納這些功能。當然,不是所有功能和特性都會在DirectX® 12一推出時便被全盤使用,畢竟DirectX® 11未來還有很長的使用時間,許多開發商目前還不急著全面使用DirectX 12。
儘管如此,我依然對PC遊戲的未來感到興奮,因為許多開發商表明對多重顯卡的種種優質備感興趣。而正因如此,這項功能才會納入到API。隨著時間推移,遊戲玩家的千呼萬喚加上AMD從旁協助,我們得以讓高階PC遊戲更強大,也比以往更多采多姿。