


下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、gpu的體系結構與通用計算(gpgp)u1、總體框架可編程圖形流水線的總體框架如圖 3 所示,左邊用實線表示的流程就是傳統的圖形流水線的流程; 在這種通用的流水線中, 首先經過頂點級的光照計算和坐標變換,求出每個頂點的光照顏色值, 同時還將頂點坐標從物體坐標系轉換到裁剪空間 (clip space。)然后,對每個三角形進行光柵化處理并將對三角形頂點的顏色進行雙線性插值,得到了三角形中每一個象素的顏色值。接著進行紋理映射, 即根據每一個象素的紋理坐標值將紋理圖顏色分配到每個象素上。最后進行顏色混合計算 (blending)和霧化效果計算,得到的結果將會放進幀緩存(frame buffer) 并顯
2、示到屏幕上。 目前的可編程的圖形硬件中, 除了光柵化這一部分依然保持固化的硬件實現不變以外,其他部分都引入了可編程性。也就是圖中的虛線部分。圖 3 可編程圖形流水線的總體框架頂點著色器 (vertex shader)的功能正是為了實現頂點的光照計算和坐標變換, 在過去的硬件中, 人們只能實現一些固定的光照模型和坐標系轉換計算,但是在現在的可編程的圖形硬件中, 用戶可以通過編寫代碼自由地設計自己所需要的光照模型和坐標系轉換計算公式,只要不超出硬件的功能即可。象素著色器 (pixel shader,)功能相對比較復雜,同時限制較多。它幾乎包括了所有光柵化以后的操作:采樣紋理,顏色混合計算 (ble
3、nding)和霧化效果計算等, 傳統圖形硬件中每個頂點的紋理坐標值需要人工指定或者根據空間坐標來計算,而在象素著色器中,允許采用多種紋理訪問方式;每個象素的繪制信息 (例如,象素顏色值、紋理坐標等 )均保存在寄存器中,象素著色器通過完成這些寄存器之間的加法,乘法或者點積等運算操作, 從而在象素級別上實現光照明模型的計算。2、頂點著色器頂點著色器由算術邏輯單元和相應的寄存器組成。頂點著色器和像素著色器都沒有內存的概念, 所有的運算都在寄存器之上進行。每一個寄存器都是4 維向量寄存器, 指令集中的指令可以同時對4 個分量進行運算, 因此可以把它們看作是一個基于寄存器的向量處理器。l輸入寄存器用于存
4、放當前被處理的頂點的屬性,例如頂點位置、法向量、顏色和紋理坐標。l常量寄存器用于為頂點程序提供只讀常量參數,由 cpu控制,也就是通過外界函數調用進行賦值。l只寫的輸出寄存器則用于輸出處理后的頂點屬性。l可讀寫的寄存器則可在頂點繪制編程器的計算過程中作為臨時寄存器使用。這些寄存器通常有固定的表達方式:輸入寄存器為vn ,輸出寄存器為on , 常量寄存器為 cn ,而可讀寫寄存器則為rn ,這里的 n 就是具體的寄存器編號。如第十號的輸入寄存器就寫作v10 。而且每個寄存器都可以用xyzw 后綴名來訪問寄存器中的rgba各個分量,比如說 :r1.w表示的就是第 1 號可讀寫寄存器的第四個分量a分
5、量。圖 4 頂點著色器3、像素著色器像素著色器和頂點著色器的組成類似,但多了紋理尋址的功能。圖 5 像素著色器4、與 cpu的區別圖 6 gpu與 cpu流水處理線圖形應用的特點是大運算量、大規模并行性、允許較長的延遲與深度前向流水。這就決定了圖形處理器和微處理器在體系結構上存在著很大的差別。首先圖形處理器要盡可能的實現高度并行性。這種并行性分為兩種 :數據并行性與流水線并行性。 為了充分利用數據并行性, 圖形處理器在兩個層次上進行并行處理。第一層利用輸入數據流中數據元素之間的無關性,多個頂點(或像素)處理器運行一個頂點 (或者像素 )著色程序的多個拷貝,同時作用于輸入數據流中的多個數據元素之
6、上。 從這個意義上說, 圖形處理器是一個流處理器。第二層是利用圖形運算包含大量向量運算的特點, 實現指令級并行性。 具體地說就是把多個同類型的標量運算合并到一個向量運算之中。 因此,圖形處理器又是一個向量處理器。其次,流水并行性允許頂點著色程序與像素著色程序同時運行,前者的輸出恰為后者的輸入,構成一種生產者和消費者的關系。再次,為了保證大規模并行運算,圖形處理器基本上不支持轉移指令或者只提供有限的支持,著色程序的靜態長度和動態可執行長度也非常短。最后,圖形處理器有著比微處理器多的多的算術邏輯運算單元。圖形處理器的所有指令都具有相同的延遲,不存在各類流水競爭。5、通用計算 gpgpu圖形處理器強
7、大的運算能力吸引著研究者們思考這樣的問題:能不能利用gpu做一些 3d 繪制以外的工作。基于gpu的通用計算 (general purpose gpu,gpgpu的) 概念應運而生,它指的是利用圖形卡來實現一般意義上的計算,而不單純是 3d 繪制。在可編程圖形處理器迅速發展的同時,相關的軟件開發技術也在不斷進步。目前,常用的三維圖形編程接口是opengl和 direct3d,其擴充功能由 gpu廠家提供,或由 api軟件開發者提供。 利用高級語言而不依賴于具體的硬件及計算平臺的編程一直是應用的努力目標, 并陸續出現了基于各種編程接口的高級渲染語言。繪制程序 (shader)設計的思想源自于早年
8、pixar 設計的 renderman 繪制軟件。此軟件多年來廣泛應用于好萊塢電影制作的繪制。關于新型標準繪制語言的研究工作,近年來具有較大影響的是:opengl shading languag,e 斯坦福大學的rtsl(real-time shading language,) microsoft的 hlsl (high-level shading language)以及 nvidia 的 cg( c for graphics)。盡管還未形成統一的繪制語言,這些語言的研究和應用為用戶提供了直接基于api(opengl或 directx)編程的較為方便和高層次的工具 ,尤其是 nvidia 的 cg。圖 7 gpu通用計算cg代表(用于圖形的 c語言),是由 nvidia 認公司推出的圖形硬件高級著
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論