革命性DX11架構(gòu)!GTX480/470權(quán)威評測
GF100擁有四個GPC,每個GPC內(nèi)部擁有四組SM,每組SM內(nèi)部包括了32個CUDA核心:
G80=8 TPC=8x2 SM=8x2x8 SP
GT200=10 TPC=10x3 SM=10x3x8 SP
GF100=4 GPC=4x4 SM=4x4x32 SP
現(xiàn)在我們就可以了解到,GF100與上代的GT200和上上代的G80相比,SM的變化非常大。GF100每組SM當中擁有32個流處理器,而GT200/G80的每組SM都是8個流處理器。在SM內(nèi)部流處理器數(shù)量翻三倍的同時,GPC/TPC的構(gòu)成也發(fā)生了變化,G80每個TPC內(nèi)部擁有2組SM,GT200是3組SM,而GF100每個GPC內(nèi)部則是4組SM。
對于CUDA核心與SM結(jié)構(gòu)的微調(diào),大家都很容易理解。GF100與GT200最大的不同其實就是PolyMorph Engine,譯為多形體引擎。每個SM都擁有一個多形體引擎,GF100核心總共有多達16個。那么多形體引擎是干什么用的呢?為什么要設(shè)計如此之多?
● 為什么要設(shè)計多形體引擎?
之前的GPU架構(gòu)一直都使用單一的前端控制模塊來獲取、匯集并對三角形實現(xiàn)光柵化。無論GPU有多少個流處理器,這種固定的流水線所實現(xiàn)的性能都是相同的。但應(yīng)用程序的工作負荷卻是不同的,所以這種流水線通常會導(dǎo)致瓶頸出現(xiàn),流處理器資源未能得到充分利用。
實現(xiàn)光柵化并行處理的同時還要保持API的順序是非常困難的,這種難度阻礙了這一領(lǐng)域的重大創(chuàng)新。雖然單個前端控制單元的設(shè)計在過去的GPU中曾有過輝煌的歷史,但是隨著對幾何復(fù)雜度的需求不斷增長,它現(xiàn)在已經(jīng)變成了一個主要障礙。
Tessellation的使用從根本上改變了GPU圖形負荷的平衡,該技術(shù)可以將特定幀中的三角形密度增加數(shù)十倍,給設(shè)置于光柵化單元等串行工作的資源帶來了巨大壓力。為了保持較高的Tessellation性能,有必要重新平衡圖形流水線。
為了便于實現(xiàn)較高的三角形速率,NVIDIA設(shè)計了一種叫做“PolyMorph”的可擴展幾何引擎。每16個PolyMorph引擎均擁有自己專用的頂點拾取單元以及鑲嵌器,從而極大地提升了幾何性能。與之搭配的4個并行光柵化引擎,它們在每個時鐘周期內(nèi)可設(shè)置最多4個三角形。同時,它們還能夠在三角形獲取、Tessellation、以及光柵化等方面實現(xiàn)巨大性能突破。
● 多形體引擎的工作原理:
多形體引擎擁有五個階段:頂點拾取、Tessellation、觀察口轉(zhuǎn)換、屬性設(shè)置以及流式輸出。每個SM都擁有一個多形體引擎,因此每一階段中所運算得出的結(jié)果都被實時發(fā)送至SM處理。該SM能夠執(zhí)行游戲的著色程序、將結(jié)果迅速返回至多形體引擎中的下一階段,從而保證了最高的執(zhí)行效率。在五個階段都執(zhí)行完畢之后,結(jié)果會被傳遞給光柵化引擎。
第一個階段是從一個全局頂點緩沖區(qū)中獲取頂點。所獲取的頂點于是被發(fā)送至SM,以進行頂點著色以及外殼著色。在這兩個階段中,頂點從一個物體空間轉(zhuǎn)變成了世界空間,而且還算出了Tessellation所需的參數(shù)(例如細分級別)。Tessellation系數(shù)(或LOD)將被發(fā)送至Tessellator進行鑲嵌處理。
在第二個階段中,多形體引擎讀取Tessellation系數(shù)。Tessellator將修補面(控制點網(wǎng)格所定義的光滑表面)分成小方塊并輸出許多頂點。修補(u、v)值定義了網(wǎng)格以及形成網(wǎng)格的連接方式。
全新的頂點被發(fā)送至SM,域著色器與幾何著色器均在這里執(zhí)行。域著色器能夠根據(jù)外殼著色器與Tessellator的輸入來運算每個頂點的最終位置。在本階段中,通常會附上一個Displacement Mapping(貼圖置換)以提升修補面的細節(jié)表現(xiàn)。幾何著色器能夠執(zhí)行任何后期處理、按需增加或刪除頂點以及基元。結(jié)果最終將被發(fā)回至Tessellation引擎。
在第三個階段,多形體引擎會執(zhí)行觀察窗口轉(zhuǎn)換以及視角校正。接下來就是屬性設(shè)置,把后期觀察口頂點屬性轉(zhuǎn)變成了平面方程,以進行高效的著色器評估。最后,可以選擇將頂點“流出”至存儲器,使其能夠用于更多處理。
● RV870只有一個控制引擎:
ATI似乎也意識到了單個控制引擎不足以滿足如此龐大規(guī)模流處理器并行處理的需要,因此設(shè)計了兩個Rasterizer(光柵器)和Hierarchial-Z(多級Z緩沖模塊)。但其它的模塊如Tessellator(鑲嵌器)、Vertex Assembler(頂點裝配器)、Geometry Assembler(幾何裝配器)都只有一個:
RV870只有一個前端控制引擎
4:2的光柵化引擎,16:1的多形體引擎(包括Tessellator),GF100的幾何圖形性能有多么強大已經(jīng)可以想象。Tessellation作為ATI發(fā)明的技術(shù),對于圖形渲染流程與負載的改變ATI不會不知道,如此雞肋的設(shè)計只有一個原因,那就是不做任何改動搶先進入DX11時代,至于執(zhí)行效率問題暫時拋諸腦后。
NVIDIA則比較務(wù)實,他們要的不是搶第一賺噱頭,而是做最完美的DX11顯卡。當NVIDIA的工程師通過計算機模擬測試得知幾何引擎將會成為DX11新的瓶頸之后,毫不遲疑的選擇了將單個控制模塊打散,重新設(shè)計了多形體引擎和光柵化引擎,并分散至每組SM或每個GPC之中,從而大幅提升了幾何性能,徹底消除了瓶頸。
當然這種革命性的設(shè)計代價很大,消耗了NVIDIA工程師無數(shù)的精力、資源和時間。事實上多形體引擎正是GF100核心最大的變化所在,也是它無法在去年及時發(fā)布的本質(zhì)原因。
關(guān)注我們



