當前位置:
首頁 > 最新 > GPU學習筆記

GPU學習筆記

Graphics Processing Unit(GPU),即可編程圖形處理單元, 通常也稱之為可編程圖形硬體。

由於 GPU 具有高並行結構(highly parallel structure),所以 GPU 在處理圖形數據和複雜演算法方面擁有比 CPU 更高的效率。圖 1 GPU VS CPU 展示了 GPU 和 CPU 在結構上的差異,CPU 大部分面積為控制器和寄存器,與之相比,GPU 擁有更多的 ALU(Arithmetic Logic Unit,邏輯運算單元)用於數據處理,而非數據高速緩存和流控制,這樣的結構適合對密集型數據進行並行處理。CPU 執行計算任務時,一個時刻只處理一個數據,不存在真正意義上的並行,而 GPU 具有多個處理器核,在一個時刻可以並行處理多個數據。

GPU 採用流式並行計算模式,可對每個數據進行獨立的並行計算,所謂「對 數據進行獨立計算」,即,流內任意元素的計算不依賴於其它同類型數據,例如,計算一個頂點的世界位置坐標,不依賴於其他頂點的位置。而所謂「並行計算」 是指「多個數據可以同時被使用,多個數據並行運算的時間和 1 個數據單獨執行的時間是一樣的」。圖 2 中代碼目的是提取 2D 圖像上每個像素點的顏色值,在 CPU 上運算的 C++代碼通過循環語句依次遍歷像素;而在 GPU 上,則只需要一條語句就足夠。

其一,object space coordinate 就是模型文件中的頂點值,這些值是在模型建模時得到的,例如,用 3DMAX 建 立一個球體模型並導出為.max 文件,這個文件中包含的數據就是 object space coordinate;其二,object space coordinate 與其他物體沒有任何參照關係,注意,這個概念非常重要,它是將 object space coordinate 和 world space coordinate 區分 開來的關鍵。無論在現實世界,還是在計算機的虛擬空間中,物體都必須和一個固定的坐標原點進行參照才能確定自己所在的位置,這是 world space coordinate 的實際意義所在。

從 object space coordinate 到 world space coordinate 的變換過程由一個四階矩陣控制,通常稱之為 world matrix。需要高度注意的是:頂點法向量在模型文件中屬於 object space,在 GPU 的 頂點程序中必須將法向量轉換到 world space 中才能使用,如同必須將頂點坐標從 object space 轉換到 world space 中一樣,但兩者的轉換矩陣是不同的,準確的說,法向量從 object space 到 world space 的轉換矩陣是 world matrix 的轉置矩陣的逆矩陣。

每個人都是從各自的視點出發觀察這個世界,無論是主觀世界還是客觀世界。同樣,在計算機中每次只能從唯一的視角出發渲染物體。在遊戲中,都會提供視點漫遊的功能,屏幕顯示的內容隨著視點的變化而變化。這是因為 GPU 將 物體頂點坐標從 world space 轉換到了 eye space。 所謂 eye space,即以 camera(視點或相機)為原點,由視線方向、視角和遠近平面,共同組成一個梯形體的三維空間,稱之為 viewing frustum(視錐), 如圖 4 所示。近平面,是梯形體較小的矩形面,作為投影平面,遠平面是梯形體 較大的矩形,在這個梯形體中的所有頂點數據是可見的,而超出這個梯形體之外的場景數據,會被視點去除(Frustum Culling,也稱之為視錐裁剪)。

從視點坐標空間到屏幕坐標空間 (screen coordinate space)事實上是由三步組成:

1. 用透視變換矩陣把頂點從視錐體中變換到裁剪空間的 CVV 中;

2. 在 CVV 進行圖元裁剪;

3. 屏幕映射:將經過前述過程得到的坐標映射到屏幕坐標繫上。

從物理結構而言,寄存器是 cpu 或 gpu 內部的存儲單元,即寄存器是嵌入在 cpu 或者 gpu 中的,而內存則可以獨立存在;

從功能上而言,寄存器是有限存儲 容量的高速存儲部件,用來暫存指令、數據和位址。

Shader 編成是基於計算機圖形硬體的,這其中就包括 GPU 上的寄存器類型,glsl 和 hlsl 的著色虛擬機版本就是基於 GPU 的寄存器和指令集而區分的。

頂點著色器控制頂點坐標 轉換過程;片段著色器控制像素顏色計算過程。這樣就區分出頂點著色程序和片 段著色程序的各自分工:Vertex program 負責頂點坐標變換;Fragment program 負責像素顏色計算;前者的輸出是後者的輸入。

來源:http://www.cnblogs.com/wang-jin-fu/p/8289699.html

權威發布有關Imagination公司CPU,GPU以及連接IP、無線IP最新資訊,提供有關物聯網、可穿戴、通信、汽車電子、醫療電子等應用信息,每日更新大量信息,讓你緊跟技術發展,歡迎關注!伸出小手按一下二維碼我們就是好朋友!


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Imagination Tech 的精彩文章:

正向渲染和延遲渲染的區別
圖文並茂地講解卷積神經網路

TAG:Imagination Tech |