圖形處理器

做圖像和圖形相關運算工作的微處理器

圖形處理器(英語:Graphics Processing Unit,縮寫:GPU),又稱顯示核心、視覺處理器、顯示晶元,是一種專門在個人電腦、工作站、遊戲機和一些移動設備(如平板電腦、智能手機等)上做圖像和圖形相關運算工作的微處理器。

GPU使顯卡減少了對CPU的依賴,並進行部分原本CPU的工作,尤其是在3D圖形處理時GPU所採用的核心技術有硬體T&L(幾何轉換和光照處理)、立方環境材質貼圖和頂點混合、紋理壓縮和凹凸映射貼圖、雙重紋理四像素256位渲染引擎等,而硬體T&L技術可以說是GPU的標誌。GPU的生產商主要有NVIDIA和ATI。

簡介


一個光柵顯示系統離不開圖形處理器,圖形處理器是圖形系統結構的重要元件,是連接計算機和顯示終端的紐帶。
應該說有顯示系統就有圖形處理器(俗稱顯卡),但是早期的顯卡只包含簡單的存儲器和幀緩衝區,它們實際上只起了一個圖形的存儲和傳遞作用,一切操作都必須由CPU來控制。這對於文本和一些簡單的圖形來說是足夠的,但是當要處理複雜場景特別是一些真實感的三維場景,單靠這種系統是無法完成任務的。所以後來發展的顯卡都有圖形處理的功能。它不單單存儲圖形,而且能完成大部分圖形功能,這樣就大大減輕了CPU的負擔,提高了顯示能力和顯示速度。隨著電子技術的發展,顯卡技術含量越來越高,功能越來越強,許多專業的圖形卡已經具有很強的3D處理能力,而且這些3D圖形卡也漸漸地走向個人計算機。一些專業顯卡具有的晶體管數甚至比同時代的CPU的晶體管數還多。比如2000年加拿大ATI公司推出的 RADEON顯卡晶元含有3千萬顆晶體管,達到每秒15億個象素填寫率。

組成


圖形處理器由以下器件組成:
(1)顯示主晶元顯卡的核心,俗稱GPU,它的主要任務是對系統輸入的視頻信息進行構建和渲染。
(2)顯示緩衝存儲器用來存儲將要顯示的圖形信息以及保存圖形運算的中間數據;顯示緩存的大小和速度直接影響著主晶元性能的發揮。
(3)RAMD/A轉換器把二進位的數字轉換成為和顯示器相適應的模擬信號。

發展趨勢


計算能力和計算模式方面的問題
當前 GPU 的基礎 ———傳統 Z-buffer 演演算法不能滿足新的應用需求。在實時圖形和視頻應用中,需要更強大的通用計算能力,比如支持碰撞檢測、近似物理模擬;在遊戲中需要圖形處理演演算法與人工智慧和場景管理等非圖形演演算法相結合。當前的GPU 的體系結構不能很好地解決電影級圖像質量需要解決的透明性、高質量反走樣、運動模糊、景深和微多邊形染色等問題,不能很好的支持實時光線跟蹤、Reyes(Renders everything you ever saw) 等更加複雜的圖形演演算法,也難以應對高質量的實時3D圖形需要的全局光照、動態和實時顯示以及陰影和反射等問題。需要研究新一代的 GPU 體系結構突破這些限制。隨著 VLSI 技術的飛速發展,新一代 GPU晶元應當具有更強大的計算能力,可以大幅度提高圖形解析度、場景細節 (更多的三角形和紋理細節)和全局近似度。圖形處理系統發展的趨勢是圖形和非圖形演演算法的融合以及現有的不同染色演演算法的融合。新一代的圖形系統晶元需要統一靈活的數據結構、新的程序設計模型、多種并行計算模式。我們認為發展的趨勢是在統一的、規則并行處理元陣列結構上,用數據級并行、操作級并行和任務級并行的統一計算模式來解決當前圖形處理系統晶元面臨的問題。
製造工藝方面的問題
集成電路發展到納米級工藝,不斷逼近物理極限,出現了所謂紅牆問題:一是線的延遲比門的延遲越來越重要。長線不僅有傳輸延遲問題,而且還有能耗問題。二是特徵尺寸已小到使晶元製造缺陷不可避免,要從缺陷容忍、故障容忍與差錯容忍等三個方面研究容錯與避錯技術。三是漏電流和功耗變得非常重要,要採用功耗的自主管理技術。現代的圖形處理器晶元在克服紅牆問題的幾個方面有了顯著的進步:利用了大量的規則的 SIMD 陣列結構;它的分佈存儲器接近了運算單元,減少了長線影響;它的硬體多線程掩蓋了部分存儲延遲的影響。但是隨著工藝進一步發展,當前 GPU 的體系結構難以適應未來工藝發展,沒有在體系結構上應對長線問題、工藝偏差和工藝缺陷問題的措施,特別是沒有考慮如何適應三維工藝。當前最先進工藝的晶體管的柵極厚度已經大約是五個原子,在製造時,少了一個原子就造成20 %的工藝偏差。因此工藝的偏差成為SoC設計不能不考慮的問題。特別是到 2018 年後的納電子集成電路,可以通過隨機自組裝產生規則的納米器件。因此,新一代系統晶元的體系結構必須利用規則的結構並且容忍工藝偏差,具有容錯、避錯和重組的能力。我們認為採用大量同構處理器元之間的鄰接技術,適應納米級工藝和未來的三維工藝,採用新型體系結構和相關的低功耗、容錯和避錯的設計策略,對於未來的圖形處理系統晶元具有重要的科學意義。

型號舉例


AMD
AMD筆記本電腦顯卡產品主要是Mobility Radeon系列,該系列產品具備一定的3D性能,其產品主要有R9(高端)、R7(中端)、R5(低端)三個系列:
● Mobility Radeon R9 M200系列的Mobility Radeon R9 M295X/M280/M275X//M265X; 
● Mobility Radeon R9 M300系列的Mobility Radeon R9 M395X/M385X/M375X//M365X; 
● Mobility Radeon R7 M200系列的Mobility Radeon R7 M270/M265f M260X/M260; 
● Mobility Radeon R7 M300系列的Mobility Radeon R7 M380/M370/M365/M360X/M340; 
● Mobility Radeon R5 M200系列的Mobility Radeon R5 M255/M230; 
● Mobility Radeon R5 M300系列的Mobility Radeon R5 M335/M330/M320/M315等。 
nVIDIA
nVIDIA筆記本電腦顯卡產品主要包括GeForce 900M系列移動顯卡、GeForce 800M系列移動顯卡、GeForce 700M系列移動顯卡等。
其中GeForce9800M系列移動顯卡主要包括GeForce GTX980M/ GTX970M/ GTX 960M/GTX950M/940M/930M/920M/910M等。
GeForce 800M系列移動顯卡主要包括GeForce GTX880M/ GTX870M/GTX860M/GTX850M/ 840M/830M/820M等。
GeForce 700M系列移動顯卡主要包括GeForce GTX780M/ GTX770M/ GTX765M/GTX760M/GT755M/750M/GT745M/GT740M/GT730M/GT720M/等。

功能作用


顯卡的處理器稱為圖形處理器(GPU),它是顯卡的“心臟”,與CPU類似,只不過GPU是專為執行複雜的數學和幾何計算而設計的,這些計算是圖形渲染所必需的。某些最快速的GPU集成的晶體管數甚至超過了普通CPU。
時下的GPU多數擁有2D或3D圖形加速功能。如果CPU想畫一個二維圖形,只需要發個指令給GPU,如“在坐標位置(x, y)處畫個長和寬為a×b大小的長方形”,GPU就可以迅速計算出該圖形的所有像素,並在顯示器上指定位置畫出相應的圖形,畫完后就通知CPU “我畫完了”,然後等待CPU發出下一條圖形指令。
有了GPU,CPU就從圖形處理的任務中解放出來,可以執行其他更多的系統任務,這樣可以大大提高計算機的整體性能。
GPU會產生大量熱量,所以它的上方通常安裝有散熱器或風扇。
GPU是顯示卡的“大腦”,GPU決定了該顯卡的檔次和大部分性能,同時GPU也是2D顯示卡和3D顯示卡的區別依據。2D顯示晶元在處理3D圖像與特效時主要依賴CPU的處理能力,稱為軟加速。3D顯示晶元是把三維圖像和特效處理功能集中在顯示晶元內,也就是所謂的“硬體加速”功能。顯示晶元一般是顯示卡上最大的晶元(也是引腳最多的)。時下市場上的顯卡大多採用NVIDIA和 AMD-ATI 兩家公司的圖形處理晶元。
GPU已經不再局限於3D圖形處理了,GPU通用計算技術發展已經引起業界不少的關注,事實也證明在浮點運算、并行計算等部分計算方面,GPU可以提供數十倍乃至於上百倍於CPU的性能,如此強悍的“新星”難免會讓CPU廠商老大英特爾為未來而緊張, NVIDIA和英特爾也經常為CPU和GPU誰更重要而展開口水戰。GPU通用計算方面的標準目前有OpenCL、CUDA、ATI STREAM。其中,OpenCL(全稱Open Computing Language,開放運算語言)是第一個面向異構系統通用目的并行編程的開放式、免費標準,也是一個統一的編程環境,便於軟體開發人員為高性能計算伺服器、桌面計算系統、手持設備編寫高效輕便的代碼,而且廣泛適用於多核心處理器(CPU)、圖形處理器(GPU)、Cell類型架構以及數字信號處理器(DSP)等其他并行處理器,在遊戲、娛樂、科研、醫療等各種領域都有廣闊的發展前景,AMD-ATI、NVIDIA時下的產品都支持OPEN CL。
1985年 8月20日 ATi公司成立,同年10月ATi使用ASIC技術開發出了第一款圖形晶元和圖形卡,1992年 4月 ATi發布了 Mach32 圖形卡集成了圖形加速功能,1998年 4月 ATi被IDC評選為圖形晶元工業的市場領導者,但那時候這種晶元還沒有GPU的稱號,很長的一段時間ATI都是把圖形處理器稱為VPU,直到AMD收購ATI之後其圖形晶元才正式採用GPU的名字。
NVIDIA公司在1999年發布GeForce 256圖形處理晶元時首先提出GPU的概念。從此NV顯卡的芯就用這個新名字GPU來稱呼。GPU使顯卡削減了對CPU的依賴,並實行部分原本CPU的工作,更加是在3D圖形處理時。GPU所採用的核心技術有硬體T&L、立方環境材質貼圖與頂點混合、紋理壓縮及凹凸映射貼圖、雙重紋理四像素256位渲染引擎等,而硬體T&L技術能夠說是GPU的標誌。

工作原理


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

產品區別


GPU在幾個主要方面有別於DSP(Digital Signal Processing,簡稱DSP,數字信號處理)架構。其所有計算均使用浮點演演算法,而且此刻還沒有位或整數運算指令。此外,由於GPU專為圖像處理設計,因此存儲系統實際上是一個二維的分段存儲空間,包括一個區段號(從中讀取圖像)和二維地址(圖像中的X、Y坐標)。此外,沒有任何間接寫指令。輸出寫地址由光柵處理器確定,而且不能由程序改變。這對於自然分佈在存儲器之中的演演算法而言是極大的挑戰。最後一點,不同碎片的處理過程間不允許通信。實際上,碎片處理器是一個SIMD數據并行執行單元,在所有碎片中獨立執行代碼。
儘管有上述約束,但是GPU還是可以有效地執行多種運算,從線性代數和信號處理到數值模擬。雖然概念簡單,但新用戶在使用GPU計算時還是會感到迷惑,因為GPU需要專有的圖形知識。這種情況下,一些軟體工具可以提供幫助。兩種高級描影語言CG和HLSL能夠讓用戶編寫類似C的代碼,隨後編譯成碎片程序彙編語言Brook是專為GPU計算設計,且不需要圖形知識的高級語言。因此對第一次使用GPU進行開發的工作人員而言,它可以算是一個很好的起點。Brook是C語言的延伸,整合了可以直接映射到GPU的簡單數據并行編程構造。經 GPU存儲和操作的數據被形象地比喻成“流”(stream),類似於標準C中的數組。核心(Kernel)是在流上操作的函數。在一系列輸入流上調用一個核心函數意味著在流元素上實施了隱含的循環,即對每一個流元素調用核心體。Brook還提供了約簡機制,例如對一個流中所有的元素進行和、最大值或乘積計算。Brook還完全隱藏了圖形API的所有細節,並把GPU中類似二維存儲器系統這樣許多用戶不熟悉的部分進行了虛擬化處理。用Brook編寫的應用程序包括線性代數子程序、快速傅立葉轉換、光線追蹤和圖像處理。利用ATI的X800XT和Nvidia的GeForce 6800 Ultra型GPU,在相同高速緩存、SSE彙編優化Pentium 4執行條件下,許多此類應用的速度提升高達7倍之多。
對GPU計算感興趣的用戶努力將演演算法映射到圖形基本元素。類似Brook這樣的高級編程語言的問世使編程新手也能夠很容易就掌握GPU的性能優勢。訪問GPU計算功能的便利性也使得GPU的演變將繼續下去,不僅僅作為繪製引擎,而是會成為個人電腦的主要計算引擎。

識別軟體


說起處理器識別工具CPU-Z,其知名度和必備度無需贅言。硬體網站時下又給我們提供了一個類似的工具,用於顯卡識別的“GPU-Z”。這是TechPowerUp發布的專業顯卡識別工具。

供應商


GPU有非常多的廠商都生產,和CPU一樣,生產的廠商比較多,但大家熟悉的卻只有INA,以至於大家以為GPU只有三大廠商。

英特爾

英特爾的GPU基本為集成顯卡晶元,用於英特爾的主板和英特爾的CPU。可能你想不到,要是只按市場佔有率計算,英特爾隨著他主板及CPU發售的集成GPU佔據了整個GPU市場的60%以上。
他的GPU主要有:唯一一款獨立顯卡晶元Intel 740(i740)。Extreme Graphics系列、GMA系列(集成於晶元組中)。現在的HD Graphics系列、Iris™ Graphics系列、Iris™ Pro Graphics系列等(集成於CPU中)。

NVIDIA

NVIDIA是現在最大的獨立顯卡晶元生產銷售商。
他的GPU包括大家熟悉的Geforce系列,包括GTX、GTS、GT等。專業工作站的Quadro系列,超級計算的Tesla系列,多顯示器商用的NVS系列,移動設備的Tegra系列。
以前也銷售集成在主板上的集成顯卡晶元,這些隨著主板晶元組一起發售,但是由於AMD收購ATI后自身主板晶元組GPU能力提高,NVIDIA晶元組如日中天的景象已經消失了。
曾經為遊戲機Xbox、PS3供應GPU。

AMD(ATI)

AMD是世界上第二大的獨立顯卡晶元生產銷售商,他的前身就是ATI,2006年AMD以54億美元收購ATI。
他的GPU主要是大家熟悉的Radeon系列,包括以前的X、HD系列,近幾年的R9、R7、R5、R3,現在的RX系列等。專業工作站的FireGL系列,超級計算的FireStream系列,多顯示器商用的FireMV系列,現在前三者已合併為FirePro系列。
早期ATI還生產過Wonder系列、Mach系列、Rage系列晶元。
除了獨立顯卡之外AMD還擁有集成顯卡晶元,集成於晶元組、APU中。
由於AMD收購ATI后,其主板市場迅速擴大,已經奪取了NVIDIA在AMD處理器主板晶元組的半壁江山。
就現在的發售量和發售盈利方面,AMD的GPU市場佔有率方面仍然略輸於NVIDIA。
AMD也是遊戲機Xbox 360、Wii、Wii U、PS4、Xbox One的GPU供應商。

3dfx

3dfx是一家於1994年成立的生產3D GPU及顯卡的公司。
曾經生產了Voodoo系列顯卡,並且研發了SLI技術。
由於經營不善等問題於2002年被NVIDIA收購。

Matrox

Matrox當年和NVIDIA,ATI一起爭奪獨立顯卡晶元市場份額的一家公司,在曾經的一個時期Matrox的顯卡和NVIDIA,ATI曾經在性能上比肩過。但由於後來其開發能力日漸衰退,在GF5時期,也就是ATI的9000系列時期,Matrox由於性能上整整落後了GF5900和Raden9800一個世代而逐漸被淘汰,淡出了民用獨立顯卡市場。
但時下Matrox仍然在工程用專業顯卡方面有自己的地位。這些顯卡用於工程主圖和多頭輸出仍然很強力。與NVIDIA和AMD的專業顯卡不同,NVIDIA,ATI的專業顯卡涉足的是3D領域,而Matrox得專業顯卡涉足的是2D領域,也就是CAD
但由於OpenCL、CUDA的日漸普及,DX10以上顯卡將在所有支持CUDA的程序上表現出驚人的性能,也就是說當CUDA在各種運用軟體普及的那天,Matrox也必將退出2D專業卡的市場。

SiS和VIA

矽統和威盛時下是對孿生兄弟,但他們曾經也是分開的兩家公司,並且都生產自己主板的集成顯卡晶元。但這可憐的兩兄弟已經逐步在淡出主板市場了,也就必定將淡出GPU市場。

類型


獨立顯卡

顯卡是通過PCI-Express、PCI或AGP等擴展槽界面與主板連接的,而通常它們可以相對容易地被取代或升級(假設主板能支持升級)。現在,仍然有少數顯卡採用帶寬有限的PCI插槽作連接,但它們通常只會在主板沒有提供PCI-Express和AGP插槽的情況下才會使用。
在現今的定義里,獨立繪圖處理器不一定需要,是可以被移除的,也不一定要直接與主板連接。所謂的“專用”即是指獨立顯卡(或稱專用顯卡)內的RAM只會被該卡專用,而不是指顯卡是否可從主板上獨立移除。基於體積和重量的限制,供筆記本電腦使用的獨立繪圖處理器通常會通過非標準或獨特的介面作連接。然而,由於邏輯介面相同,這些埠仍會被視為PCI-Express或AGP,即使它們在物理上是不可與其他顯卡互換的。
一些特別的技術,如NVIDIA的SLI和ATI的CrossFire允許多個繪圖處理器共同處理一個單一的視頻輸出,可令電腦的圖像處理能力增加。

集成繪圖處理器

集成繪圖處理器(或稱內置顯示核心)是設在主板或CPU上的繪圖處理器,運作時會借用電腦內部分的系統存儲器。2007年裝設集成顯示的個人電腦約佔總出貨量的90%,相比起使用獨立顯卡的方案,這種方案可能較為便宜,但性能也許相對較低。從前,集成繪圖處理器往往會被認為是不適合於運行3D遊戲或精密的圖形型運算。然而,如Intel GMA X3000(Intel G965 晶元組)、AMD的Radeon HD 4290(AMD 890GX 晶元組)和NVIDIA的GeForce 8200(NVIDIAnForce 730a晶元組)已有能力處理對系統需求不是太高的3D圖像。當時較舊的集成圖形處理器組缺乏如硬體T&L等功能,只有較新型號才會包含。
影響集成繪圖處理器的性能,其中一個原因是由於內置顯示核心的運算速度。同時,圖形處理器在運作時會消耗一定數量的存儲器。系統存儲器的速度比高級獨立繪圖存儲器來得慢,系統存儲器的發送速度可能是10GB/s至20GB/s左右,獨立繪圖存儲器則至少有50GB/s,甚至超過150GB/s,取決於型號而定。
不過從2009年開始,圖形處理器已經從主板移去處理器了,如Intel的Westmere架構至目前的Kaby Lake架構。不過極致版並沒有集成圖形處理器。集成至處理器的好處是由於繪圖及處理器晶元工藝為相同(Westmere除外,CPU為32nm而GPU為45nm),可以減低熱功耗。隨著內顯技術的成熟,目前的內顯已經足夠應付基本3D的需求,不過仍然依賴主板本身的存儲器。

相關問題


第一個問題

GPU的競爭遠比CPU的競爭來得激烈。通用PC的CPU就只有英特爾和AMD兩家大廠。而在GPU方面領先的是N記和A記兩家廠商,但能生產中低端產品的還有英特爾、S3等好幾家廠商。它們的產品雖然不如前兩家,但在很多應用方面也能滿足用戶的需要,所以N記和A記只有拚命往前跑才不會死掉。CPU廠商沒有採用GPU的先進工藝是因為CPU廠商都有自己投資的生產線,不可能一下把原來的生產線都淘汰了上新的生產線,那樣做可能連當初投入的資金都難以收回。而GPU廠商由於種種原因,一般都是自己設計由別人代工的,比如找台積電代工。代工廠商為了能接到業務,只有不停升級自己的生產設備,這樣才能生存下來。所以造成以上原因。

第二個問題

就如你所說的一樣,CPU除了處理遊戲的AI,情節等方面的數據外,對於有些圖像方面也是由它完成的。當微軟每次發布新的DX時,並不是每款GPU都能支持DX新的特性,所以有些圖像方面的任務還得由CPU來完成。還有有些特性比如重力特性以前是由CPU來完成,時下有些GPU也能支持了,這些任務就由GPU來完成了。

第三個問題

GPU相當於專用於圖像處理的CPU,正因為它專,所以它強,在處理圖像時它的工作效率遠高於CPU,但是CPU是通用的數據處理器,在處理數值計算時是它的強項,它能完成的任務是GPU無法代替的,所以不能用GPU來代替CPU。
另外
時下AMD收購了A記顯卡晶元的設計廠商,AMD看到今後CPU和GPU只有走一條融合的道路才能在競爭中佔得先機。CPU和GPU如何配合默契才能最大地提高工作效率是AMD時下考慮的問題,也是英特爾的問題。

第四個問題

微軟發布windows7 其中一個顯著特性就是 聯合GPU和CPU的強大實力,提升GPU在硬體使用的價值,在Windows7中,CPU與GPU組成了協同處理環境。CPU運算非常複雜的序列代碼,而GPU則運行大規模并行應用程序。微軟利用DirectX Compute將GPU作為操作系統的核心組成部分之一。DirectX Compute。它讓開發人員能夠利用 GPU的大規模并行計算能力,創造出引人入勝的消費級和專業級計算應用程序。簡單的說,DirectX Compute就是微軟開發的GPU通用計算介面,欲統一GPU通用計算標準。也就是說windows7 以後GPU的硬體地位將僅次於CPU,發揮出更大的效用。