AMD大爆發(fā) Vega GPU架構(gòu)技術(shù)要點(diǎn)總結(jié)
幾何渲染引擎:更靈活、更快速
本文引用地址:http://www.czjhyjcfj.com/article/201703/345466.htm幾何計(jì)算是3D渲染的基礎(chǔ),在AMD的GPU中,幾何渲染還是由固定的幾何著色引擎來完成。專屬硬件的優(yōu)點(diǎn)是運(yùn)行效率高、速度快,缺點(diǎn)是硬件處理缺乏靈活性,每一次幾何計(jì)算都必須機(jī)械化地執(zhí)行,而很難進(jìn)行優(yōu)化。
我們舉一個(gè)例子,右邊兩張圖片分別是PC游戲《殺出重圍:人類分裂》中的巨像之城(Golem City)的場(chǎng)景和該場(chǎng)景的幾何線框圖。AMD介紹說,這幅場(chǎng)景有多達(dá)2.2億個(gè)多邊形需要進(jìn)行計(jì)算,但最終輸出的畫面其實(shí)只有 0.02 億個(gè)多邊形,也就是大多數(shù)的多邊形,其實(shí)都是后臺(tái)計(jì)算、不需要被顯示出來,但它們耗費(fèi)了超過98%的計(jì)算資源。

《殺出重圍:人類分裂》游戲中的場(chǎng)景

《殺出重圍:人類分裂》游戲場(chǎng)景對(duì)應(yīng)的幾何線框圖
有鑒于此,越來越多的開發(fā)者拋棄了傳統(tǒng)的幾何單元,改用靈活的計(jì)算著色器來進(jìn)行幾何處理—通過對(duì)算法的優(yōu)化,可以將大量的中間計(jì)算省略,達(dá)到節(jié)省硬件資源、提高游戲性能的目的。
AMD在Vega架構(gòu)中,也引入了這套機(jī)制——Vega GPU的幾何流水線中新增了名為 Primitive Shader(圖元著色器)的新型計(jì)算單元,這個(gè)新的著色器可以舍棄大量的無效幾何計(jì)算,從而精簡(jiǎn)、快速地完成任務(wù)。AMD的最終目標(biāo)是徹底拋棄傳統(tǒng)的幾何單元、以這套靈活的著色器來代替它。
此外,為了持續(xù)提升幾何處理性能,AMD還引入了名為“Intelligent Workgroup Dostributor(智能工作組分發(fā)器)”的計(jì)算單元,它可以支持更多的著色器引擎,并且可以根據(jù)負(fù)載情況智能地在各引擎間分配幾何計(jì)算任務(wù)。而當(dāng)前AMD的GCN架構(gòu)最多只支持4個(gè)幾何著色引擎,沒有增強(qiáng)的潛力。而即便在同樣4個(gè)著色引擎的情況下,Vega GPU每周期也能處理11個(gè)多邊形、相當(dāng)于現(xiàn)有產(chǎn)品的兩倍。

Vega中的智能工作組分發(fā)器,允許支持更多的幾何引擎。

Vega的幾何效率提升了兩倍
下一代像素引擎
Vega的像素著色引擎同樣進(jìn)行大量的優(yōu)化,AMD將它稱為Draw-streaming binning rasterizer(簡(jiǎn)稱 DSBR,渲染流分倉(cāng)光柵器)。
DSBR引擎在執(zhí)行效率上獲得質(zhì)的飛躍,我們知道,復(fù)雜的3D畫面,需要進(jìn)行大量的渲染,而其中絕大多數(shù)的工作都是位于后臺(tái),真正展現(xiàn)出最終畫面的有效渲染只占據(jù)極小的部分—這與我們前面說的幾何渲染類似。之前AMD GPU對(duì)此并沒有很好的優(yōu)化,都是直接進(jìn)入到渲染環(huán)節(jié)。而DSBR引擎則對(duì)工作流程作了優(yōu)化:它會(huì)先在一個(gè)高速緩存中對(duì)3D場(chǎng)景給定的對(duì)象預(yù)先處理,然后GPU清空掉這個(gè)緩存、再拾取起其余的數(shù)據(jù)。而DSBR就可以讓GPU抓取出有效渲染和非可視像素的無效渲染,并將無效的渲染操作省略掉,只專注于可視部分的像素渲染。

DSBR引擎同樣通過優(yōu)化、顯著提升執(zhí)行效率
換言之,DSBR并不直接提升硬件的能力,而是通過削減無效渲染、減輕硬件負(fù)擔(dān),同樣達(dá)到提升像素渲染性能的效果。這套機(jī)制同時(shí)也意味著,節(jié)省功耗、降低發(fā)熱量,具備更高的性能提升潛力。
為配合DSBR的運(yùn)作,AMD對(duì)Vega的緩存架構(gòu)進(jìn)行重大改進(jìn),GPU的后端單元可以直接訪問到片上的二級(jí)高速緩存,數(shù)據(jù)的訪問、操作動(dòng)作直接在此實(shí)現(xiàn)。而傳統(tǒng)的GPU中,紋理和像素的內(nèi)存讀取操作并不一致,比如渲染紋理操作時(shí),數(shù)據(jù)要先寫到顯存中、然后再被讀取到紋理緩存里,也就是每一次數(shù)據(jù)都要來回搬動(dòng)、效率低下。而如果開發(fā)者要執(zhí)行紋理、像素同步渲染時(shí),程序指令與硬件工作流程就會(huì)出現(xiàn)沖突,增加了編程的難度。顯然,Vega的改進(jìn)要渲染流程簡(jiǎn)單了許多,大量的數(shù)據(jù)訪問都可以在片內(nèi)二級(jí)緩存高效率地完成,對(duì)性能的增益顯而易見。

Vega的后端渲染單元可直接訪問二級(jí)緩存
不過,DSBR只是Vega像素渲染的一個(gè)可選項(xiàng),實(shí)際的任務(wù)還是根據(jù)游戲的情況來完成,有的游戲還是對(duì)傳統(tǒng)架構(gòu)進(jìn)行編程,那DSBR暫時(shí)還無用武之地。但對(duì)支持該特性的新游戲而言,DSBR可以帶來顯著的效能提升。
評(píng)論