




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、NVIDAI和ATI顯卡比較,細研GPU工作流程目錄:第一章:第二代及以后的GPU工作流程簡介第二章:DirectX8和DirectX9 GPU的傳統(tǒng)流水線第三章:頂點和像素操作指令第四章:傳統(tǒng)GPU指令的執(zhí)行第五章:統(tǒng)一渲染架構第六章:G80和R600的統(tǒng)一渲染架構實現(xiàn)第七章:G80與R600效能對比第八章:尷尬的中端-Geforce8600簡析 前面4章 我將先簡要介紹下DirectX8/9顯卡的核心-圖形處理單元GPU的工作流程和指令處理情況。從第5章開始討論統(tǒng)一渲染架構、新一代DirectX10 GPU的特性,G80/Geforce8800與R600
2、/RadeonHD2900XT的架構具體實現(xiàn)及其區(qū)別。最后將會對中端最受關注的Geforce8600進行相應的簡單分析。第一章:第二代及以后的GPU工作流程簡介 簡單(而不一定絕對科學)的說:GPU主要完成對3D圖形的處理-圖形的生成渲染。 GPU的圖形(處理)流水線完成如下的工作:(并不一定是按照如下順序)頂點處理:這階段GPU讀取描述3D圖形外觀的頂點數(shù)據(jù)并根據(jù)頂點數(shù)據(jù)確定3D圖形的形狀及位置關系,建立起3D圖形的骨架。在支持DX8和DX9規(guī)格的GPU中,這些工作由硬件實現(xiàn)的Vertex Shader(定點著色器)完成
3、。光柵化計算:顯示器實際顯示的圖像是由像素組成的,我們需要將上面生成的圖形上的點和線通過一定的算法轉換到相應的像素點。把一個矢量圖形轉換為一系列像素點的過程就稱為光柵化。例如,一條數(shù)學表示的斜線段,最終被轉化成階梯狀的連續(xù)像素點。紋理帖圖:頂點單元生成的多邊形只構成了3D物體的輪廓,而紋理映射(texture mapping)工作完成對多變形表面的帖圖,通俗的說,就是將多邊形的表面貼上相應的圖片,從而生成“真實”的圖形。TMU(Texture mapping unit)即是用來完成此項工作。像素處理:這階段(在對每個像素進行光柵化處理期間)GPU完成對像素的計算和處理,從而確定每個像素的最終屬
4、性。在支持DX8和DX9規(guī)格的GPU中,這些工作由硬件實現(xiàn)的Pixel Shader(像素著色器)完成最終輸出:由ROP(光柵化引擎)最終完成像素的輸出,1幀渲染完畢后,被送到顯存幀緩沖區(qū)。 總結:GPU的工作通俗的來說就是完成3D圖形的生成,將圖形映射到相應的像素點上,對每個像素進行計算確定最終顏色并完成輸出。第二章:DirectX8和DirectX9 GPU的傳統(tǒng)流水線 前面的工作流程其實已經(jīng)說明了問題。本章來總結一下,承前啟后。傳統(tǒng)的GPU功能部件我們不妨將其分為頂點單元和像素流水線兩部分頂點單元由數(shù)個硬件實現(xiàn)的Ve
5、rtex Shader組成。傳統(tǒng)的像素流水線由幾組PSU(Pixel Shader Unit)+TMU+ROP組成。于是,傳統(tǒng)的GPU由頂點單元生成多邊形,并由像素流水線負責像素渲染和輸出。對于像素流水線需要做的說明是:雖然傳統(tǒng)的流水線被認為=1PSU+1TMU+1ROP,但這個比例不是恒定的,例如在RadeonX1000(不包括X1800)系列中被廣為稱道的3:1黃金架構,PSU:TMU:ROP的數(shù)量為3:1:1。一塊典型的X1900顯卡具有48個PSU,16個TMU和16個ROP。之所以采用這種設計方法,主要考慮到在當今的游戲中,像素指令數(shù)要遠遠大于紋理指令的數(shù)量。ATI憑借這個優(yōu)秀的架構
6、,成功擊敗了Geforce7,在DX9后期取得了3D效能上的領先。 總結:傳統(tǒng)的GPU由頂點單元生成多邊形,像素流水線渲染像素并輸出,一條像素流水線包含PSU,TMU,和ROP(有的資料中不包含ROP),比例通常為1:1:1,但不固定。第三章:頂點和像素操作指令GPU通過執(zhí)行相應的指令來完成對頂點和像素的操作 熟悉OpenGL或Direct3D編程的人應該知道,像素通常使用RGB三原色和alpha值共4個通道(屬性)來描述。而對于頂點,也通常使用XYZ和W 4個通道(屬性)來描述。因而,通常執(zhí)行一條頂點和像素指令需要完成4
7、次計算,我們這里成這種指令為4D矢量指令(4維)。當然,并不是所有的指令都是4D指令,在實際處理中,還會出現(xiàn)大量的1D標量指令以及2D,3D指令。 總結:由于定點和像素通常用4元組表示屬性,因而頂點和像素操作通常是4D矢量操作,但也存在標量操作。第四章:傳統(tǒng)GPU指令的執(zhí)行 傳統(tǒng)的GPU基于SIMD的架構。SIMD即Single Instruction Multiple Data,單指令多數(shù)據(jù)。其實這很好理解,傳統(tǒng)的VS和PS中的ALU(算術邏輯單元,通常每個VS或PS中都會有一個ALU,但這不是一定的,例如G70和R5X
8、X有兩個)都能夠在一個周期內(nèi)(即同時)完成對矢量4個通道的運算。比如執(zhí)行一條4D指令,PS或VS中的ALU對指令對應定點和像素的4個屬性數(shù)據(jù)都進行了相應的計算。這便是SIMD的由來。這種ALU我們暫且稱它為4D ALU。需要注意的是,4D SIMD架構雖然很適合處理4D指令,但遇到1D指令的時候效率便會降為原來的1/4。此時ALU 3/4的資源都被閑置。為了提高PS VS執(zhí)行1D 2D 3D指令時的資源利用率,DirectX9時代的GPU通常采用1D+3D或2D+2D ALU。這便是Co-issue技術。這種ALU對4D指令的計算時仍然效能與傳統(tǒng)的ALU相同,但當遇到1D 2D 3D指令時效率
9、則會高不少,例如如下指令: ADD R0.xyz , R0,R1 /此指令是將R0,R1矢量的x,y,z值相加 結果賦值給R0 ADD R3.x , R2,R3 /此指令是將R2 R3矢量的w值相加 結果賦值給R3 對于傳統(tǒng)的4D ALU,顯然需要兩個周期才能完成,第一個周期ALU利用率75% ,第二個周期利用率25%。而對于1D+3D的ALU,這兩條指令可以融合為一條4D指令,因而只需要一個周期便可以完成,ALU利
10、用率100%。但當然,即使采用co-issue,ALU利用率也不可能總達到100%,這涉及到指令并行的相關性等問題,而且,更直觀的,上述兩條指令顯然不能被2D+2D ALU一周期完成,而且同樣,兩條2D指令也不能被1D+3D ALU一周期完成。傳統(tǒng)GPU在對非4D指令的處理顯然不是很靈活。 總結:傳統(tǒng)的GPU中定點和像素處理分別由VS和PS來完成,每個VS PS單元中通常有一個4D ALU,可以在一個周期完成4D矢量操作,但這種ALU對1D 2D 3D操作效率低下,為了彌補,DX9顯卡中ALU常被設置為1D+3D 2D+2D等形式。第五章:統(tǒng)一渲染架構
11、60; 相對于DirectX 9來說,最新的DirectX 10最大的改進在于提出了統(tǒng)一渲染架構,即Unified Shader。傳統(tǒng)的顯卡GPU一直采用分離式架構,頂點處理和像素處理分別由Vertex Shader和Pixel Shader來完成,于是,當GPU核心設計完成時,PS和VS的數(shù)量便確定下來了。但是不同的游戲對于兩者處理量需求是不同的,這種固定比例的PS VS設計顯然不夠靈活,為了解決這個問題,DirectX10規(guī)范中提出了了統(tǒng)一渲染架構。不論是頂點數(shù)據(jù)還是像素數(shù)據(jù),他們在計算上都有很多共同點,例如通常情況下,他們都是4D矢量,而且在ALU中的計算都是沒有
12、分別的浮點運算。這些為統(tǒng)一渲染的實現(xiàn)提供了可能。在統(tǒng)一渲染架構中,PS單元和VS單元都被通用的US單元所取代,nVidia的實現(xiàn)中稱其為streaming processer,即流處理器,這種US單元既可以處理頂點數(shù)據(jù),又可以處理像素數(shù)據(jù),因而GPU可以根據(jù)實際處理需求進行靈活的分配,這樣便有效避免了傳統(tǒng)分離式架構中VS和PS工作量不均的情況。 總結:統(tǒng)一渲染架構使用US(通常為SP)單元取代了傳統(tǒng)的固定數(shù)目的VS和PS單元,US既可以完成頂點操作,又可以完成像素操作,因而可以根據(jù)游戲需要靈活分配,從而提高了資源利用率。第六章:G80和R600的統(tǒng)一渲染架構
13、實現(xiàn) 以下我們著重討論G80和R600的統(tǒng)一著色單元而不考慮紋理單元,ROP等因素。 G80 GPU中安排了16組共128個統(tǒng)一標量著色器,被叫做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標量ALU。沒錯,這就是很多資料中提及的MIMD(多指令多數(shù)據(jù))架構,G80走的是徹底的標量化路線,將ALU拆分為了最基本的1
14、D 標量ALU,并實現(xiàn)了128個1D標量SP,于是,傳統(tǒng)GPU中一個周期完成的4D矢量操作,在這種標量SP中需4個周期才能完成,或者說,1個4D操作需要4個SP并行處理完成。這種實現(xiàn)的最大好處是靈活,不論是1D,2D,3D,4D指令,G80得便宜其全部將其拆成1D指令來處理。指令其實與矢量運算拆分一樣。 例如一個4D矢量指令 ADD R0.xyzw , R0,R1 R0與R1矢量相加,結果賦R0 G80的編譯器會將其拆分為4個1D標量運算指令并將其分派給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的架構可以用128X1D來描述。 G80核心結構如下圖:R600的實現(xiàn)方式則與G80有很大的不同,它仍然采用SIMD架構。在R600的核心里,共設計了4組共64個流處理器,但每個處理器中擁有1個5D ALU,其實更加準確地說,應該是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)設計。將多個短指令合并成為一組長的指令交給流處理器去執(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的架構可以用64X5D的方式來描述。 R600的核心結構及SP結構如下圖:總結:G80將操作徹底標量化,內(nèi)置128個1D標量SP,每個SP中有一個1D
18、 ALU,每周期處理一個1D操作,對于4D矢量操作,則將其拆分為4個1D標量操作。R600仍采用SIMD架構,擁有64個SP,每個SP中有5個1D ALU,因而通常聲稱R600有320個PSU,每個SP只能處理一條指令,ATI采用VLIW體系將短指令集成為長的VLIW指令來提高資源利用率,例如5條1D標量指令可以被集成為一條VLIW指令送入SP中在一個周期完成。第七章:G80與R600效能對比 從前一章的討論可以看出,R600的ALU規(guī)模64X5D=320明顯比G80的128X1D=128要大,但是為何在實際的測試中,基于R600 Radeon HD X29
19、00XT并沒有取得對G80/Geforce8800GTX的性能優(yōu)勢?本章將試圖從兩者流處理器設計差別上來尋找答案,對于紋理單元,ROP,顯存帶寬則不做重點討論。事實上,R600的顯存帶寬也要大于G80。 我們將從頻率和執(zhí)行效能兩個方面來說明問題: 1、頻率:G80只擁有128個1D流處理器,在規(guī)模上處于絕對劣勢,于是nVidia采用了shader頻率與核心頻率異步的方式來提高性能。Geforce8800GTX雖然核心頻率只有575MHZ,但shader頻率卻高達1375MHZ,即SP工作頻率為核心頻率的兩倍以上,而R600
20、則相對保守地采用了shader和核心同步的方式,在RadeonHD2900XT中,兩者均為740MHZ。這樣一來,G80的shader頻率幾乎是R600的兩倍,于是就相當于同頻率下G80的SP數(shù)加倍達到256個,與R600的320個接近了很多。在處理乘加(MADD)指令的時候,740MHZ的R600的理論峰值浮點運算速度為:740MHZ*64*5*2=473.6GFLOPS 而shader頻率為1350MHZ的G80的浮點運算速度為:1350MHZ*128*1*2=345.6GFLOPS,兩者的差距并不像SP規(guī)模差距那么大。 2、執(zhí)行效能:G80
21、雖說shader頻率很高,但由于數(shù)量差距懸殊,即使異步也無法補回理論運算速率的差距。于是,要尋找答案,還要從兩者流處理器的具體設計著手。在G80中,每個矢量操作都會被拆分為1D標量操作來分配給不同的SP來處理,如果不考慮指令并行性等問題,G80在任何時刻,所有SP都是充分利用的。而R600則沒這么幸運,因為每個流處理器只能同時處理一條指令,因而R600要將短指令合并為能充分利用SP內(nèi)5DALU運算資源的 VLIW指令,但是這種合并并不是總能成功。目前沒有資料表明R600可以將指令拆開重組,也就是說,R600不能每時每刻都找到合適的指令拼接為5D指令來滿載他的5D SP,這樣的話我們假設處理純4
22、D指令的情況,不能拆分重組的話,R600每個SP只能處理一條4D指令,利用率80%,而對于G80,將指令拆開成1D 操作,無論何時都能100%利用。而且,R600的結構對編譯器的要求很高,編譯器必須盡可能尋找Shader指令中的并行性,并將其拼接為合適的長指令,而G80則只需簡單拆分即可。另外還需要說明的一點是,R600中每個SP的5個1D ALU并不是全功能的,據(jù)相關資料,每組5個ALU中,只有一個能執(zhí)行函數(shù)運算,浮點運算和Multipy運算,但不能進行ADD運算,其余的4各職能執(zhí)行MADD運算。而G80的每個1D ALU是全功能的,這一點也在一定程度上影響了R600的效能。
23、160; 總結:雖然R600的ALU規(guī)模遠大于G80,但G80的SP運行頻率幾乎是R600的兩倍,而且G80的體系架構采用完全標量化的計算,資源利用率更高,執(zhí)行效能也更高,因而總體性能不落后于R600。第八章:尷尬的中端-Geforce8600簡析 在新一代中端顯卡中,最早發(fā)布也是最受關注的莫過于nVidia的G84-Geforce8600系列。但是相比其高高在上的價格,它的性能表現(xiàn)實在不盡如人意,很多測試中均落后于價格低于它的老一代高端顯卡Geforce7900GS。本章將利用前面討論的結論對G84核心的SP處理能力作簡要地分析。G84是G80核心的高度精簡版本,SP數(shù)量從G80的128個銳減為32個,顯存位寬也降為1/3-128bit。拋開顯存位寬和TMU ROP,我們著重看SP,G84的 SP頻率與核心頻率也不相同,例如8600GT,核心頻率只有540MHZ,shader頻率卻高達1242MHZ,即核心頻率的兩倍多,我們粗略按兩倍記,則G84核心相當于核心shader同步的64(個1D標量) SP,而傳統(tǒng)的VS和PS中ALU是4D的,于是可以說G84的計算能力相當于傳統(tǒng)VS和PS總數(shù)為64/4=16的顯卡,粗略比較,它與 Gefor
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年高效酸霧凈化器項目資金需求報告代可行性研究報告
- 2025科研設備租賃合同樣本
- 2025娛樂場所員工勞動合同書模板
- 2025合肥服務合同范本
- 2025年北京市勞動合同樣本
- 2025二手車買賣合同
- 2025新款企業(yè)辦公房產(chǎn)租賃合同
- 2025年簽訂的違章建筑房屋租賃合同是否有效
- 2025企業(yè)合同轉讓協(xié)議
- 2025年的擔保公司貸款合同范本
- 2025屆上海市浦東新區(qū)高三二模英語試卷(含答案)
- 開曼群島公司法2024版中文譯本(含2024年修訂主要內(nèi)容)
- 【MOOC】航空燃氣渦輪發(fā)動機結構設計-北京航空航天大學 中國大學慕課MOOC答案
- 悅己人生-大學生心理健康智慧樹知到期末考試答案章節(jié)答案2024年哈爾濱工業(yè)大學
- 職業(yè)衛(wèi)生評價考試計算題匯總
- JJF 1318-2011 影像測量儀校準規(guī)范-(高清現(xiàn)行)
- 微型數(shù)控銑床結構設計
- 5711裝備質量問題處理通用要求
- 酸洗磷化線材項目建議書范文
- 中山大學教授和副教授職務聘任實施辦法(試行)
- 恒速傳動裝置的工作原理
評論
0/150
提交評論