GTX680架構(gòu)解析 GPU版開普勒三大定律
泡泡網(wǎng)顯卡頻道3月22日 “什么?GTX680的流處理器數(shù)量是1536個?而且GTX680的流處理器與核心同頻率,不再是兩倍了?這規(guī)格簡直和HD6970一模一樣!AMD的HD7970剛開始學(xué)習(xí)NVIDIA的架構(gòu),現(xiàn)在NVIDIA的GTX680又學(xué)AMD了,你們這是要鬧哪樣啊?”
相信很多人聽到GTX680的規(guī)格時,都會產(chǎn)生這樣一種想法。在GTX680發(fā)布之前,各種小道消息不脛而走之時,筆者也很納悶,NVIDIA的Kepler架構(gòu)到底發(fā)生了什么樣的變化?難不成N/A雙方真的要互相學(xué)習(xí)、取長補(bǔ)短?
在新一代GTX680發(fā)布前夕,NVIDIA召開了多場技術(shù)講座,NVIDIA總部的專家為全球各大媒體編輯詳細(xì)解讀了新一代Kepler(開普勒)架構(gòu)的技術(shù)特性,筆者經(jīng)過深入學(xué)習(xí)研究之后,今天就為大家揭開謎底——新一代GPU圖形架構(gòu)到底誰更先進(jìn)?
NVIDIA和AMD的GPU架構(gòu)相關(guān)名詞解讀:
1. NVIDIA喜歡用物理學(xué)家的名字來為GPU架構(gòu)命名,從DX10開始第一代叫做Tesla(特斯拉)、第二代是Fermi(費(fèi)米)、第三代是Kepler(開普勒)、第四代是Maxwell(麥克斯韋),這些科學(xué)家的大名是如雷貫耳,就不做解釋了。
2. Kepler(開普勒)是NVIDIA新一代的GPU架構(gòu)代號,基于開普勒架構(gòu)第一顆GPU的代號是GK104,基于GK104核心的首款顯卡是GeForce GTX 680。
3. AMD以前GPU代號和NVIDIA一樣也是字母+數(shù)字,但從DX11時代開始GPU的代號用單詞來命名,比如HD5000系列的架構(gòu)代號是EverGreen(常青樹),高端HD5870核心代號Cypress(柏樹)、中端HD5770核心代號Juniper(杜松);
HD6000的架構(gòu)代號是North Island(北方群島),高端HD6970核心代號Cayman(開曼群島),中端HD6870核心代號Barts(圣巴特,加勒比海某小島);
HD7000的架構(gòu)代號是Sourth Island(南方群島),高端HD7970核心代號Tahiti(大溪地),中端HD7870核心代號Pitcairn(南太平洋某英屬群島),主流HD7770核心代號Cape Verde(佛得角,非洲最南邊島國)。
今年一月份,在AMD發(fā)布HD7970時,我們曾詳細(xì)的分析過AMD代號為南方群島的“Graphics Core Next”架構(gòu)。這是AMD收購ATI之后的近5年來第一次對GPU架構(gòu)進(jìn)行“傷筋動骨”的“手術(shù)”,而架構(gòu)調(diào)整的核心內(nèi)容則是為并行計(jì)算優(yōu)化設(shè)計(jì),我們發(fā)現(xiàn)AMD的GCN架構(gòu)與NVIDIA的GPU有很多相似之處。
當(dāng)時筆者曾感慨:“在流處理器部分,終于不用費(fèi)勁的把AMD和NVIDIA GPU架構(gòu)分開介紹了,因?yàn)镚CN與SM已經(jīng)沒有本質(zhì)區(qū)別了。剩下的只是緩存容量、流處理器簇的數(shù)量、線程調(diào)度機(jī)制的問題,雙方根據(jù)實(shí)際應(yīng)用自然會有不同的判斷,自家的前后兩代產(chǎn)品也會對這些數(shù)量和排列組合進(jìn)行微調(diào)。AMD向NVIDIA的架構(gòu)靠攏,證明了他這么多年來確實(shí)是在錯誤的道路上越走越遠(yuǎn),還好浪子回頭金不換,這次GCN架構(gòu)簡直就是大躍進(jìn)!”
促使AMD做出革命性改進(jìn)的一大原因,就是從R600開始SIMD(單指令多數(shù)據(jù)流)VILW(超長指令集)的效率問題,AMD的GPU固然擁有恐怖的浮點(diǎn)運(yùn)算能力,但很多時候都不能完全發(fā)揮出來,由此導(dǎo)致游戲性能和計(jì)算性能都要大打折扣。此后的四代產(chǎn)品雖然在R600的基礎(chǔ)上修修補(bǔ)補(bǔ),但始終未能從根本上解決問題。
AMD承認(rèn),從VLIW到GCN是GPU的革命,這次革命NVIDIA幾年前就完成了
NVIDIA的GPU從G80時代開始,其MIMD(多指令多數(shù)據(jù)流)一直以高效能而著稱,但也存在一個讓人頭疼的問題——GPU流處理器數(shù)量較少、浮點(diǎn)運(yùn)算能力太低,這同樣限制了N卡在游戲以及計(jì)算方面的實(shí)際性能。
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ù)量的劣勢。
6年前從G80和R600開始,NVIDIA和AMD在GPU架構(gòu)上分道揚(yáng)鑣,這么多年經(jīng)歷了風(fēng)風(fēng)雨雨之后,發(fā)現(xiàn)極左或極右路線都有各自的局限性,修正主義治標(biāo)不治本,唯有走中間路線才是正道!不過中間路線也有不同的走法,有些人還是偏左、有些人還是偏右……
從GPU外圍模塊來看,AMD的Tahiti和上代Cayman相比變化不大,只是強(qiáng)化了曲面細(xì)分單元,加入了雙異步計(jì)算引擎而已。
HD6970代號為Cayman的GPU核心架構(gòu)圖
HD7970代號為Tahiti的GPU核心架構(gòu)圖
最大的改變來自于流處理器部分,原有的SIMD引擎不見了,取而代之的是GCN陣列,那SIMD引擎與GCN陣列有什么本質(zhì)區(qū)別呢?
Cayman擁有20個SIMD引擎,每個SIMD引擎內(nèi)部包括16個這樣的4D矢量運(yùn)算單元
Tahiti擁有32個GCN陣列,每個GCN陣列里面包括4個SIMD-16單元
Tahiti的每個GCN陣列里面包括4個SIMD單元,每個SIMD單元內(nèi)部包括16個1D標(biāo)量運(yùn)算單元。這樣的話Cayman的SIMD引擎是16x4=64個流處理器,而Tahiti的GCN陣列是4x16=64個流處理器,總數(shù)量雖然沒有變化,但架構(gòu)上是截然相反的設(shè)計(jì)——Tahiti相對于Cayman來說革命性的改變就是把4D矢量運(yùn)算單元改成了1D標(biāo)量運(yùn)算單元!
但是,GCN架構(gòu)與NVIDIA的CUDA架構(gòu)還是有明顯的區(qū)別,那就是GCN里面包括了4個SIMD-16單元,標(biāo)量流處理器被硬性拆分為4個小組,而NVIDIA的SM則沒有這種設(shè)計(jì),所有流處理器都一視同仁。
盡管AMD的架構(gòu)在向NVIDIA靠攏,但雙方還是有明顯區(qū)別,而且NVIDIA也在不斷的改變。至于NVIDIA和AMD歷代產(chǎn)品架構(gòu)上的變化,之前多篇文章中都已經(jīng)交代過了,這里就不再重復(fù),我們通過這個簡單的數(shù)字變化,來了解一下:
先看看AMD方面,從R600一直到Cypress,可以說一直在堆SIMD,動輒翻倍,架構(gòu)沒有任何變化;從Cypress到Cayman變化也不大,只是把矢量單元從5D改為4D;從Cayman到Tahiti可以說是質(zhì)變,SIMD被GCN取代,4D矢量運(yùn)算單元改為1D標(biāo)量運(yùn)算單元。
而NVIDIA方面,則是不停的對GPU的GPC、SM、CUDA核心等配比進(jìn)行微調(diào),在微調(diào)的過程中經(jīng)歷了兩次突變:第一次是GT200到GF100,首次引出了GPC(圖形處理器集群)的概念,GPC數(shù)量減少但SM數(shù)以及流處理器數(shù)量增加不少;第二次就是現(xiàn)在了,從GF100到GK104,SM數(shù)量減少,但流處理器數(shù)量暴增!
改變是為了適應(yīng)形式的變化,解決此前出現(xiàn)的一些問題,那NVIDIA的架構(gòu)有什么問題呢?此前我們多次提到過,雖然NVIDIA的GPU在效能方面占盡優(yōu)勢,但也不是完美無缺的——NVIDIA最大的劣勢就是流處理器數(shù)量較少,導(dǎo)致理論浮點(diǎn)運(yùn)算能力較低。當(dāng)然這只是表面現(xiàn)象,其背后的本質(zhì)則是MIMD(多指令多數(shù)據(jù)流)的架構(gòu),相當(dāng)一部分比例的晶體管消耗在了指令發(fā)射端和控制邏輯單元上面,所以流處理器數(shù)量始終低于對手。
GF110和GK104芯片對比圖
為了保證GPU性能持續(xù)增長,NVIDIA必須耗費(fèi)更多的晶體管、制造出更大的GPU核心,而這些都需要先進(jìn)的、成熟的半導(dǎo)體制造工藝的支持。NVIDIA之所以在GF100(GTX480)時代落敗,并非架構(gòu)或者研發(fā)端出了什么問題(GF110/GTX580的成功可以證明),而是核心太大導(dǎo)致40nm工藝無法支撐,良率低下漏電流難以控制,最終導(dǎo)致核心不完整且功耗巨大。如此一來,NVIDIA原有的架構(gòu)嚴(yán)重受制于制造工藝,并非可持續(xù)發(fā)展之路。
為此,NVIDIA將芯片架構(gòu)逐步轉(zhuǎn)向了SIMT的模式,即Single Instruction Multiple Threads(單指令多線程),SIMT有別與AMD的SIMD,SIMT的好處就是無需開發(fā)者費(fèi)力把數(shù)據(jù)湊成合適的矢量長度,并且SIMT允許每個線程有不同的分支。 純粹使用SIMD不能并行的執(zhí)行有條件跳轉(zhuǎn)的函數(shù),很顯然條件跳轉(zhuǎn)會根據(jù)輸入數(shù)據(jù)不同在不同的線程中有不同表現(xiàn),這個只有利用SIMT才能做到。
SIMT在硬件部分的結(jié)構(gòu)還是要比SIMD復(fù)雜一些,NVIDIA還是更注重效率一些,所以NVIDIA的流處理器數(shù)量還是要比AMD少,但差距已經(jīng)沒以前那么夸張了。
基于效能和計(jì)算能力方面的考慮,NVIDIA與AMD不約而同的改變了架構(gòu),NVIDIA雖然還是采用SIMT架構(gòu),但也借鑒了AMD“較老”的SIMD架構(gòu)之作法,降低控制邏輯單元和指令發(fā)射器的比例,用較少的邏輯單元去控制更多的CUDA核心。于是一組SM當(dāng)中容納了192個核心的壯舉就變成了現(xiàn)實(shí)!
通過上面這個示意圖就看的很清楚了,CUDA核心的縮小主要?dú)w功于28nm工藝的使用,而如此之多的CUDA核心,與之搭配的控制邏輯單元面積反而縮小了,NVIDIA強(qiáng)化運(yùn)算單元削減控制單元的意圖就很明顯了。
Fermi的硬件相關(guān)性檢查變?yōu)镵epler的軟件預(yù)解碼
此時相信有人會問,降低控制單元的比例那是不是意味著NVIDIA賴以成名的高效率架構(gòu)將會一去不復(fù)返了?理論上來說效率肯定會有損失,但實(shí)際上并沒有想象中的那么嚴(yán)重。NVIDIA發(fā)現(xiàn)線程的調(diào)度有一定的規(guī)律性,編譯器所發(fā)出的條件指令可以被預(yù)測到,此前這部分工作是由專門的硬件單元來完成的,而現(xiàn)在可以用簡單的程序來取代,這樣就能節(jié)約不少的晶體管。
隨意在開普勒中NVIDIA將一大部分指令派發(fā)和控制的操作交給了軟件(驅(qū)動)來處理。而且GPU的架構(gòu)并沒有本質(zhì)上的改變,只是結(jié)構(gòu)和規(guī)模以及控制方式發(fā)生了變化,只要驅(qū)動支持到位,與游戲開發(fā)商保持緊密的合作,效率損失必然會降到最低——事實(shí)上NVIDIA著名的The Way策略就是干這一行的!
The Way(游戲之道)計(jì)劃可以保證NVIDA的GPU架構(gòu)與游戲完美兼容
這方面NVIDIA與AMD的思路和目的是相同的,但最終體現(xiàn)在架構(gòu)上還是有所區(qū)別。NVIDIA的架構(gòu)被稱為SIMT(Single Instruction Multiple Threads,單指令多線程),NVIDIA并不像AMD那樣把多少個運(yùn)算單元捆綁為一組,而是以線程為單位自由分配,控制邏輯單元會根據(jù)線程的任務(wù)量和SM內(nèi)部CUDA運(yùn)算單元的負(fù)載來決定調(diào)動多少個CUDA核心進(jìn)行計(jì)算,這一過程完全是動態(tài)的。
但不可忽視的是,軟件預(yù)解碼雖然大大節(jié)約了GPU的晶體管開銷,讓流處理器數(shù)量和運(yùn)算能力大增,但對驅(qū)動和游戲優(yōu)化提出了更高的要求,這種情況伴隨著AMD度過了好多年,現(xiàn)在NVIDIA也要面對相同的問題了,希望他能做得更好一些。
全新的Kepler相比上代的Fermi架構(gòu)改變了什么,看架構(gòu)圖就很清楚了:
Fermi GF100/GF110核心架構(gòu)圖
Kepler GK104核心架構(gòu)圖
GK104相比GF110,整體架構(gòu)沒有大的改變,GPU(圖形處理器集群)維持4個,顯存控制器從6個64bit(384bit)減至4個64bit(256bit),總線接口升級至PCIE 3.0。剩下的就是SM方面的改變了:
GF100和GF104的SM架構(gòu)圖
這里之所以要把GF104這顆中端核心的SM架構(gòu)圖也列出來,是因?yàn)镚F104相比高端的GF100核心做了一些細(xì)小的改動,這些改動也被沿用到了GK104當(dāng)中。另外從核心代號上來看,GK104其實(shí)就是用來取代GF104的,而取代GF100的核心另有他人。
GK104的SMX架構(gòu)圖
NVIDIA把GK104的SM(不可分割的流處理器集群)稱為SMX,原因就是暴增的CUDA核心數(shù)量。但實(shí)際上其結(jié)構(gòu)與上代的SM沒有本質(zhì)區(qū)別,不同的只是各部分單元的數(shù)量和比例而已。具體的區(qū)別逐個列出來進(jìn)行對比:
1. NVIDIA現(xiàn)在把流處理器稱為CUDA核心;
2. SFU(Special Function Units,特殊功能單元)是比CUDA核心更強(qiáng)的額外運(yùn)算單元,可用于執(zhí)行抽象的指令,例如正弦、余弦、倒數(shù)和平方根,圖形插值指令也在SFU上執(zhí)行;
3. Warp是并行線程調(diào)度器,每一個Warp都可以調(diào)度SM內(nèi)部的所有CUDA核心或者SFU;
4. Dispatch Unit是指令分派單元,分則將Warp線程中的指令按照順序和相關(guān)性分配給不同的CUDA核心或SFU處理;
5. LD/ST就是載入/存儲單元,可以為每個線程存儲運(yùn)算源地址與路徑,方便隨時隨地的從緩存或顯存中存取數(shù)據(jù);
6. TMU是紋理單元,用來處理紋理和陰影貼圖、屏幕空間環(huán)境光遮蔽等圖形后期處理;
通過以上數(shù)據(jù)對比不難看出,GK104暴力增加CUDA核心數(shù)量的同時,SFU和TMU這兩個與圖形或計(jì)算息息相關(guān)處理單元也同比增加,但是指令分配單元和線程調(diào)度器還有載入/存儲單元的占比都減半了。這也就是前文中提到過的削減邏輯控制單元的策略,此時如何保證把指令和線程填滿一個CUDA核心,將是一個難題。
除了CUDA核心數(shù)量大增之外,開普勒架構(gòu)還有個很明顯的改變,那就是CUDA核心的頻率不再是GPU頻率的兩倍,現(xiàn)在整顆GPU所有單元的工作頻率都是相同的,GTX680的默認(rèn)頻率達(dá)到了1GHz!
NVIDIA的上代產(chǎn)品,比如GTX560Ti,一些AIC的超頻版本默認(rèn)核心頻率可達(dá)900MHz,CUDA頻率是1800MHz。按理說如果新一代架構(gòu)改變不是很大的話,在28nm的幫助下核心頻率到1GHz沒有問題,那CUDA頻率應(yīng)該可以到2GHz才對。而現(xiàn)在的情況則是CUDA的頻率“被減半了”。
NVIDIA官方對CUDA與核心同頻的解釋是——功耗原因,為了盡可能的控制GTX680的功耗,不再讓CUDA工作在兩倍頻率下。
對于這種解釋,筆者并不理解,如果CUDA頻率真能工作在2GHz下,性能提升兩倍,此時功耗增長兩倍又如何?如此增加功耗是值得的,并不影響GTX680顯卡的“每瓦性能”。
所以,筆者猜測此次CUDA與核心同頻,應(yīng)該有別的原因,以下猜測純屬虛構(gòu),大家隨便看看不要當(dāng)真:
原因一:此次NVIDIA對SMX的結(jié)構(gòu)進(jìn)行了大幅度的調(diào)整,除了控制邏輯單元削減外,過于密集CUDA單元結(jié)構(gòu)也發(fā)生了一些變化,導(dǎo)致CUDA單元或控制邏輯單元上不了更高的頻率,所以現(xiàn)在就和AMD一樣同頻了;
原因二:保留實(shí)力。NVIDIA官方發(fā)言人在AMD發(fā)布HD7970之后曾表示:AMD GCN架構(gòu)“南方群島”核心的表現(xiàn)并沒有超出NVIDIA的預(yù)期,一切盡在掌握之中。而Kepler架構(gòu)則將比南方群島要強(qiáng)出許多,因?yàn)楸緛鞱VIDIA為新架構(gòu)設(shè)計(jì)的對手是AMD更強(qiáng)的新產(chǎn)品,但實(shí)際上南島并未達(dá)到NVIDIA的設(shè)想性能。
原因三:確實(shí)是功耗問題,強(qiáng)行讓CUDA工作在雙倍頻率下對GPU的電路設(shè)計(jì)提出了很高的要求,28nm新工藝目前可能還尚未完全吃透,上高頻有一定的難度。
雖然CUDA頻率達(dá)不到兩倍,但NVIDIA通過加入類似Intel睿頻的技術(shù),一定程度上提高了工作頻率,性能也同比增長,而且高于預(yù)期,或者說是對手不如預(yù)期。
我們先來回顧一下顯存控制器的發(fā)展史:
NVIDIA:G80(384bit)-G92(256bit)-GT200(512bit)-GF100(384bit)
AMD:R600(512bit)-RV670(256bit)-RV770(256bit)-Cypress(256bit)-Cayman(256bit)-Tahiti(384bit)
384bit顯存應(yīng)該是高端顯卡的標(biāo)配
● GK104核心為什么只有256bit顯存?
大家應(yīng)該注意到了,NVIDIA近年來的高端顯卡,很少有256bit顯存的設(shè)計(jì),現(xiàn)在就連AMD都升級到384bit顯存,256bit已經(jīng)很難在躋身為高端,為什么NVIDIA新一代的GTX680居然降級到了256bit?
答案在其核心代號上面,GK104的定位就是取代GF104/GF114,它并非是NVIDIA最高端的GPU,顯存方面自然不會用最高端的配置。
● GTX680顯存頻率彌補(bǔ)位寬不足,首次達(dá)到6GHz!
另外,之前我們反復(fù)提到過,AMD從HD4870開始第一次使用GDDR5顯存,GDDR5的標(biāo)準(zhǔn)幾乎可以說是AMD的人一手制定的,AMD歷代GPU憑借GDDR5超高頻率的優(yōu)勢,以較低的顯存位寬很好的控制了成本。
而NVIDIA從GTX480開始也使用了GDDR5顯存,但頻率一直都上不去,GTX400和GTX500系列顯卡的顯存頻率一直在4000MHz上下徘徊。NVIDIA的顯卡在GPU頻率方面超頻能力還不錯,但顯存的超頻空間幾乎沒有,即便有液氮的助力也無濟(jì)于事。
現(xiàn)在,隨著開普勒的發(fā)布,NVIDIA在顯存頻率上面終于反超AMD,重新設(shè)計(jì)的顯存控制器突破了頻率的桎梏,瞬間從4000MHz飆升至6000MHz,帶寬提升達(dá)50%之多,這個幅度就相當(dāng)于把256bit免費(fèi)升級至384bit,顯存帶寬不再是瓶頸了。
最后再來看看開普勒架構(gòu)在其它方面的改進(jìn):
● 多形體引擎2.0:
從GTX480開始,NVIDIA就宣稱只有自己“做對了DX11”,因?yàn)镚F100核心擁有多達(dá)16個多形體引擎,每個多形體引擎內(nèi)部都有獨(dú)立的曲面細(xì)分單元,而HD5870整顆Cypress核心只有1個曲面細(xì)分單元。通過專項(xiàng)測試來看,GTX480的曲面細(xì)分和幾何性能都遙遙領(lǐng)先于HD5870。
AMD方面當(dāng)然也意識到了孽弱的曲面細(xì)分性能是個瓶頸,一方面強(qiáng)調(diào)“曲面沒必要分太細(xì)”,另一方面也在新一代產(chǎn)品中不斷的加強(qiáng)曲面細(xì)分性能。根據(jù)AMD官方的說法,HD6870通過雙超線程分配處理器將中等程度的曲面細(xì)分性能提高了2倍;HD6970通過雙圖形引擎又提升了2倍;而HD7970則重新設(shè)計(jì)了曲面細(xì)分單元,在所有等級下都可以達(dá)到HD6970的4倍!最終HD7970的曲面細(xì)分能力相比HD5870提升了10倍左右!
在AMD不斷更新架構(gòu)的同時,NVIDIA的DX11 GPU沒有變化(GF110和GF100是一樣的),顯然HD7970的曲面細(xì)分性能已經(jīng)超越了GTX580。這次該NVIDIA著急了。
在開普勒架構(gòu)中,我們看到了多形體引擎2.0版,結(jié)構(gòu)上沒有什么變化,但處理能力翻倍了。NVIDIA稱,Kepler的多形體引擎在同頻率下的性能是Fermi的兩倍,而且新引擎在重度曲面細(xì)分情況下的效率更高,性能損失更小。
DX11理論曲面性能性能測試,橫軸為細(xì)分級別
值得注意的是,GK104只有8個多形體引擎,而GF110有16個多形體引擎,但最終GTX680的曲面細(xì)分性能比GTX580還要強(qiáng),看來單個引擎的效能確實(shí)翻倍了,超出那部分的性能應(yīng)該是高達(dá)1GHz頻率的貢獻(xiàn)。
可以看出,NVIDIA的曲面細(xì)分單元在重度細(xì)分模式下的效率更好一些,低級別模式下HD7970并不差還略占優(yōu)勢,但級別越高差距就越大。根據(jù)目前DX11游戲的發(fā)展趨勢來看,“曲面沒必要分太細(xì)”的說法已經(jīng)過時,不然AMD也就成倍的增加曲面細(xì)分性能了,未來的DX11游戲會加入高精度曲面細(xì)分引擎,屆時N卡的優(yōu)勢會得到體現(xiàn)。
● 更快的高速緩存:
GK104的緩存設(shè)計(jì)與GF100沒有區(qū)別,都是一級緩存、一級紋理緩存、二級緩存這樣的層級設(shè)計(jì),而且緩存容量的配比也沒有變化,但因?yàn)槟K化設(shè)計(jì)的關(guān)系,總?cè)萘坑兴鶞p少。
緩存架構(gòu)讓各流水線之間可以高效地通信,減少了顯存讀寫操作
GK104的每個SMX當(dāng)中配有64KB的Shared Memory/L1,GK104總共擁有8個SMX,所以一級緩存的總?cè)萘渴?12KB。
GK104的每個光柵單元/64bit顯存控制器配有128KB的L2,GK104總共有4個64bit顯存控制器,所以二級緩存的總?cè)萘恳彩?12KB。
與GF100的1MB一級緩存、768KB的二級緩存相比,GK104的緩存容量確實(shí)小了很多,這個可以通過芯片透視圖明顯的看出。
雖然緩存容量變小了,但速度快了很多,NVIDIA強(qiáng)調(diào)GK104的L2帶寬比GF110增加了73%,其中改進(jìn)的算法提高了30%的緩存命中率,另外的43%則是得益于高達(dá)1GHz的核心頻率。此外,原子操作的吞吐量也大增3.5倍,尤其是單一共享地址的原子操作可提升11.7倍之多!
● 更多的紋理單元:
GK104的每個SMX內(nèi)部擁有16個紋理單元,8個SMX總計(jì)128個紋理單元;GF110的每個SM內(nèi)部擁有4個紋理單元,16個SM總計(jì)64個紋理單元;可以看出GK104這次大幅增加CUDA核心數(shù)量的同時,也沒有忘記紋理單元。
除了數(shù)量翻倍之外,紋理存取的限制也放開了,以前因?yàn)镈X11 API的限制,GPU最多只能對128個紋理進(jìn)行操作,而現(xiàn)在GK104可以使用超過100萬像素的紋理貼圖,而且可以并行的對多個紋理同時操作,在使用超大紋理時的CPU占用率大幅下降。但由于微軟DirectX API的限制,目前GK104的這些特性還只能在OpenGL API中體現(xiàn),未來版本的DirectX可能會加入支持。
長篇大論的分析相信大家看得都很累,最后我們將Tahiti與GK104這兩顆GPU的所有規(guī)格都列出來,進(jìn)行全方位的對比:
下面就通過數(shù)據(jù)分析一下架構(gòu)的特性:
1. GK104的晶體管數(shù)比GF110減少了,但流處理器數(shù)量達(dá)到了三倍,NVIDIA改進(jìn)架構(gòu)、提高浮點(diǎn)運(yùn)算的努力效果顯著。但是,同為1536個流處理器,GK104的晶體管數(shù)要遠(yuǎn)大于Cayman核心,這就證明了SIMT還是要比SIMD更消耗晶體管;
2. GTX680的核心與顯存頻率都創(chuàng)新高,但是TDP卻不到200W,這都要?dú)w功于它小核心的設(shè)計(jì)、以及不再使用雙倍CUDA頻率的作法,NVIDIA控制功耗的作法成效顯著;
3. Tahiti的晶體管數(shù)是GK104的1.22倍,流處理器數(shù)量是1.33倍,這兩個數(shù)字差距不是很大,N/A雙方自DX10時代以來頭一次達(dá)到了相似的晶體管利用率;
4. 從Cayman到Tahiti,AMD用了1.63倍的晶體管數(shù)才讓流處理器數(shù)量達(dá)到了原來的1.33倍;從GF110到GK104,NVIDIA減少了晶體管數(shù)量卻讓流處理器達(dá)到原來的三倍;可以看出雙方都在向?qū)Ψ降募軜?gòu)靠攏,目的只有一個,就是提高GPU的運(yùn)算效能;
通過之前的測試數(shù)據(jù)來看,AMD的GCN架構(gòu)相比上代確實(shí)提高了GPU的效能。而NVIDIA方面,通過我們的測試來看,GTX680的性能也是遠(yuǎn)超GTX580。
在核心面積、晶體管數(shù)量、功耗、流處理器數(shù)量、顯存容量、顯存位寬得各方面都不占優(yōu)勢(唯一的優(yōu)勢就是頻率)的情況下,GTX680的綜合性能能夠超越HD7970,Kepler與南方群島的架構(gòu)孰優(yōu)孰劣,相信大家已經(jīng)心里有數(shù)了。
GTX680詳細(xì)的評測,請看《開普勒秒殺GCN!新卡皇GTX680首發(fā)評測》■<
關(guān)注我們
