顯示卡

實現內顯獨顯一起跑!Intel於GDC 2020推出多GPU效能加乘優化方案

文.圖/Johan 2020-03-26 18:03:25
一年一度的GDC (Game Developers Conference,遊戲開發者論壇) 2020,原訂於3/16至3/20於加州舉辦,但受到COVID-19疫情影響而停辦,改成線上舉辦。各遊戲產業開發者紛紛展示各種新的遊戲開發技術與成果,與同業們分享。

Intel於GDC 2020線上展推出其多顯示卡效能優化方案,讓遊戲開發者導入


多GPU效能加乘搞不定?各家其實各懷鬼胎

有關於多顯示卡的運作模式與效能提升方法,其實微軟早在DirectX12中,就導入了「非對稱式多GPU運算」的概念,允許不同效能等級的GPU (不管是內顯或獨顯)能夠同時運作,以非對稱式的運算配置,來分攤繁重的繪圖工作,以達到效能加乘的效果。

由於先前DX11時代,只要是有內顯+獨顯的系統上執行遊戲時,大多數是CPU負責運算、dGPU(獨顯)負責繪圖,而CPU內建的iGPU(內顯)則在睡覺,完全無用武之地。而DX12的多顯卡支援功能,就是要讓iGPU也給我起床工作。這樣當遊戲場景突然變複雜,dGPU處理不來時,就可以請iGPU來幫忙,讓遊戲可以變得更順暢、不遲鈍。

然而,微軟也希望這個多GPU能夠跨越廠商,也就是說,當遊戲引擎偵測到多GPU的電腦系統時,不管是哪家產品的組合(A+N或是I+A、I+N),都能開啟其運算功能,以實現出雙顆比單顆更快的效能。但是,這部份其實受到AMD和NVIDIA的冷處理,要兩家架構完全不同的GPU廠商互相配合,真的是非常困難。因此市面上目前支援DirectX 12多GPU的遊戲也是少之又少。

微軟的DX12可以做到多GPU非同步運算


不過這部份AMD也有自己開發的技術,只要CPU和GPU都是AMD的平台(Ryzen處理器含Radeon內顯,再搭配Radeon獨顯),就能啟用其AMD SmartShift技術,來做到電源平衡與效能提升的目標。

看到AMD自己搞全餐,由於Intel在2020年也預計要推出自己的Xe顯示卡,因此他們也搞自己的全餐,也就是只要是全Intel平台(Core i系列處理器含UHD或Iris內顯,再搭配 Xe獨顯),就能開啟多GPU加速功能,並期望遊戲開發者們能夠將遊戲傳給Intel的團隊,來幫您的遊戲優化做調校,透過運用到多GPU的運算能力以提升系統整體效能。至於NVIDIA只能哭哭,因為他們只有GPU,沒有x86 CPU,DX12多GPU的部份,只能在旁邊看誰要跟他合作了!

Intel展示其多顯示卡效能優化方案

同樣也是GDC 2020參與廠商的Intel,於3/25推出其多顯示卡效能優化方案。在其「Multi-Adapter Integrated + Discrete GPUs」的簡報中,可以看到Intel為遊戲引擎開發人員提供了簡單的代碼,以整合新的技術,並運用於建立跨顯卡之間的資源、共享堆與資源代碼。該簡報裡也展示了如何利用非同步運算以獲得輕量級的渲染以及重量級的路徑計算成果,以減少繪製圖像的延遲時間。





其中,Intel還開發出可用於跨顯示卡之間的同步代碼,該延伸指令稱作「Command Queue Throttle」(指令列檔位切換,CQT),當iGPU和dGPU之間的負載不一致時,這些代碼就可以確保能產生出較高效能與較低的畫格繪製時間。





目前所有的Intel繪圖驅動程式,都能支援這個CQT的延伸指令,Intel也已開始提供.h的原始檔案給遊戲開發人員們,以加入到他們的遊戲引擎內。Intel表示,這種方法可用於各種非同步運算工作,包含陰影、AI、網格變形和物理處理。由於iGPU效能通常比dGPU低,因此主力於處理輕量級的運算工作,而材質過濾這種繁重的工作才丟給dGPU處理,這樣一來,就可以最大程度地降低系統PCIe資源的負荷,同時最大程度地降低記憶體使用頻寬。












由於Intel Gen 11和基於Xe架構的iGPU (將於Intel下一代的Tiger Lake處理器內建)即將在2020年至2021年上市,將會讓Intel的iGPU效能突破1 TFLOP的算力大關,若無法使用到這些GPU的資源,大概會被未來3A平台(AMD的CPU+GPU+系統晶片)的筆電狂打,因此Intel推出上述的技術,就是希望遊戲開發者也能夠針對3I平台(Intel的CPU+系統晶片+GPU)做最佳化。



事實上,目前在輕省筆電市場中,有不少筆電都是配置低階或是中階獨顯,由於Intel的筆電CPU也都有內顯,因此其驅動程式都具備能在內顯或獨顯間來切換,以達到最佳效能或最佳省電的目標。不過,這次為了能夠達到「最大效能」,未來驅動程式可能會再提供「終極效能」模式,讓內顯+獨顯一同運作,以讓其Tiger Lake能夠打敗Vega。有興趣的玩家或開發者,可以參考上述原始的簡報檔哦!




多GPU本來就應該一起跑啊!就看未來誰的整合功力強

先前在DX11以前的時代,由於只能支援單GPU,當時AMD推出CrossFire與NVIDIA推出SLI讓「相同等級」的獨顯(dGPU)能夠同時負擔繪圖運算需求,來讓遊戲效能提升,玩家可以透過安裝2張顯示卡來加速效能,但由於投資報酬率不划算,買單的人少,加上遊戲開發商幾乎很少支援多卡運算,使得多dGPU的運用似乎越來越式微!

如今CPU紛紛內建內顯(iGPU)功能,但由於系統限制,變成只能從iGPU或dGPU做切換,無法發揮雙GPU的非同步運算,讓效能加乘,隨著DX12導入多GPU運算功能,就是期望能讓各家顯示卡(A,I,N)能夠同時發揮iGPU+dGPU的算力,發揮出更好的效能,但因為各家的GPU硬體設計不同,加上驅動程式也不同,使得要做到跨GPU廠商的目標,可說是非常難 (你光想想,要將NVIDIA和AMD驅動程式整合成一包,就幾乎是不可能了,更別說要效能加乘),除非微軟親自跳下來搞GPU Driver與控制介面,但這種事情又不太可能發生。難道iGPU+dGPU的效能加乘,永遠搞不定嗎?

這也就是AMD推出其SmartShift功能的原因之一,目前只能在3A平台上實現,畢竟是自家的硬體架構,只要在自家驅動程式支援就可,SmartShift初期目標是要求能平衡工作負載,讓耗電平均,因此可能無法完全發揮到iGPU+dGPU全速的效能(事實上從AMD粉絲的反應中,都希望他們將驅動程式穩定度先搞定,再來談其他的),因此未來就看AMD在iGPU與dGPU的協同運作下,是否能有更好的效能發揮了。

而Intel部份,則是推出自己的多GPU效能加乘方案,主力是要同時發揮iGPU+dGPU的效能,而非單純的負載平衡。總之,Intel希望藉由此技術,讓3I平台的筆電能獲得效能相輔相成的效果。


至於NVIDIA因為沒有x86 CPU,因此也只能寄望其他兩家來跟他合作囉…


發表您的看法

請勿張貼任何涉及冒名、人身攻擊、情緒謾罵、或內容涉及非法的言論。

請勿張貼任何帶有商業或宣傳、廣告用途的垃圾內容及連結。

請勿侵犯個人隱私權,將他人資料公開張貼在留言版內。

請勿重複留言(包括跨版重複留言)或發表與各文章主題無關的文章。

請勿張貼涉及未經證實或明顯傷害個人名譽或企業形象聲譽的文章。

您在留言版發表的內容需自負言論之法律責任,所有言論不代表PCDIY!雜誌立場,違反上述規定之留言,PCDIY!雜誌有權逕行刪除您的留言。