版權(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)流水線第三章:頂點和像素操作指令第四章:傳統(tǒng)GPU指令的執(zhí)行第五章:統(tǒng)一渲染架構(gòu)第六章:G80和R600的統(tǒng)一渲染架構(gòu)實現(xiàn)第七章:G80與R600效能對比第八章:尷尬的中端-Geforce8600簡析 前面4章 我將先簡要介紹下DirectX8/9顯卡的核心-圖形處理單元GPU的工作流程和指令處理情況。從第5章開始討論統(tǒng)一渲染架構(gòu)、新一代DirectX10 GPU的特性,G80/Geforce8800與R600
2、/RadeonHD2900XT的架構(gòu)具體實現(xiàn)及其區(qū)別。最后將會對中端最受關(guān)注的Geforce8600進(jìn)行相應(yīng)的簡單分析。第一章:第二代及以后的GPU工作流程簡介 簡單(而不一定絕對科學(xué))的說:GPU主要完成對3D圖形的處理-圖形的生成渲染。 GPU的圖形(處理)流水線完成如下的工作:(并不一定是按照如下順序)頂點處理:這階段GPU讀取描述3D圖形外觀的頂點數(shù)據(jù)并根據(jù)頂點數(shù)據(jù)確定3D圖形的形狀及位置關(guān)系,建立起3D圖形的骨架。在支持DX8和DX9規(guī)格的GPU中,這些工作由硬件實現(xiàn)的Vertex Shader(定點著色器)完成
3、。光柵化計算:顯示器實際顯示的圖像是由像素組成的,我們需要將上面生成的圖形上的點和線通過一定的算法轉(zhuǎn)換到相應(yīng)的像素點。把一個矢量圖形轉(zhuǎn)換為一系列像素點的過程就稱為光柵化。例如,一條數(shù)學(xué)表示的斜線段,最終被轉(zhuǎn)化成階梯狀的連續(xù)像素點。紋理帖圖:頂點單元生成的多邊形只構(gòu)成了3D物體的輪廓,而紋理映射(texture mapping)工作完成對多變形表面的帖圖,通俗的說,就是將多邊形的表面貼上相應(yīng)的圖片,從而生成“真實”的圖形。TMU(Texture mapping unit)即是用來完成此項工作。像素處理:這階段(在對每個像素進(jìn)行光柵化處理期間)GPU完成對像素的計算和處理,從而確定每個像素的最終屬
4、性。在支持DX8和DX9規(guī)格的GPU中,這些工作由硬件實現(xiàn)的Pixel Shader(像素著色器)完成最終輸出:由ROP(光柵化引擎)最終完成像素的輸出,1幀渲染完畢后,被送到顯存幀緩沖區(qū)。 總結(jié):GPU的工作通俗的來說就是完成3D圖形的生成,將圖形映射到相應(yīng)的像素點上,對每個像素進(jìn)行計算確定最終顏色并完成輸出。第二章:DirectX8和DirectX9 GPU的傳統(tǒng)流水線 前面的工作流程其實已經(jīng)說明了問題。本章來總結(jié)一下,承前啟后。傳統(tǒng)的GPU功能部件我們不妨將其分為頂點單元和像素流水線兩部分頂點單元由數(shù)個硬件實現(xiàn)的Ve
5、rtex Shader組成。傳統(tǒng)的像素流水線由幾組PSU(Pixel Shader Unit)+TMU+ROP組成。于是,傳統(tǒng)的GPU由頂點單元生成多邊形,并由像素流水線負(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由頂點單元生成多邊形,像素流水線渲染像素并輸出,一條像素流水線包含PSU,TMU,和ROP(有的資料中不包含ROP),比例通常為1:1:1,但不固定。第三章:頂點和像素操作指令GPU通過執(zhí)行相應(yīng)的指令來完成對頂點和像素的操作 熟悉OpenGL或Direct3D編程的人應(yīng)該知道,像素通常使用RGB三原色和alpha值共4個通道(屬性)來描述。而對于頂點,也通常使用XYZ和W 4個通道(屬性)來描述。因而,通常執(zhí)行一條頂點和像素指令需要完成4
7、次計算,我們這里成這種指令為4D矢量指令(4維)。當(dāng)然,并不是所有的指令都是4D指令,在實際處理中,還會出現(xiàn)大量的1D標(biāo)量指令以及2D,3D指令。 總結(jié):由于定點和像素通常用4元組表示屬性,因而頂點和像素操作通常是4D矢量操作,但也存在標(biāo)量操作。第四章:傳統(tǒng)GPU指令的執(zhí)行 傳統(tǒng)的GPU基于SIMD的架構(gòu)。SIMD即Single Instruction Multiple Data,單指令多數(shù)據(jù)。其實這很好理解,傳統(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)定點和像素的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中定點和像素處理分別由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),頂點處理和像素處理分別由Vertex Shader和Pixel Shader來完成,于是,當(dāng)GPU核心設(shè)計完成時,PS和VS的數(shù)量便確定下來了。但是不同的游戲?qū)τ趦烧咛幚砹啃枨笫遣煌?,這種固定比例的PS VS設(shè)計顯然不夠靈活,為了解決這個問題,DirectX10規(guī)范中提出了了統(tǒng)一渲染架構(gòu)。不論是頂點數(shù)據(jù)還是像素數(shù)據(jù),他們在計算上都有很多共同點,例如通常情況下,他們都是4D矢量,而且在ALU中的計算都是沒有
12、分別的浮點運(yùn)算。這些為統(tǒng)一渲染的實現(xiàn)提供了可能。在統(tǒng)一渲染架構(gòu)中,PS單元和VS單元都被通用的US單元所取代,nVidia的實現(xiàn)中稱其為streaming processer,即流處理器,這種US單元既可以處理頂點數(shù)據(jù),又可以處理像素數(shù)據(jù),因而GPU可以根據(jù)實際處理需求進(jìn)行靈活的分配,這樣便有效避免了傳統(tǒng)分離式架構(gòu)中VS和PS工作量不均的情況。 總結(jié):統(tǒng)一渲染架構(gòu)使用US(通常為SP)單元取代了傳統(tǒng)的固定數(shù)目的VS和PS單元,US既可以完成頂點操作,又可以完成像素操作,因而可以根據(jù)游戲需要靈活分配,從而提高了資源利用率。第六章:G80和R600的統(tǒng)一渲染架構(gòu)
13、實現(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,并實現(xiàn)了128個1D標(biāo)量SP,于是,傳統(tǒng)GPU中一個周期完成的4D矢量操作,在這種標(biāo)量SP中需4個周期才能完成,或者說,1個4D操作需要4個SP并行處理完成。這種實現(xiàn)的最大好處是靈活,不論是1D,2D,3D,4D指令,G80得便宜其全部將其拆成1D指令來處理。指令其實與矢量運(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的實現(xiàn)方式則與G80有很大的不同,它仍然采用SIMD架構(gòu)。在R600的核心里,共設(shè)計了4組共64個流處理器,但每個處理器中擁有1個5D ALU,其實更加準(zhǔn)確地說,應(yīng)該是5個1D ALU。因為每個流處理器中的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要大,但是為何在實際的測試中,基于R600 Radeon HD X29
19、00XT并沒有取得對G80/Geforce8800GTX的性能優(yōu)勢?本章將試圖從兩者流處理器設(shè)計差別上來尋找答案,對于紋理單元,ROP,顯存帶寬則不做重點討論。事實上,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的理論峰值浮點運(yùn)算速度為:740MHZ*64*5*2=473.6GFLOPS 而shader頻率為1350MHZ的G80的浮點運(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),因為每個流處理器只能同時處理一條指令,因而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則只需簡單拆分即可。另外還需要說明的一點是,R600中每個SP的5個1D ALU并不是全功能的,據(jù)相關(guān)資料,每組5個ALU中,只有一個能執(zhí)行函數(shù)運(yùn)算,浮點運(yùn)算和Multipy運(yùn)算,但不能進(jìn)行ADD運(yùn)算,其余的4各職能執(zhí)行MADD運(yùn)算。而G80的每個1D ALU是全功能的,這一點也在一定程度上影響了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)實在不盡如人意,很多測試中均落后于價格低于它的老一代高端顯卡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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 有關(guān)幼兒園的小班月工作計劃總結(jié)計劃
- 2024年物流合作保險法律保障詳盡協(xié)議版B版
- 買賣合同錦集六篇
- 2024年營養(yǎng)強(qiáng)化劑項目深度研究分析報告
- 服裝銷售店長工作計劃
- 九年級計劃作文600字
- 家長會發(fā)言稿集錦15篇
- 管理類實習(xí)經(jīng)驗報告畢業(yè)生
- 一周工作計劃模板
- 年產(chǎn)12000噸十二烷基苯磺酸鈉(濃縮洗衣粉)提升改造項目環(huán)評報告表
- 2024年全國《國防和兵役》理論知識競賽試題庫與答案
- 企業(yè)知識產(chǎn)權(quán)保護(hù)策略及實施方法研究報告
- 2024年07月11026經(jīng)濟(jì)學(xué)(本)期末試題答案
- 2024年中小企業(yè)股權(quán)融資合同3篇
- 2024年01月11289中國當(dāng)代文學(xué)專題期末試題答案
- 2024年秋季生物教研組工作計劃
- 2024年云南高中學(xué)業(yè)水平合格考?xì)v史試卷真題(含答案詳解)
- 2025年董事長年會發(fā)言稿范文
- 醫(yī)院廉潔購銷合同
- 車間設(shè)備線路安裝方案
- 檢驗科各專業(yè)組上崗輪崗培訓(xùn)考核制度全6頁
評論
0/150
提交評論