GPU的架構知識介紹

雪盈1864 分享 時間:

GPU中文翻譯為“圖形處理器”,又稱顯示核心、視覺處理器、顯示芯片。這里給大家分享一些關于GPU架構知識介紹,希望對大家能有所幫助。

GPU的起源

GPU縮寫為Graphics Processing Unit的,一般稱為視覺處理單元。GPU被廣泛用于嵌入式系統(tǒng)、移動電話、個人電腦、工作站和電子游戲解決方案當中。現(xiàn)代的GPU對圖像和圖形處理是十分高效率的,這是因為GPU被設計為很高的并行架構這樣使得比通用處理器CPU在大的數(shù)據(jù)塊并行處理算法上更具有優(yōu)勢。

1985年 8月20日 ATi公司成立,同年10月ATi使用ASIC技術開發(fā)出了第一款圖形芯片和圖形卡,1992年 4月 ATi發(fā)布了 Mach32 圖形卡集成了圖形加速功能,1998年 4月 ATi被IDC評選為圖形芯片工業(yè)的市場領導者,但那時候這種芯片還沒有GPU的稱號,很長的一段時間ATI都是把圖形處理器稱為VPU,直到AMD收購ATI之后其圖形芯片才正式采用GPU的名字。

NVIDIA公司在1999年發(fā)布GeForce 256圖形處理芯片時首先提出GPU的概念。從此NVIDIA顯卡的芯片就用這個新名字GPU來稱呼。GPU使顯卡削減了對CPU的依賴,并執(zhí)行部分原本CPU的工作,尤其是在3D圖形處理時。GPU所采用的核心技術有鋼體T&L、立方環(huán)境材質貼圖與頂點混合、紋理壓縮及凹凸映射貼圖、雙重紋理四像素256位渲染引擎等,而硬體T&L技術能夠說是GPU的標志。

工作原理

電腦顯卡的處理器稱為圖形處理單元(GPU),它對于顯卡的功能就相當于CPU對于整臺電腦,但是GPU的設計初衷是為了處理圖形渲染所需要的復雜的數(shù)學和幾何運算。一些高速的GPU往往包含比CPU更多的晶體管,而且,GPU的運行會產生大量的熱量,因而,它們一般都安裝有必需的散熱片或者散熱風扇。

GPU是能夠從硬件上支持T&L(Transform and Lighting,多邊形轉換與光源處理)的顯示芯片,因為T&L是3D渲染中的一個重要部分,其作用是計算多邊形的3D位置和處理動態(tài)光線效果,也可以稱為“幾何處理”。一個好的T&L單元,可以提供細致的3D物體和高級的光線特效;只大多數(shù)PC中,T&L的大部分運算是交由CPU處理的(這也就是所謂的軟件T&L),由于CPU的任務繁多,除了T&L之外,還要做內存管理、輸入響應等非3D圖形處理工作,因此在實際運算的時候性能會大打折扣,常常出現(xiàn)顯卡等待CPU數(shù)據(jù)的情況,其運算速度遠跟不上今天復雜三維游戲的要求。即使CPU的工作頻率超過1GHz或更高,對它的幫助也不大,由于這是PC本身設計造成的問題,與CPU的速度無太大關系。

GPU是顯示卡的“大腦”,它決定了該顯卡的檔次和大部分性能,同時也是2D顯示卡和3D顯示卡的區(qū)別依據(jù)。2D顯示芯片在處理3D圖像和特效時主要依賴CPU的處理能力,稱為“軟加速”。3D顯示芯片是將三維圖像和特效處理功能集中在顯示芯片內,也即所謂的“硬件加速”功能。

GPU加速技術

當前CPU發(fā)展速度已經(jīng)落后于摩爾定律,而GPU正以超過摩爾定律的速度快速發(fā)展。

在SIGGRAPH2003大會上,許多業(yè)界泰斗級人物發(fā)表了關于利用GPU進行各種運算的設想和實驗模型。SIGGRAPH會議還特地安排了時間進行GPGPU的研討交流。與此同時,在計算機進入DirectX 9 Shader Model 3.0時代,新的Shader Model在指令槽、流控制方面的顯著增強使得對應GPU的可編程性能得到了大大的提升。GPGPU的研究由此進入快車道。

下面對幾個值得關注的技術做簡單介紹。

CUDA

為充分利用GPU的計算能力,NVIDIA在2006年推出了CUDA(ComputeUnified Device Architecture,統(tǒng)一計算設備架構)這一編程模型。CUDA是一種由NVIDIA推出的通用并行計算架構,該架構使GPU能夠解決復雜的計算問題。它包含了CUDA指令集架構(ISA)以及GPU內部的并行計算引擎。開發(fā)人員現(xiàn)在可以使用C語言來為CUDA架構編寫程序。

通過這個技術,用戶可利用NVIDIA的GeForce 8以后的GPU和較新的QuadroGPU進行計算。以GeForce 8800 GTX為例,其核心擁有128個內處理器。利用CUDA技術,就可以將那些內處理器串通起來,成為線程處理器去解決數(shù)據(jù)密集的計算。而各個內處理器能夠交換、同步和共享數(shù)據(jù)。

從CUDA體系結構的組成來說,包含了三個部分:開發(fā)庫、運行期環(huán)境和驅動。

開發(fā)庫是基于CUDA技術所提供的應用開發(fā)庫。CUDA的1.1版提供了兩個標準的數(shù)學運算庫——CUFFT(離散快速傅立葉變換)和CUBLAS(離散基本線性計算)的實現(xiàn)。這兩個數(shù)學運算庫所解決的是典型的大規(guī)模的并行計算問題,也是在密集數(shù)據(jù)計算中非常常見的計算類型。開發(fā)人員在開發(fā)庫的基礎上可以快速、方便的建立起自己的計算應用。此外,開發(fā)人員也可以在CUDA的技術基礎上實現(xiàn)出更多的開發(fā)庫。

運行期環(huán)境提供了應用開發(fā)接口和運行期組件,包括基本數(shù)據(jù)類型的定義和各類計算、類型轉換、內存管理、設備訪問和執(zhí)行調度等函數(shù)?;贑UDA開發(fā)的程序代碼在實際執(zhí)行中分為兩種,一種是運行在CPU上的宿主代碼(Host Code),一種是運行在GPU上的設備代碼(Device Code)。不同類型的代碼由于其運行的物理位置不同,能夠訪問到的資源不同,因此對應的運行期組件也分為公共組件、宿主組件和設備組件三個部分,基本上囊括了所有在GPGPU開發(fā)中所需要的功能和能夠使用到的資源接口,開發(fā)人員可以通過運行期環(huán)境的編程接口實現(xiàn)各種類型的計算。

由于目前存在著多種GPU版本的NVIDIA顯卡,不同版本的GPU之間都有不同的差異,因此驅動部分基本上可以理解為是CUDA-enable的GPU的設備抽象層,提供硬件設備的抽象訪問接口。CUDA提供運行期環(huán)境也是通過這一層來實現(xiàn)各種功能的。由于體系結構中硬件抽象層的存在,CUDA今后也有可能發(fā)展成為一個通用的GPGPU標準接口,兼容不同廠商的GPU產品

OpenCL

OpenCL是Open Computing Language(開放式計算語言)的簡稱,它是第一個為異構系統(tǒng)的通用并行編程而產生的統(tǒng)一的、免費的標準。OpenCL最早由蘋果公司研發(fā),其規(guī)范是由Khronos Group推出的。OpenCL支持由多核的CPU、GPU、Cell類型架構以及信號處理器(DSP)等其他的并行設備組成的異構系統(tǒng)。OpenCL的出現(xiàn),使得軟件開發(fā)人員編寫高性能服務器、桌面計算系統(tǒng)以及手持設備的代碼變得更加快捷。

OpenCL是一個為異構平臺編寫程序的框架,此異構平臺可由CPU,GPU或其他類型的處理器組成。OpenCL由一門用于編寫kernels (在OpenCL設備上運行的函數(shù))的語言(基于C99)和一組用于定義并控制平臺的API組成。其框架如下:

OpenCL平臺API:平臺API定義了宿主機程序發(fā)現(xiàn)OpenCL設備所用的函數(shù)以及這些函數(shù)的功能,另外還定義了為OpenCL應用創(chuàng)建上下文的函數(shù)。

OpenCL運行時API:這個API管理上下文來創(chuàng)建命令隊列以及運行時發(fā)生的其他操作。例如,將命令提交到命令隊列的函數(shù)就來自OpenCL運行時API。

OpenCL編程語言:這是用來編寫內核代碼的編程語言。它基于ISO C99標準的一個擴展子集,因此通常稱為OpenCL C編程語言。

OpenCL由用于編寫內核程序的語言和定義并控制平臺的API組成,提供了基于任務和基于數(shù)據(jù)的兩種并行計算機制,使得GPU的計算不在僅僅局限于圖形領域,而能夠進行更多的并行計算。OpenCL還是一個開放的工業(yè)標準,它可以為CPU和GPU等不同的設備組成的異構平臺進行編程。OpenCL是一種語言,也是一個為并行編程而提供的框架,編程人員可以利用OpenCL編寫出一個能夠在GPU上執(zhí)行的通用程序。在游戲、娛樂、科研、醫(yī)療等各種領域都有廣闊的發(fā)展前景。

AMD Fusion

與Nvidia不同,AMD走了一條全新的路子:將CPU和GPU融為一體,打造了AMDFusion,即APU(Accelerated Processing Units)。這是AMD融聚未來理念的產品,它第一次將處理器和獨顯核心做在一個晶片上,協(xié)同計算、彼此加速,同時具有高性能處理器和最新支持DX11獨立顯卡的處理性能,大幅提升電腦運行效率,實現(xiàn)了CPU與GPU真正的融合。與傳統(tǒng)的x86中央處理器相比, APU提出了“異構系統(tǒng)架構”(Heterogeneous System Architecture,HSA),即單芯片上兩個不同的架構進行協(xié)同運作。以往集成圖形核心一般是內置于主板的北橋中。而AMD Fusion項目則是結合現(xiàn)時的處理器和繪圖核心,即是將處理一般事務的CPU核心、處理3D幾何任務以及圖形核心之擴展功能的現(xiàn)代GPU核心、以及主板的北橋融合到一塊芯片上。這種設計允許一些應用程序或其相關鏈接界面來調用圖形處理器來加速處理進程,例如OpenCL。

未來AMD將會在AMD APU上實現(xiàn)存儲器統(tǒng)一尋址空間,使CPU和GPU進一步結合。最終的目標是要將圖形處理器和中央處理器“深度集成”、“完全融合”,可根據(jù)任務類型自動分配運算任務予不同的運算單元中。

目前計算機業(yè)界認為,類似的統(tǒng)合技術將是未來處理器的一個主要發(fā)展方向。


知識介紹相關文章:

大寒節(jié)氣知識介紹

春節(jié)傳統(tǒng)文化知識介紹

關于春節(jié)傳統(tǒng)文化知識介紹

大寒的節(jié)氣知識介紹

旅行知識大全

春節(jié)的傳統(tǒng)文化知識科普大全

關于即興演講的基本知識介紹

中國傳統(tǒng)禮儀知識大全

冬至的養(yǎng)生小常識介紹

語文的知識點歸納整理

GPU的架構知識介紹

將本文的Word文檔下載到電腦,方便收藏和打印
推薦度:
點擊下載文檔文檔為doc格式
845228