HD7970脫胎換骨全測(cè)試!5年架構(gòu)大革命
第二章/第九節(jié) GPU的一大步:NVIDIA G80圖形架構(gòu)解析
AMD的GPU架構(gòu)介紹了這么多,對(duì)于其優(yōu)缺點(diǎn)也心知肚明了,之前筆者反復(fù)提到了“效率”二字,其參照物當(dāng)然就是NVIDIA的GPU,現(xiàn)在我們就來(lái)看看NVIDIA的GPU架構(gòu)有什么特點(diǎn),效率為什么會(huì)比較高?為什么更適合并行計(jì)算?
SIMD效率不高的根本原因
無(wú)論AMD怎么調(diào)整架構(gòu),5D還是4D的結(jié)構(gòu)都還是SIMD,也就是這4-5個(gè)ALU要共用一個(gè)指令發(fā)射端口,這樣就對(duì)GPU指令派發(fā)器提出了很高的要求:如果沒(méi)有把4-5個(gè)指令打包好發(fā)送到過(guò)來(lái),那么運(yùn)算單元就不會(huì)全速運(yùn)行;如果發(fā)送過(guò)來(lái)的4-5個(gè)指令當(dāng)中包含條件指令,但運(yùn)行效率就會(huì)降至連50%都不到,造成災(zāi)難性的資源浪費(fèi)。
解決方法也不是沒(méi)有,但都治標(biāo)不治本,需要對(duì)游戲/程序本身進(jìn)行優(yōu)化,盡量避免使用標(biāo)量指令、條件指令和混合指令,驅(qū)動(dòng)為程序?qū)iT(mén)做優(yōu)化,難度可想而知。
而治本的方法就是拋棄SIMD架構(gòu),從源頭上解決指令組合預(yù)分配的問(wèn)題。
G80革命性的MIMD架構(gòu)
NVIDIA的科學(xué)家對(duì)圖形指令結(jié)構(gòu)進(jìn)行了深入研究,它們發(fā)現(xiàn)標(biāo)量數(shù)據(jù)流所占比例正在逐年提升,如果渲染單元還是堅(jiān)持SIMD設(shè)計(jì)會(huì)讓效率下降。為此NVIDIA在G80中做出大膽變革:流處理器不再針對(duì)矢量設(shè)計(jì),而是統(tǒng)統(tǒng)改成了標(biāo)量ALU單元,這種架構(gòu)叫做MIMD(Multiple Instruction Multiple Data,多指令多數(shù)據(jù)流)
G80核心架構(gòu),每個(gè)流處理器就是一個(gè)標(biāo)量ALU
如此一來(lái),對(duì)于依然占據(jù)主流的4D矢量操作來(lái)說(shuō),G80需要讓1個(gè)流處理器在4個(gè)周期內(nèi)才能完成,或者是調(diào)動(dòng)4個(gè)流處理器在1個(gè)周期內(nèi)完成,那么G80的執(zhí)行效率豈不是很低?沒(méi)錯(cuò),所以NVIDIA大幅提升了流處理器工作頻率(兩倍于核心頻率),擴(kuò)充了流處理器的規(guī)模(128個(gè)),這樣G80的128個(gè)標(biāo)量流處理器的運(yùn)算能力就基本相當(dāng)于傳統(tǒng)的64個(gè)(128×2?)4D矢量ALU。大家應(yīng)該知道R600擁有64個(gè)5D矢量ALU,最終的性能G80要遠(yuǎn)勝R600。
當(dāng)然這只是在處理4D指令時(shí)的情形,隨著圖形畫(huà)面越來(lái)越復(fù)雜,1D、2D、3D指令所占比例正在逐年增多,而G80在遇到這種指令時(shí)可說(shuō)是如魚(yú)得水,與4D一樣不會(huì)有任何效能損失,指令轉(zhuǎn)換效率高并且對(duì)指令的適應(yīng)性非常好,這樣G80就將GPU Shader執(zhí)行效率提升到了新的境界!
MIMD架構(gòu)的劣勢(shì)
G80的架構(gòu)聽(tīng)起來(lái)很完美,但也存在不可忽視的缺點(diǎn):根據(jù)前面的分析可以得知,4個(gè)1D標(biāo)量ALU和1個(gè)4D矢量ALU的運(yùn)算能力是相當(dāng)?shù)?,但是前者需?個(gè)指令發(fā)射端和4個(gè)控制單元,而后者只需要1個(gè),如此一來(lái)MIMD架構(gòu)所占用的晶體管數(shù)將遠(yuǎn)大于SIMD架構(gòu)!
所以AMD的SIMD架構(gòu)可以用較少的晶體管造出龐大數(shù)量的流處理器、擁有恐怖的理論浮點(diǎn)運(yùn)算能力;而NVIDIA的MIMD架構(gòu)必須使用更多的晶體管制造出看似比較少的流處理器,理論浮點(diǎn)運(yùn)算能力相差很遠(yuǎn)。雙方走的都是極端路線,AMD以數(shù)量彌補(bǔ)效率的不足,而NVIDIA以效率彌補(bǔ)數(shù)量的劣勢(shì)。
關(guān)注我們



