3D圖像一直是芯片發(fā)展的推動(dòng)力之一,從上世紀(jì)九十年代直到今天,以游戲、電影等為代表的高性能圖像渲染應(yīng)用的蓬勃發(fā)展直接讓GPU芯片成為了一個(gè)新的芯片品類,并且快速發(fā)展至今。從這個(gè)角度,我們認(rèn)為高性能3D圖像渲染以及3D圖像學(xué)的發(fā)展一直在驅(qū)動(dòng)著GPU芯片品類的發(fā)展。
在3D圖像學(xué)中,對(duì)于真實(shí)場(chǎng)景和物體的高精度建模/渲染一直是整個(gè)學(xué)界夢(mèng)寐以求的目標(biāo)之一。在過(guò)去幾十年中,3D場(chǎng)景和物體建模的主流方式是基于多邊形(ploygon mesh)的建模,即把一個(gè)3D建模的物體表面近似為由大量多邊形組成,而多邊形數(shù)量越多,則3D建模和真實(shí)物體/場(chǎng)景越接近。在具體3D模型創(chuàng)建方面,則是由3D建模人員創(chuàng)建模型。在這樣的情況下,多邊形數(shù)量一方面限制了渲染的性能(即主流設(shè)備難以渲染多邊形足以表現(xiàn)全部真實(shí)場(chǎng)景細(xì)節(jié)的模型),另一方面從建模方面,3D建模人員也難以完成含有真實(shí)物體或者場(chǎng)景所有細(xì)節(jié)的3D模型。因此,我們目前看到的主流3D模型都和現(xiàn)實(shí)的真實(shí)場(chǎng)景有顯著區(qū)別。
最近幾年,隨著人工智能的發(fā)展,以輻射場(chǎng)為代表的新的3D圖像學(xué)正在挑戰(zhàn)多邊形建模的傳統(tǒng)3D范式,而今年下半年3D圖像學(xué)界更是由于幾篇重磅研究的發(fā)表而進(jìn)入了一個(gè)快速發(fā)展階段,真實(shí)場(chǎng)景建模正在以前所未有的速度接近我們。
在這幾個(gè)里程碑式的研究中,第一個(gè)是由法國(guó)INRIA和德國(guó)馬克思普朗克研究所完成的3D Gaussian Splatting(3D GS)。3D Gaussian Splatting是輻射場(chǎng)建模的一種,它和傳統(tǒng)的多邊形建模的區(qū)別在于,第一其3D場(chǎng)景的建模單位不再是多邊形,而是形狀和顏色可變的Gaussian Splatting (GS),通過(guò)大量GS的疊加,可以高精度還原3D場(chǎng)景中的細(xì)節(jié)。第二,其建模過(guò)程不再是由3D建模人員完成,而是用了人工智能的方式,具體來(lái)說(shuō)建模過(guò)程是對(duì)需要具體的場(chǎng)景拍攝不同視角的圖片,然后這些圖片通過(guò)人工智能的優(yōu)化方法可以完成整個(gè)場(chǎng)景的3D GS建模,這樣就避免了建模過(guò)程對(duì)于最終場(chǎng)景精度的限制。最后,3D GS的渲染速度可以很快,在現(xiàn)有的桌面GPU上,可以實(shí)現(xiàn)100 fps的渲染。當(dāng)然,由于目前的GPU還沒(méi)有針對(duì)3D GS做優(yōu)化,這個(gè)速度和效率肯定還有很大的提升空間,但是這樣的渲染速度和精度已經(jīng)足以讓3D GS進(jìn)入實(shí)用。
第二個(gè)重要研究是由Nvidia發(fā)表的Adaptive Shells for Efficient Neural Radiance Field Rendering。神經(jīng)輻射場(chǎng)(Neural Radiance Field,NeRF)和3D GS類似,都是可以通過(guò)場(chǎng)景的多角度圖片來(lái)完成場(chǎng)景的超高精度建模,并且其建模方式也是通過(guò)人工智能模型訓(xùn)練的方法來(lái)完成。NeRF和3D GS的主要不同在于,其建模方法是通過(guò)神經(jīng)網(wǎng)絡(luò)來(lái)完成,因此其渲染過(guò)程就是等價(jià)于神經(jīng)網(wǎng)絡(luò)的推理過(guò)程。NeRF出現(xiàn)已經(jīng)有了數(shù)年,但是直到今年Nvidia的研究發(fā)表,才真正實(shí)現(xiàn)了GPU上高幀率(100-200fps)的高質(zhì)量NeRF渲染,因此今年可望是NeRF渲染真正進(jìn)入實(shí)用的開(kāi)始。
人工智能圖像學(xué)對(duì)于GPU的需求
我們認(rèn)為,人工智能圖像學(xué)對(duì)于GPU提出了新的需求。
首先,在基本的NeRF或者3D GS的渲染中,傳統(tǒng)的GPU中的多邊形渲染流水線已經(jīng)無(wú)法高效支持,因?yàn)镹eRF和3D GS的渲染需要一些重要的新計(jì)算。對(duì)于NeRF來(lái)說(shuō),其場(chǎng)景建模信息都包含在訓(xùn)練過(guò)的神經(jīng)網(wǎng)絡(luò)中,神經(jīng)網(wǎng)絡(luò)的輸入就是用戶當(dāng)前的視角,輸出則是場(chǎng)景在視角下的2D圖像。因此,其渲染過(guò)程其實(shí)就是根據(jù)用戶的視角來(lái)完成神經(jīng)網(wǎng)絡(luò)的推理計(jì)算。而在3D GS中,具體的渲染過(guò)程則是把整個(gè)場(chǎng)景分成多個(gè)塊(tile),每個(gè)塊中根據(jù)當(dāng)前視角首先排序選出對(duì)于視覺(jué)影響******的N個(gè)GS,之后再僅僅針對(duì)這些GS做渲染,從而可以實(shí)現(xiàn)高效率。我們可以看到這些都和當(dāng)前的多邊形渲染流水線有較大不同,為了能高效支持這些3D圖像學(xué)的新范式,GPU需要能高效支持這些新計(jì)算。
另外,在新的3D圖像學(xué)是由人工智能驅(qū)動(dòng)的這一潮流下,我們勢(shì)必會(huì)看到3D圖像渲染和人工智能的進(jìn)一步結(jié)合,例如在NeRF和3D GS的場(chǎng)景建模中加入基于神經(jīng)網(wǎng)絡(luò)計(jì)算的動(dòng)畫(huà)或者編輯(光影變化等),這些又進(jìn)一步說(shuō)明目前的GPU上的多邊形渲染流水線對(duì)著這類新圖像渲染范式已經(jīng)無(wú)法高效支持。
GPU新架構(gòu)呼之欲出
我們認(rèn)為,這些新的超高精度3D圖像學(xué)會(huì)推動(dòng)新的GPU架構(gòu)發(fā)展。
從桌面和服務(wù)器GPU芯片角度,我們認(rèn)為GPGPU架構(gòu)會(huì)得到進(jìn)一步的推廣。Nvidia主導(dǎo)的GPGPU在人工智能浪潮的前幾年(2012-2017)是Nvidia能夠占據(jù)人工智能霸主地位的核心,因?yàn)镚PGPU的開(kāi)放接口可以讓GPU去做人工智能計(jì)算。在這之后,隨著人工智能應(yīng)用進(jìn)入主流地位,Nvidia開(kāi)始給人工智能做專用優(yōu)化,引入了包括Tensor Core等重要新架構(gòu),換句話說(shuō)人工智能在Nvidia的GPU上已經(jīng)不再主要依賴其GPGPU思路,而是更多依賴Nvidia的人工智能架構(gòu)設(shè)計(jì)。然而,隨著新的3D圖形學(xué)的發(fā)展,GPGPU又會(huì)重新進(jìn)入聚光燈下。
從芯片架構(gòu)角度來(lái)說(shuō),從宏觀上這意味著GPGPU的進(jìn)一步進(jìn)化,以及和人工智能的融合。之前,GPGPU允許用戶去調(diào)用3D圖形計(jì)算的單元去做其他非圖形的計(jì)算;而隨著新的3D圖形學(xué)的發(fā)展,需要GPGPU能進(jìn)一步開(kāi)放圖形渲染單元,讓圖形渲染單元更加靈活,從而能支持新的3D建模范式的高效渲染。我們認(rèn)為,芯片架構(gòu)層面,對(duì)于這樣新3D圖形學(xué)范式的支持,有三方面的需求。
第一個(gè)方面是打通渲染流水線和人工智能引擎由于神經(jīng)網(wǎng)絡(luò)的計(jì)算在新的3D圖形學(xué)中起了極其重要的角色,如何把圖形渲染單元和GPU中的人工智能引擎打通,將是支持這類新3D圖形學(xué)渲染的核心需求。例如,在芯片架構(gòu)設(shè)計(jì)中,需要能夠讓圖形渲染單元和人工智能引擎之間實(shí)現(xiàn)有效通信以及互相高效調(diào)用,從而能充分支持這樣的渲染需求——像NeRF這樣的建模方法中,每一幀計(jì)算都需要去運(yùn)行一次神經(jīng)網(wǎng)絡(luò)推理,在高分辨率的時(shí)候神經(jīng)網(wǎng)絡(luò)會(huì)非常復(fù)雜,而高幀率則需要神經(jīng)網(wǎng)絡(luò)延遲有很高的需求,在這種情況下需要圖像渲染和人工智能引擎充分打通。
第二個(gè)方面是對(duì)于這些新的范式,如何實(shí)現(xiàn)硬件優(yōu)化。對(duì)于基于多邊形傳統(tǒng)3D圖形學(xué)的渲染加速,GPU已經(jīng)有了數(shù)十年的積累,因此從硬件上幾乎已經(jīng)把優(yōu)化做到了極致,然而對(duì)于NeRF或者3D GS這樣的新范式,硬件優(yōu)化目前仍然不存在。第一步,我們可以把目前已有的針對(duì)多邊形渲染的優(yōu)化應(yīng)用到這類新3D圖形范式上,例如分塊(tile)渲染以實(shí)現(xiàn)并行處理,以及流水線計(jì)算以降低延遲,等等。更進(jìn)一步,未來(lái)會(huì)出現(xiàn)針對(duì)這些新3D圖形學(xué)范式的專門(mén)優(yōu)化,從而可以將渲染效率進(jìn)一步提高。
第三個(gè)方面是如何提供靈活的用戶接口。3D新圖形學(xué)方興未艾,在可預(yù)計(jì)的未來(lái)仍然會(huì)高速發(fā)展,因此如何能給用戶提供接口,從而可以讓用戶靈活利用和配置GPU上的計(jì)算單元,從而用戶可以根據(jù)自己獨(dú)特的設(shè)計(jì)來(lái)配置GPU上的渲染流水線以實(shí)現(xiàn)高效率。這樣的可配置性對(duì)于培養(yǎng)新3D圖形學(xué)的生態(tài)將會(huì)是至關(guān)重要,如果想要重復(fù)Nvidia在人工智能浪潮中的成功,那么就需要在新3D圖形學(xué)算法尚未最終塵埃落定的時(shí)候就提供足夠支持以培養(yǎng)用戶生態(tài);如果想要等到算法技術(shù)已經(jīng)足夠成熟后再開(kāi)始提供支持,那么生態(tài)角度就會(huì)站在非常不利的位置。
比較桌面和服務(wù)器GPU的兩大巨頭Nvidia和AMD在這方面的狀態(tài),我們認(rèn)為Nvidia由于其在人工智能和GPGPU領(lǐng)域的前期投入,目前毫無(wú)疑問(wèn)站在非常領(lǐng)先的位置——例如,NeRF和3D GS絕大多數(shù)的渲染代碼和benchmark都是跑在Nvidia的GPU上,這也是Nvidia生態(tài)強(qiáng)大的一個(gè)例子。當(dāng)然,也并不是說(shuō)目前Nvidia都已經(jīng)把一切做到盡善盡美;3D GS中,研究人員就提到了CUDA的GPGPU計(jì)算庫(kù)雖然能實(shí)現(xiàn)高效計(jì)算,但是在做渲染的時(shí)候存在一定的兼容性問(wèn)題。這也對(duì)應(yīng)于我們上面提到的GPGPU需要更進(jìn)一步,能和人工智能引擎打通并且提供靈活的用戶接口。
對(duì)于AMD來(lái)說(shuō),在過(guò)去一直處于追趕者的地位,目前來(lái)說(shuō),由于其軟件生態(tài)的相對(duì)不完整,預(yù)計(jì)在新3D圖形學(xué)逐漸變成主流的前幾年,AMD仍然將處于追趕的地位。但是,如果AMD不想錯(cuò)過(guò)這一波新的3D圖形學(xué)的機(jī)會(huì)的話,一方面需要在軟件生態(tài)上做更快速的追趕,另一方面則需要在硬件架構(gòu)上做相比于Nvidia更加果斷的優(yōu)化來(lái)支持這類新的3D圖形學(xué)。
除了桌面/服務(wù)器GPU之外,事實(shí)上移動(dòng)端GPU對(duì)于這類新3D圖形學(xué)也很重要,因?yàn)槲磥?lái)ARVR這類使用移動(dòng)GPU的應(yīng)用也預(yù)計(jì)是應(yīng)用這樣的新3D圖形學(xué)的最關(guān)鍵的場(chǎng)景。從移動(dòng)端GPU來(lái)說(shuō),最關(guān)鍵是如何實(shí)現(xiàn)高效率支持,確保在電池和散熱允許的情況下實(shí)現(xiàn)******質(zhì)量和幀率。從芯片架構(gòu)角度,一方面,我們預(yù)計(jì)也會(huì)看到GPU和人工智能引擎在移動(dòng)SoC上的更高效通信以滿足圖形學(xué)上的需求——這將是一個(gè)很有趣的架構(gòu)設(shè)計(jì),因?yàn)樵诓簧賁oC中GPU和人工智能引擎都是完全分離的IP,有些SoC上的GPU和人工智能引擎甚至可能會(huì)由不同的公司設(shè)計(jì),因此如何確保兩者之間能互相通信將是重要的課題,甚至可能會(huì)有專用的通用接口協(xié)議出現(xiàn)。另一方面,移動(dòng)GPU上對(duì)于效率對(duì)靈活度的取舍一般都會(huì)更偏向于效率,因此在如何在算法上提供高效支持和優(yōu)化將會(huì)是移動(dòng)GPU優(yōu)化的重點(diǎn)。