A卡N卡 GPU架構(gòu)解析11_第1頁
A卡N卡 GPU架構(gòu)解析11_第2頁
A卡N卡 GPU架構(gòu)解析11_第3頁
A卡N卡 GPU架構(gòu)解析11_第4頁
A卡N卡 GPU架構(gòu)解析11_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第頁為什么A卡的流處理器要比N卡多很多泡泡網(wǎng)顯卡頻道3月1日經(jīng)常有網(wǎng)友問這樣的問題:“為什么ATI顯卡的流處理器要比NVIDIA多那么多,而性能卻差不多呢?”這個問題往簡單里說就是它們的算法不同,當然這是不負責(zé)任的說法。往復(fù)雜里說那么三言兩語就講不清楚了,因為涉及到雙方GPU的核心架構(gòu)以及截然相反的設(shè)計理念。在DX9時代,大家都是通過“(像素)管線”來衡量顯卡的性能等級,而到了DX10時代,統(tǒng)一渲染架構(gòu)的引入使得顯卡不再區(qū)分“像素”和“頂點”,因此“管線”這種說法逐漸淡出了大家的視野,取而代之的是全新的“流處理器”,“流處理器”的數(shù)量直接影響顯卡的性能。從DX10到DX10.1再到DX11,轉(zhuǎn)眼間顯卡已經(jīng)發(fā)展到了第四代,但實際上不管ATI還是NVIDIA,它們的新一代顯卡都是在最早的DX10顯卡架構(gòu)基礎(chǔ)上不斷優(yōu)化、改進、擴充而來的。換句話說,即便是到了DX11時代,NVIDIA及ATI的性能大戰(zhàn)依然是G80及R600架構(gòu)的延續(xù)。那么,我們就很有必要對雙方的GPU圖形架構(gòu)進行深入研究,詳細分析各自的優(yōu)勢及劣勢,并且順便解答網(wǎng)友心中的疑惑:為什么A卡的流處理器要比N卡多很多?管線的由來和傳統(tǒng)矢量運算單元的弊端●“管線”的由來——1個時鐘周期4次運算在圖形處理中,最常見的像素都是由RGB(紅綠藍)三種顏色構(gòu)成的,加上它們共有的信息說明(Alpha),總共是4個通道。而頂點數(shù)據(jù)一般是由XYZW四個坐標構(gòu)成,這樣也是4個通道。在3D圖形進行渲染時,其實就是改變RGBA四個通道或者XYZW四個坐標的數(shù)值。為了一次性處理1個完整的像素渲染或幾何轉(zhuǎn)換,GPU的像素著色單元和頂點著色單元從一開始就被設(shè)計成為同時具備4次運算能力的算數(shù)邏輯運算器(ALU)。傳統(tǒng)像素管線/Shader示意圖數(shù)據(jù)的基本單元是Scalar(標量),就是指一個單獨的值,GPU的ALU進行一次這種變量操作,被稱做1D標量。由于傳統(tǒng)GPU的ALU在一個時鐘周期可以同時執(zhí)行4次這樣的并行運算,所以ALU的操作被稱做4DVector(矢量)操作。SIMD架構(gòu)示意圖一個矢量就是N個標量,一般來說絕大多數(shù)圖形指令中N=4。所以,GPU的ALU指令發(fā)射端只有一個,但卻可以同時運算4個通道的數(shù)據(jù),這就是SIMD(SingleInstructionMultipleData,單指令多數(shù)據(jù)流)架構(gòu)。●“管線”弊端越發(fā)明顯,引入混合型設(shè)計顯然,SIMD架構(gòu)能夠有效提升GPU的矢量處理性能,由于頂點和像素的絕大部分運算都是4DVector,它只需要一個指令端口就能在單周期內(nèi)完成4倍運算量,效率達到100%。但是4DSIMD架構(gòu)一旦遇到1D標量指令時,效率就會下降到原來的1/4,3/4的模塊被完全浪費。為了緩解這個問題,ATI和NVIDIA在進入DX9時代后相繼采用混合型設(shè)計,比如R300就采用了3D+1D的架構(gòu),允許Co-issue操作(矢量指令和標量指令可以并行執(zhí)行),NV40以后的GPU支持2D+2D和3D+1D兩種模式,雖然很大程度上緩解了標量指令執(zhí)行效率低下的問題,但依然無法最大限度的發(fā)揮ALU運算能力,尤其是一旦遇上分支預(yù)測的情況,SIMD在矢量處理方面高效能的優(yōu)勢將會被損失殆盡。改進的管線/Shader結(jié)構(gòu)可以這么理解,傳統(tǒng)的1條管線里面包含了4個基本運算單元,在早期這種架構(gòu)的執(zhí)行效率還是很高的,因為大多數(shù)程序指令都是4D的。但由于API和游戲復(fù)雜Shader指令的發(fā)展,4D指令所占比重開始下降,3D/2D/1D等混合指令頻繁出現(xiàn),所以傳統(tǒng)的管線式架構(gòu)效率越來越低!G80的標量流處理器架構(gòu)到了DX10時代,不再區(qū)分像素單元和頂點單元,還加入了新的幾何著色單元,這樣GPU的Shader單元不僅要處理像素和頂點操作,還要負責(zé)幾何等其它操作,混合型指令所占比重越來越大,必須放棄傳統(tǒng)的管線式架構(gòu)。●G80的標量流處理器架構(gòu)因此,NVIDIA從G80開始架構(gòu)作了變化,把原來的4D著色單元徹底打散,流處理器不再針對矢量設(shè)計,而是統(tǒng)統(tǒng)改成了標量運算單元。每一個ALU都有自己的專屬指令發(fā)射器,初代產(chǎn)品擁有128個這樣的1D運算器,稱之為流處理器。這些流處理器可以按照動態(tài)流控制智能的執(zhí)行各種4D/3D/2D/1D指令,無論什么類型的指令執(zhí)行效率都能接近于100%!G8X家族核心架構(gòu)圖如此一來,對于依然占據(jù)主流的4D矢量操作來說,G80需要讓1個流處理器在4個周期內(nèi)才能完成,或者是調(diào)動4個流處理器在1個周期內(nèi)完成,那么G80的執(zhí)行效率豈不是很低?沒錯,所以NVIDIA大幅提升了流處理器工作頻率(兩倍于核心頻率),擴充了流處理器的規(guī)模(128個),這樣G80的128個標量流處理器的運算能力就基本相當于傳統(tǒng)的64個(128×2/4)4D矢量ALU。G8X/G9X系列:8個流處理器為一組,2x8=16個為一簇當然這只是在處理4D指令時的情形,隨著圖形畫面越來越復(fù)雜,1D、2D、3D指令所占比例正在逐年增多,而G80在遇到這種指令時可說是如魚得水,及4D一樣不會有任何效能損失,指令轉(zhuǎn)換效率高并且對指令的適應(yīng)性非常好,這樣G80就將GPUShader執(zhí)行效率提升到了新的境界!MIMD架構(gòu)示意圖及傳統(tǒng)的SIMD架構(gòu)不同,G80的這種標量流處理器被稱為MIMD(MultipleInstructionMultipleData,多指令多數(shù)據(jù)流)架構(gòu)。G80的架構(gòu)聽起來很完美,但也存在不可忽視的缺點:根據(jù)前面的分析可以得知,4個1D標量ALU和1個4D矢量ALU的運算能力是相當?shù)?,但是前者需?個指令發(fā)射端和4個控制單元,而后者只需要1個,如此一來MIMD架構(gòu)所占用的晶體管數(shù)將遠大于SIMD架構(gòu)!R600的超標量流處理器架構(gòu)G80的128個1D標量ALU聽起來規(guī)模很龐大,而且將4D矢量指令轉(zhuǎn)換為4個1D標量指令時的效率也能達到100%,但實際上如果用相同的晶體管規(guī)模,可以設(shè)計出更加龐大的ALU運算器,這就是R600的流處理器架構(gòu)?!馎TI改進傳統(tǒng)架構(gòu),制造龐大規(guī)模的流處理器及革命性的G80架構(gòu)不同,R600身上有很多傳統(tǒng)GPU的影子,其StreamProcessingUnits很像上代的ShaderUnits,它依然是傳統(tǒng)的SIMD架構(gòu)。R600擁有4個SIMD陣列,每個SIMD陣列包括了16個StreamProcessingUnits,這樣總共就是64個,但不能簡單地認為它擁有64個流處理器,因為R600的每個Units內(nèi)部包含了5個ALU:我們來仔細看看R600的流處理器架構(gòu):BranchExecutionUnit(分歧執(zhí)行單元)就是指令發(fā)射和控制器,它獲得指令包后將會安排至它管轄下5個ALU,進行流控制和條件運算。GeneralPurposeRegisters(通用寄存器)存儲輸入數(shù)據(jù)、臨時數(shù)值和輸出數(shù)據(jù),并不存放指令。由于內(nèi)部的5個1DALU共享同一個指令發(fā)射端口,因此宏觀上R600應(yīng)該算是SIMD(單指令多數(shù)據(jù)流)的5D矢量架構(gòu)。但是R600內(nèi)部的這5個ALU及傳統(tǒng)GPU的ALU有所不同,它們是各自獨立能夠處理任意組合的1D/2D/3D/4D/5D指令,完美支持Co-issue(矢量指令和標量指令并行執(zhí)行),因此微觀上可以將其稱為5DSuperscalar超標量架構(gòu)。通過上圖就可以清楚的看到,單指令多數(shù)據(jù)流的超標量架構(gòu)可以執(zhí)行任意組合形式的混合指令,在一個StreamProcessingUnits內(nèi)部的5個ALU可以在單時鐘周期內(nèi)進行5次MAD(Multiply-Add,乘加)運算,其中比較“胖”的ALU除了MAD之外還能執(zhí)行一些函數(shù)(SIN、COS、LOG、EXP等)運算,在特殊條件下提高運算效率!現(xiàn)在我們就知道R600確實擁有64x5=320個流處理器。R600的流處理器之所以能比G80多好幾倍就是得益于SIMD架構(gòu),可以用較少的晶體管堆積出龐大規(guī)模的流處理器。但是在指令執(zhí)行效率方面,SIMD架構(gòu)非常依賴于將離散指令重新打包組合的算法和效率,正所謂有得必有失。通過前面的分析我們可以初步得出這樣的結(jié)論:G80的MIMD標量架構(gòu)需要占用額外的晶體管數(shù),在流處理器數(shù)量和理論運算能力方面比較吃虧,但卻能保證超高的執(zhí)行效率;而R600的SIMD超標量架構(gòu)可以用較少的晶體管數(shù)獲得很多的流處理器數(shù)量和理論運算能力,但執(zhí)行效率方面要依具體情況而定。G92和RV670:核心架構(gòu)沒有任何變化G80和R600都是不計成本的作品,成本高、功耗發(fā)熱大,隨著新工藝逐漸走向成熟,雙方不約而同的推出了改良版的核心,使得新高端產(chǎn)品的以大規(guī)模量產(chǎn),這就誕生了G92和RV670核心,這兩顆GPU雖然都擁有眾多誘人的新特性,但實際上核心架構(gòu)方面沒有任何的變化。●G92相對于G80的改進:1.制造工藝由90nm升級至65nm;2.新工藝集成度更高,G92的GPU核心部分及2D輸出模塊(NVIO)合二為一,是單芯片設(shè)計;3.PCI-E控制器升級支持2.0版本,帶寬倍增;4.高清視頻解碼引擎由VP1升級至VP2,支持MPEG2和H.264的完全硬解碼,VC-1部分硬解碼;5.加入HDCP支持和HDMI輸出支持;6.顯存控制器由384bit降至256bit,這是控制成本的需要。由于顯存控制器綁定光柵單元(ROP),因此G92的光柵單元只有16個,而G80是24個;7.紋理尋址單元數(shù)量加倍,紋理采樣效率提升。在以上諸多改進之中,只有這一項才是設(shè)計到核心架構(gòu)的,因此這里重點介紹:G80的流處理器結(jié)構(gòu)G92的流處理器結(jié)構(gòu)上面兩幅架構(gòu)圖清楚的體現(xiàn)出了G80和G92的差異。NVIDIAGPU的流處理器簇和紋理單元還有一級緩存是綁定在一起的,G80的每簇內(nèi)建了8個紋理過濾單元(TextureFilteringUnit)和4個紋理尋址單元(TextureAddressingUnit),總共數(shù)目就是64個TFU和32個TAU。而G92則提升至每組內(nèi)建8個TFU和8個TAU,總共64個TFU和64個TAU,也就是紋理尋址單元數(shù)量加倍。更多的TAU可令單一周期處理更多的紋理采樣操作,部分情況下紋理處理器效率提升一倍!雖然DX9C時代反復(fù)強調(diào)高像素/紋理比例,但DX10時代引入了更多的紋理操作,并且SM4.0支持更復(fù)雜的紋理陣列,以便讓物體表面擁有更豐富的細節(jié),并且在超高分辨率下也不至于失真,但也對紋理操作提出了較高的要求,NVIDIA此舉意在提升CallofJuarez、Crysis這種高精度游戲中的效率。事實上,除了G80核心之外,G84、G86、G92、G96等所有衍生出來的小核心都改進了紋理單元設(shè)計,也就是說從8600GT開始起紋理尋址單元的數(shù)量就及紋理過濾單元相等了,只是中低端顯卡的變化未能引起大家的重視?!馬V670相對于R600的改進:1.制造工藝由80nm升級至55nm;2.PCI-E控制器升級支持2.0版本,帶寬倍增;3.高清解碼引擎由原來的Shader解碼升級為UVD引擎,支持H.264和VC-1的完全硬解碼;4.顯存控制器由512bit降至256bit,這是控制成本的需要,而且以R600和RV670的運算能力其實不需要太高的顯存位寬;5.支持PowerPlay節(jié)能技術(shù),待機功耗很低;6.API升級至DX10.1;雖然API升級了,但實際上只不過是加入了新的ShaderModel4.1指令集而已,流處理器架構(gòu)方面沒有變化,甚至光柵單元和紋理單元都沒有任何改動。由于R600/RV670的架構(gòu)是顯存控制器并沒有綁定光柵單元,雖然RV670的顯存位寬減少了,但并沒有造成太多的性能損失,反而由于頻率的提升得以反超。因此G92相比G80是性能下降了,而RV670相比R600是有所提升,但最終的結(jié)果RV670和G92的差距依然很大??梢钥闯?,G92和RV670在技術(shù)方面的改進其實都是差不多,真正最關(guān)鍵的(流處理器)核心架構(gòu)方面其實沒有任何變化。GT200架構(gòu)的變化:重組SM結(jié)構(gòu)G92雖然有著眾多G80所不具備的新特性,但本質(zhì)上來講它是G80削減成本的產(chǎn)物。而NVIDIA真正第二代DX10核心應(yīng)該是GT200才對,下面我們就看看GT200相對于G80的改進?!馟T200架構(gòu)的變化眾所周知,GT200最大的變化就是擁有240個流處理器,而且顯存位寬高達512bit,當然這只是表象,真正核心架構(gòu)方面的改進如下:G80/G92擁有128個流處理器,這些流處理器分為8組TPC(線程處理器簇),每組16個SP(流處理器),這16個SP又分為兩組SM(多核流處理器),SM是不可拆分的最小單元,是8核心設(shè)計。GTX200將TPC數(shù)量從8個擴充至10個,而且在每個TPC內(nèi)部,SM從2個增加到3個,SM依然是8核心設(shè)計。如此一來,GTX200核心的流處理器數(shù)量就是,8×3×10=240個,幾乎是G80的兩倍,但卻不是256個。紋理單元部分,GTX200的每個TPC內(nèi)部擁有8個TF,這樣總共就是8×10=80個紋理單元。G80/G92的流處理器及紋理單元的比率是128:64=2:1,而GT200的流處理器及紋理單元的比率是240:80=3:1,正是GT200微架構(gòu)方面的變化造成了這一結(jié)果?!馟TX200核心微架構(gòu)改進GTX200核心在流處理器、紋理單元數(shù)量上的擴充是很容易理解的,其實除了擴充規(guī)模之外,在架構(gòu)的細微之處還有不少的改進,這些都有助于提高新核心在未來游戲或通用計算中的執(zhí)行效能:1.每個SM可執(zhí)行線程上限提升:G80/G92核心每個SM(即不可拆分的8核心流處理器)最多可執(zhí)行768條線程,而GTX200核心的每個SM提升至1024條,而且GTX200擁有更多的SM,芯片實力達到原來的2.5倍!2.每個SM的指令寄存器翻倍:GTX200及G80核心在SM結(jié)構(gòu)上基本相同的,但功能有所提升,在執(zhí)行線程數(shù)增多的同時,NVIDIA還將每個SM中間的LocalMemory容量翻倍(從16K到32K)。LocalMemory用于存儲SM即將執(zhí)行的上千條指令,容量增大意味著可以存儲更多的指令、超長的指令、或是各種復(fù)雜的混合式指令,這對于提高SM的執(zhí)行效能大有裨益。

雙倍寄存器的優(yōu)勢:代表DX10性能的3DMarkVantage得分直接提升15%當前和未來的DX10游戲,越來越多的使用復(fù)雜的混合式Shader指令,一旦排隊中的超長指令溢出或者在N個周期內(nèi)都排不上隊,那么就會造成效率下降的情況,此時雙倍寄存器容量的優(yōu)勢就體現(xiàn)出來了。由于LocalMemory并不會消耗太多晶體管,因此將其容量翻倍是很合算的。RV770架構(gòu)的變化:脫胎換骨顯然,RV670未能從R600失敗的陰影中走出來,而RV770則是AMD的揚眉吐氣之作,這顆相對GT200來說非常小巧的核心擁有不可思議的實力,現(xiàn)在我們就來回顧一下它的核心架構(gòu)細節(jié)?!馬V770架構(gòu)的變化RV770的核心架構(gòu),它源自于R600,但青出于藍而勝于藍,AMD對核心幾乎所有的模塊都進行了改進,而且規(guī)模和數(shù)量方面大大加強。HD4850/4870令人驚訝的性能表現(xiàn)就是源自于核心架構(gòu)。首先來看看流處理器部分:RV670/R600是4組SIMD,每組16個Shader,每個Shader5個流處理器;RV770是10組SIMD,每組16個Shader,每個Shader5個流處理器,也就是說流處理器部分只是單純的擴充規(guī)模而已,并沒有任何改進。紋理單元和光柵單元部分,和流處理器一樣都是數(shù)量翻了2.5倍,但值得一提的是,抗鋸齒算法已經(jīng)由R600/RV670的流處理器部分轉(zhuǎn)移至光柵單元部分,因此RV770的AA效率大幅提高,一舉超越了所有N卡重現(xiàn)X1000時代的輝煌,這也就是RV770表現(xiàn)令人驚異的主要原因。在紋理單元及顯存控制器之間設(shè)有一級緩存,RV770核心相比RV670,L1TC容量翻倍,再加上數(shù)量同比增加2.5倍,因此RV770的總L1容量達到了RV670/R600的五倍之多!另外,RV770還放棄了使用多年的環(huán)形總線,估計是因為高頻率下數(shù)據(jù)存取命中率的問題,回歸了交叉總線設(shè)計,有效提高了顯存利用率,并節(jié)約了顯存帶寬。總的來說,雖然流處理器部分沒有做改動,但RV770的整體架構(gòu)相對于RV670可以說是脫胎換骨,這也是它大獲成功的奧秘所在!RV870架構(gòu)的變化:雙核心設(shè)計在大獲成功的RV770基礎(chǔ)上,AMD率先發(fā)布了首顆DX11圖形核心——RV870,當然現(xiàn)在AMD已經(jīng)不使用數(shù)字來命名GPU核心的,它的真正代號是Cypress?!馛ypres架構(gòu)的變化除了顯存位寬維持256bit不變之外,Cypress的其它所有規(guī)格都正好是RV770的兩倍,而且在流處理器部分可以看作是雙核心的設(shè)計,幾乎就是并排放置了兩顆RV770核心:為什么要使用這種雙核心的設(shè)計呢?因為當流處理器擴充至1600個這樣的恐怖規(guī)模時,不僅芯片設(shè)計制造的難度非常高,而且相應(yīng)的緩存和控制模塊難以管理協(xié)調(diào)如此眾多的流處理器,因此一分為二的做法效率將會更高。Cypress這樣的結(jié)構(gòu)及雙核CPU十分相似,兩顆“核心”各自獨立,獨享L1、共享L2和內(nèi)存控制器等其他總線模塊,而兩顆“核心”之間則通過專用的數(shù)據(jù)共享及請求總線通信。為了配合這兩顆“核心”眾多流處理器的工作,裝配引擎內(nèi)部設(shè)計有雙倍的Rasterizer(光柵器)和Hierarchial-Z(多級Z緩沖模塊),這是及RV770最大的不同。在流處理器部分,RV870相對于RV770改進有限,只是加入了DX11新增的位操作類指令,并優(yōu)化了SumofAbsoluteDifferences(SAD,誤差絕對值求和)算法,指令執(zhí)行速度提升12倍,此項指令可以在OpenCL底層執(zhí)行。SAD算法應(yīng)用最多的就是H.264/AVC編碼的移動向量估算部分(約占整個AVC編碼總時間的80%),如此一來使用RV870做視頻編碼類通用計算時,性能會大幅提升!基本上,除了新增DirectX11支持之外,Cypress相對于RV770在架構(gòu)方面的改進非常有限。HD5000系列主要是憑借40nm和新一代GDDR5顯存在功耗控制方面做的非常完美,雖然官方稱抗鋸齒效能大幅改進,但通過我們實際測試來看相對RV770提升非常小,因為RV770做的已經(jīng)非常優(yōu)秀了,另外HD5000系列的Eyefinity多屏顯示器技術(shù)是一大賣點。GF100架構(gòu)改進最大,即將發(fā)布敬請期待Cypress已經(jīng)發(fā)布了半年之久,而NVIDIA方面的GF100依然是猶抱琵琶半遮面。GF100核心之所以延期這么久,一方面是因為NVIDIA遭遇了40nm新制程良率不足的困擾,另一方面GF100在核心架構(gòu)方面的改進非常巨大,NVIDIA力圖打造一顆在DX11和GPU計算方面都趨于完美的核心?!馟F100架構(gòu)改進要點預(yù)覽如果說Cypress是“雙核心”設(shè)計的話,那么GF100的流處理器部分就是“四核心”設(shè)計,因為其rasterunits(光柵化引擎)是以GPC(線程處理器簇)為單位的,一式四份。而rasterunits的功能就是以流水線的方式執(zhí)行邊緣/三角形設(shè)定(Edge/

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論