獨(dú)立顯卡與集成顯卡工作方式的差異_第1頁
獨(dú)立顯卡與集成顯卡工作方式的差異_第2頁
獨(dú)立顯卡與集成顯卡工作方式的差異_第3頁
獨(dú)立顯卡與集成顯卡工作方式的差異_第4頁
獨(dú)立顯卡與集成顯卡工作方式的差異_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、NVIDAI和ATI顯卡比較,細(xì)研GPU工作流程目錄:第一章:第二代及以后的GPU工作流程簡介第二章:DirectX8和DirectX9 GPU的傳統(tǒng)流水線第三章:頂點(diǎn)和像素操作指令第四章:傳統(tǒng)GPU指令的執(zhí)行第五章:統(tǒng)一渲染架構(gòu)第六章:G80和R600的統(tǒng)一渲染架構(gòu)實(shí)現(xiàn)第七章:G80與R600效能對比第八章:尷尬的中端-Geforce8600簡析    前面4章 我將先簡要介紹下DirectX8/9顯卡的核心-圖形處理單元GPU的工作流程和指令處理情況。從第5章開始討論統(tǒng)一渲染架構(gòu)、新一代DirectX10 GPU的特性,G80/Geforce8800與R600

2、/RadeonHD2900XT的架構(gòu)具體實(shí)現(xiàn)及其區(qū)別。最后將會對中端最受關(guān)注的Geforce8600進(jìn)行相應(yīng)的簡單分析。第一章:第二代及以后的GPU工作流程簡介    簡單(而不一定絕對科學(xué))的說:GPU主要完成對3D圖形的處理-圖形的生成渲染。    GPU的圖形(處理)流水線完成如下的工作:(并不一定是按照如下順序)頂點(diǎn)處理:這階段GPU讀取描述3D圖形外觀的頂點(diǎn)數(shù)據(jù)并根據(jù)頂點(diǎn)數(shù)據(jù)確定3D圖形的形狀及位置關(guān)系,建立起3D圖形的骨架。在支持DX8和DX9規(guī)格的GPU中,這些工作由硬件實(shí)現(xiàn)的Vertex Shader(定點(diǎn)著色器)完成

3、。光柵化計算:顯示器實(shí)際顯示的圖像是由像素組成的,我們需要將上面生成的圖形上的點(diǎn)和線通過一定的算法轉(zhuǎn)換到相應(yīng)的像素點(diǎn)。把一個矢量圖形轉(zhuǎn)換為一系列像素點(diǎn)的過程就稱為光柵化。例如,一條數(shù)學(xué)表示的斜線段,最終被轉(zhuǎn)化成階梯狀的連續(xù)像素點(diǎn)。紋理帖圖:頂點(diǎn)單元生成的多邊形只構(gòu)成了3D物體的輪廓,而紋理映射(texture mapping)工作完成對多變形表面的帖圖,通俗的說,就是將多邊形的表面貼上相應(yīng)的圖片,從而生成“真實(shí)”的圖形。TMU(Texture mapping unit)即是用來完成此項(xiàng)工作。像素處理:這階段(在對每個像素進(jìn)行光柵化處理期間)GPU完成對像素的計算和處理,從而確定每個像素的最終屬

4、性。在支持DX8和DX9規(guī)格的GPU中,這些工作由硬件實(shí)現(xiàn)的Pixel Shader(像素著色器)完成最終輸出:由ROP(光柵化引擎)最終完成像素的輸出,1幀渲染完畢后,被送到顯存幀緩沖區(qū)。    總結(jié):GPU的工作通俗的來說就是完成3D圖形的生成,將圖形映射到相應(yīng)的像素點(diǎn)上,對每個像素進(jìn)行計算確定最終顏色并完成輸出。第二章:DirectX8和DirectX9 GPU的傳統(tǒng)流水線    前面的工作流程其實(shí)已經(jīng)說明了問題。本章來總結(jié)一下,承前啟后。傳統(tǒng)的GPU功能部件我們不妨將其分為頂點(diǎn)單元和像素流水線兩部分頂點(diǎn)單元由數(shù)個硬件實(shí)現(xiàn)的Ve

5、rtex Shader組成。傳統(tǒng)的像素流水線由幾組PSU(Pixel Shader Unit)+TMU+ROP組成。于是,傳統(tǒng)的GPU由頂點(diǎn)單元生成多邊形,并由像素流水線負(fù)責(zé)像素渲染和輸出。對于像素流水線需要做的說明是:雖然傳統(tǒng)的流水線被認(rèn)為=1PSU+1TMU+1ROP,但這個比例不是恒定的,例如在RadeonX1000(不包括X1800)系列中被廣為稱道的3:1黃金架構(gòu),PSU:TMU:ROP的數(shù)量為3:1:1。一塊典型的X1900顯卡具有48個PSU,16個TMU和16個ROP。之所以采用這種設(shè)計方法,主要考慮到在當(dāng)今的游戲中,像素指令數(shù)要遠(yuǎn)遠(yuǎn)大于紋理指令的數(shù)量。ATI憑借這個優(yōu)秀的架構(gòu)

6、,成功擊敗了Geforce7,在DX9后期取得了3D效能上的領(lǐng)先。    總結(jié):傳統(tǒng)的GPU由頂點(diǎn)單元生成多邊形,像素流水線渲染像素并輸出,一條像素流水線包含PSU,TMU,和ROP(有的資料中不包含ROP),比例通常為1:1:1,但不固定。第三章:頂點(diǎn)和像素操作指令GPU通過執(zhí)行相應(yīng)的指令來完成對頂點(diǎn)和像素的操作    熟悉OpenGL或Direct3D編程的人應(yīng)該知道,像素通常使用RGB三原色和alpha值共4個通道(屬性)來描述。而對于頂點(diǎn),也通常使用XYZ和W 4個通道(屬性)來描述。因而,通常執(zhí)行一條頂點(diǎn)和像素指令需要完成4

7、次計算,我們這里成這種指令為4D矢量指令(4維)。當(dāng)然,并不是所有的指令都是4D指令,在實(shí)際處理中,還會出現(xiàn)大量的1D標(biāo)量指令以及2D,3D指令。    總結(jié):由于定點(diǎn)和像素通常用4元組表示屬性,因而頂點(diǎn)和像素操作通常是4D矢量操作,但也存在標(biāo)量操作。第四章:傳統(tǒng)GPU指令的執(zhí)行    傳統(tǒng)的GPU基于SIMD的架構(gòu)。SIMD即Single Instruction Multiple Data,單指令多數(shù)據(jù)。其實(shí)這很好理解,傳統(tǒng)的VS和PS中的ALU(算術(shù)邏輯單元,通常每個VS或PS中都會有一個ALU,但這不是一定的,例如G70和R5X

8、X有兩個)都能夠在一個周期內(nèi)(即同時)完成對矢量4個通道的運(yùn)算。比如執(zhí)行一條4D指令,PS或VS中的ALU對指令對應(yīng)定點(diǎn)和像素的4個屬性數(shù)據(jù)都進(jìn)行了相應(yīng)的計算。這便是SIMD的由來。這種ALU我們暫且稱它為4D ALU。需要注意的是,4D SIMD架構(gòu)雖然很適合處理4D指令,但遇到1D指令的時候效率便會降為原來的1/4。此時ALU 3/4的資源都被閑置。為了提高PS VS執(zhí)行1D 2D 3D指令時的資源利用率,DirectX9時代的GPU通常采用1D+3D或2D+2D ALU。這便是Co-issue技術(shù)。這種ALU對4D指令的計算時仍然效能與傳統(tǒng)的ALU相同,但當(dāng)遇到1D 2D 3D指令時效率

9、則會高不少,例如如下指令:    ADD R0.xyz , R0,R1    /此指令是將R0,R1矢量的x,y,z值相加 結(jié)果賦值給R0    ADD R3.x , R2,R3    /此指令是將R2 R3矢量的w值相加 結(jié)果賦值給R3    對于傳統(tǒng)的4D ALU,顯然需要兩個周期才能完成,第一個周期ALU利用率75% ,第二個周期利用率25%。而對于1D+3D的ALU,這兩條指令可以融合為一條4D指令,因而只需要一個周期便可以完成,ALU利

10、用率100%。但當(dāng)然,即使采用co-issue,ALU利用率也不可能總達(dá)到100%,這涉及到指令并行的相關(guān)性等問題,而且,更直觀的,上述兩條指令顯然不能被2D+2D ALU一周期完成,而且同樣,兩條2D指令也不能被1D+3D ALU一周期完成。傳統(tǒng)GPU在對非4D指令的處理顯然不是很靈活。    總結(jié):傳統(tǒng)的GPU中定點(diǎn)和像素處理分別由VS和PS來完成,每個VS PS單元中通常有一個4D ALU,可以在一個周期完成4D矢量操作,但這種ALU對1D 2D 3D操作效率低下,為了彌補(bǔ),DX9顯卡中ALU常被設(shè)置為1D+3D 2D+2D等形式。第五章:統(tǒng)一渲染架構(gòu)

11、60;   相對于DirectX 9來說,最新的DirectX 10最大的改進(jìn)在于提出了統(tǒng)一渲染架構(gòu),即Unified Shader。傳統(tǒng)的顯卡GPU一直采用分離式架構(gòu),頂點(diǎn)處理和像素處理分別由Vertex Shader和Pixel Shader來完成,于是,當(dāng)GPU核心設(shè)計完成時,PS和VS的數(shù)量便確定下來了。但是不同的游戲?qū)τ趦烧咛幚砹啃枨笫遣煌?,這種固定比例的PS VS設(shè)計顯然不夠靈活,為了解決這個問題,DirectX10規(guī)范中提出了了統(tǒng)一渲染架構(gòu)。不論是頂點(diǎn)數(shù)據(jù)還是像素數(shù)據(jù),他們在計算上都有很多共同點(diǎn),例如通常情況下,他們都是4D矢量,而且在ALU中的計算都是沒有

12、分別的浮點(diǎn)運(yùn)算。這些為統(tǒng)一渲染的實(shí)現(xiàn)提供了可能。在統(tǒng)一渲染架構(gòu)中,PS單元和VS單元都被通用的US單元所取代,nVidia的實(shí)現(xiàn)中稱其為streaming processer,即流處理器,這種US單元既可以處理頂點(diǎn)數(shù)據(jù),又可以處理像素數(shù)據(jù),因而GPU可以根據(jù)實(shí)際處理需求進(jìn)行靈活的分配,這樣便有效避免了傳統(tǒng)分離式架構(gòu)中VS和PS工作量不均的情況。    總結(jié):統(tǒng)一渲染架構(gòu)使用US(通常為SP)單元取代了傳統(tǒng)的固定數(shù)目的VS和PS單元,US既可以完成頂點(diǎn)操作,又可以完成像素操作,因而可以根據(jù)游戲需要靈活分配,從而提高了資源利用率。第六章:G80和R600的統(tǒng)一渲染架構(gòu)

13、實(shí)現(xiàn)    以下我們著重討論G80和R600的統(tǒng)一著色單元而不考慮紋理單元,ROP等因素。    G80 GPU中安排了16組共128個統(tǒng)一標(biāo)量著色器,被叫做stream processors,后面我們將其簡稱為SP。每個SP都包含有一個全功能的1D ALU。該ALU可以在一周期內(nèi)完成乘加操作(MADD)。也許有人已經(jīng)注意到了,在前面?zhèn)鹘y(tǒng)GPU中VS和PS的ALU都是4D的,但在這里,每個SP中的ALU都是1D標(biāo)量ALU。沒錯,這就是很多資料中提及的MIMD(多指令多數(shù)據(jù))架構(gòu),G80走的是徹底的標(biāo)量化路線,將ALU拆分為了最基本的1

14、D 標(biāo)量ALU,并實(shí)現(xiàn)了128個1D標(biāo)量SP,于是,傳統(tǒng)GPU中一個周期完成的4D矢量操作,在這種標(biāo)量SP中需4個周期才能完成,或者說,1個4D操作需要4個SP并行處理完成。這種實(shí)現(xiàn)的最大好處是靈活,不論是1D,2D,3D,4D指令,G80得便宜其全部將其拆成1D指令來處理。指令其實(shí)與矢量運(yùn)算拆分一樣。    例如一個4D矢量指令 ADD R0.xyzw , R0,R1  R0與R1矢量相加,結(jié)果賦R0    G80的編譯器會將其拆分為4個1D標(biāo)量運(yùn)算指令并將其分派給4個SP:    ADD R

15、0.x , R0,R1    ADD R0.y , R0,R1    ADD R0.z , R0,R1    ADD R0.w, R0,R1    綜上:G80的架構(gòu)可以用128X1D來描述。    G80核心結(jié)構(gòu)如下圖:R600的實(shí)現(xiàn)方式則與G80有很大的不同,它仍然采用SIMD架構(gòu)。在R600的核心里,共設(shè)計了4組共64個流處理器,但每個處理器中擁有1個5D ALU,其實(shí)更加準(zhǔn)確地說,應(yīng)該是5個1D ALU。因?yàn)槊總€流處理器中的ALU可以任意

16、以1+1+1+1+1或1+4或2+3等方式搭配(以往的GPU往往只能是1D+3D或2D+2D)。ATI將這些ALU稱作streaming processing unit,因而,ATI宣稱R600擁有320個SPU。我們考慮R600的每個流處理器,它每個周期只能執(zhí)行一條指令,但是流處理器中卻擁有5個1D ALU。ATI為了提高ALU利用率,采用了VLIW體系(Very Large Instruction Word)設(shè)計。將多個短指令合并成為一組長的指令交給流處理器去執(zhí)行。例如,R600可以5條1D指令合并為一組5DVLIW指令。對于下述指令:    ADD R0.x

17、yz , R0,R1  /3D    ADD R4.x , R4,R5    /1D    ADD R2.x , R2,R3    /1D    R600也可以將其集成為一條VLIW指令在一個周期完成。    綜上:R600的架構(gòu)可以用64X5D的方式來描述。    R600的核心結(jié)構(gòu)及SP結(jié)構(gòu)如下圖:總結(jié):G80將操作徹底標(biāo)量化,內(nèi)置128個1D標(biāo)量SP,每個SP中有一個1D

18、 ALU,每周期處理一個1D操作,對于4D矢量操作,則將其拆分為4個1D標(biāo)量操作。R600仍采用SIMD架構(gòu),擁有64個SP,每個SP中有5個1D ALU,因而通常聲稱R600有320個PSU,每個SP只能處理一條指令,ATI采用VLIW體系將短指令集成為長的VLIW指令來提高資源利用率,例如5條1D標(biāo)量指令可以被集成為一條VLIW指令送入SP中在一個周期完成。第七章:G80與R600效能對比    從前一章的討論可以看出,R600的ALU規(guī)模64X5D=320明顯比G80的128X1D=128要大,但是為何在實(shí)際的測試中,基于R600 Radeon HD X29

19、00XT并沒有取得對G80/Geforce8800GTX的性能優(yōu)勢?本章將試圖從兩者流處理器設(shè)計差別上來尋找答案,對于紋理單元,ROP,顯存帶寬則不做重點(diǎn)討論。事實(shí)上,R600的顯存帶寬也要大于G80。    我們將從頻率和執(zhí)行效能兩個方面來說明問題:    1、頻率:G80只擁有128個1D流處理器,在規(guī)模上處于絕對劣勢,于是nVidia采用了shader頻率與核心頻率異步的方式來提高性能。Geforce8800GTX雖然核心頻率只有575MHZ,但shader頻率卻高達(dá)1375MHZ,即SP工作頻率為核心頻率的兩倍以上,而R600

20、則相對保守地采用了shader和核心同步的方式,在RadeonHD2900XT中,兩者均為740MHZ。這樣一來,G80的shader頻率幾乎是R600的兩倍,于是就相當(dāng)于同頻率下G80的SP數(shù)加倍達(dá)到256個,與R600的320個接近了很多。在處理乘加(MADD)指令的時候,740MHZ的R600的理論峰值浮點(diǎn)運(yùn)算速度為:740MHZ*64*5*2=473.6GFLOPS  而shader頻率為1350MHZ的G80的浮點(diǎn)運(yùn)算速度為:1350MHZ*128*1*2=345.6GFLOPS,兩者的差距并不像SP規(guī)模差距那么大。    2、執(zhí)行效能:G80

21、雖說shader頻率很高,但由于數(shù)量差距懸殊,即使異步也無法補(bǔ)回理論運(yùn)算速率的差距。于是,要尋找答案,還要從兩者流處理器的具體設(shè)計著手。在G80中,每個矢量操作都會被拆分為1D標(biāo)量操作來分配給不同的SP來處理,如果不考慮指令并行性等問題,G80在任何時刻,所有SP都是充分利用的。而R600則沒這么幸運(yùn),因?yàn)槊總€流處理器只能同時處理一條指令,因而R600要將短指令合并為能充分利用SP內(nèi)5DALU運(yùn)算資源的 VLIW指令,但是這種合并并不是總能成功。目前沒有資料表明R600可以將指令拆開重組,也就是說,R600不能每時每刻都找到合適的指令拼接為5D指令來滿載他的5D SP,這樣的話我們假設(shè)處理純4

22、D指令的情況,不能拆分重組的話,R600每個SP只能處理一條4D指令,利用率80%,而對于G80,將指令拆開成1D 操作,無論何時都能100%利用。而且,R600的結(jié)構(gòu)對編譯器的要求很高,編譯器必須盡可能尋找Shader指令中的并行性,并將其拼接為合適的長指令,而G80則只需簡單拆分即可。另外還需要說明的一點(diǎn)是,R600中每個SP的5個1D ALU并不是全功能的,據(jù)相關(guān)資料,每組5個ALU中,只有一個能執(zhí)行函數(shù)運(yùn)算,浮點(diǎn)運(yùn)算和Multipy運(yùn)算,但不能進(jìn)行ADD運(yùn)算,其余的4各職能執(zhí)行MADD運(yùn)算。而G80的每個1D ALU是全功能的,這一點(diǎn)也在一定程度上影響了R600的效能。 &#

23、160;  總結(jié):雖然R600的ALU規(guī)模遠(yuǎn)大于G80,但G80的SP運(yùn)行頻率幾乎是R600的兩倍,而且G80的體系架構(gòu)采用完全標(biāo)量化的計算,資源利用率更高,執(zhí)行效能也更高,因而總體性能不落后于R600。第八章:尷尬的中端-Geforce8600簡析    在新一代中端顯卡中,最早發(fā)布也是最受關(guān)注的莫過于nVidia的G84-Geforce8600系列。但是相比其高高在上的價格,它的性能表現(xiàn)實(shí)在不盡如人意,很多測試中均落后于價格低于它的老一代高端顯卡Geforce7900GS。本章將利用前面討論的結(jié)論對G84核心的SP處理能力作簡要地分析。G84是G80核心的高度精簡版本,SP數(shù)量從G80的128個銳減為32個,顯存位寬也降為1/3-128bit。拋開顯存位寬和TMU ROP,我們著重看SP,G84的 SP頻率與核心頻率也不相同,例如8600GT,核心頻率只有540MHZ,shader頻率卻高達(dá)1242MHZ,即核心頻率的兩倍多,我們粗略按兩倍記,則G84核心相當(dāng)于核心shader同步的64(個1D標(biāo)量) SP,而傳統(tǒng)的VS和PS中ALU是4D的,于是可以說G84的計算能力相當(dāng)于傳統(tǒng)VS和PS總數(shù)為64/4=16的顯卡,粗略比較,它與 Gefor

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論