圖形處理器
圖形處理器(英語:Graphics Processing Unit,縮寫:GPU),又稱顯示核心(display core)、視覺處理器(video processor)、顯示晶片(display chip)或圖形晶片(graphics chip),是一種專門在個人電腦、工作站、遊戲機和一些流動裝置(如平板電腦、智能電話等)上執行繪圖運算工作的微處理器。以圖形處理器為核心的主機板擴充卡也稱顯示卡,或簡稱顯卡。
上級分類 | 輔助處理器、並行向量處理機 |
---|---|
所屬實體 | 顯示卡、系統單晶片 |
簡稱 | GPU |
Stack Exchange標籤 | https://stackoverflow.com/tags/gpu |
圖形處理器是NVIDIA公司(NVIDIA)在1999年8月發表NVIDIA GeForce 256(GeForce 256)繪圖處理晶片時首先提出的概念,在此之前,電腦中處理影像輸出的顯示晶片,通常很少被視為是一個獨立的運算單元。而對手冶天科技(ATi)亦提出視覺處理器(Visual Processing Unit)概念。圖形處理器使顯示卡減少對中央處理器(CPU)的依賴,並分擔部分原本是由中央處理器所擔當的工作,尤其是在進行三維繪圖運算時,功效更加明顯。圖形處理器所採用的核心技術有硬件座標轉換與光源、立體環境材質貼圖和頂點混合、紋理壓縮和凹凸對映貼圖、雙重紋理四像素256位彩現引擎等。
圖形處理器可單獨與專用電路板以及附屬組件組成顯示卡,或單獨一片晶片直接內嵌入到主機板上,或者內建於主機板的北橋晶片中,現在也有內建於CPU上組成SoC的。個人電腦領域中,在2007年,90%以上的新型桌上電腦和手提電腦擁有嵌入式繪圖晶片,但是在效能上往往低於不少獨立顯示卡。[1]但2009年以後,AMD和英特爾都各自大力發展內建於中央處理器內的高效能整合式圖形處理核心,它們的效能在2012年時已經勝於那些低階獨立顯示卡,[2]這使得不少低階的獨立顯示卡逐漸失去市場需求,兩大個人電腦圖形處理器研發巨頭中,AMD以AMD APU產品線取代旗下大部分的低階獨立顯示核心產品線。[3]而在手持裝置領域上,隨着一些如平板電腦等裝置對圖形處理能力的需求越來越高,不少廠商像是高通(Qualcomm)、PowerVR、ARM、NVIDIA等,也在這個領域「大顯身手」。
GPU不同於傳統的CPU,如Intel i5或i7處理器,其內核數量較少,專為通用計算而設計。相反,GPU是一種特殊類型的處理器,具有數百或數千個內核,經過最佳化,可並列執行大量計算。雖然GPU在遊戲中以3D彩現而聞名,但它們對執行分析、深度學習和機器學習演算法尤其有用。GPU允許某些計算比傳統CPU上執行相同的計算速度快10倍至100倍。
歷史
1970年代
ANTIC和CTIA晶片為Atari-8位元電腦提供硬件控制的圖形和文字混合模式,以及其他視像效果的支援。ANTIC晶片是一個特殊用途的處理器,用於對映文字和圖形數據到影像輸出。ANTIC晶片的設計師,Jay Miner隨後為Amiga設計繪圖晶片。
1980年代
Commodore Amiga是第一個於市場上包含映像顯示功能在其視像硬件上的電腦,而IBM 8514圖形系統是第一個植入2D顯示功能的PC顯示卡。
Amiga是獨一無二的,因為它是一個完整的圖形加速器,擁有幾乎所有的影像產生功能,包括線段繪畫,區域填充,塊圖像傳輸,以及擁有自己一套指令集(雖然原始)的輔助繪圖處理器。而在先前(和之後一段時間在大多數系統上),一般用途的中央處理器是要處理各個方面的繪圖顯示的。
1990年代
1990年代初期,Microsoft Windows的崛起引發人們對高效能、高清晰度二維點陣圖運算(UNIX工作站和蘋果公司的Macintosh原本是此領域的領導者)的興趣。在個人電腦市場上,Windows的優勢地位意味着桌上電腦圖形廠商可以集中精力發展單一的編程介面,圖形裝置介面。
1991年,S3 Graphics推出第一款單晶片的2D圖像加速器,名為S3 86C911(設計師借保時捷911的名字來命名,以表示它的高效能)。其後,86C911催生大量的仿效者:到1995年,所有主要的PC繪圖晶片製造商都於他們的晶片內增加2D加速的支援。到這個時候,固定功能的Windows加速器的效能已超過昂貴的通用圖形輔助處理器,令這些輔助處理器續漸消失於PC市場。
在整個1990年代,2D圖形繼續加速發展。隨着製造能力的改善,繪圖晶片的整合水準也同樣提高。加上應用程式介面(API)的出現有助執行多樣工作,如供微軟Windows 3.x使用的WinG圖像程式庫,和他們後來的DirectDraw介面,提供Windows 95和更高版本的2D遊戲硬件加速運算。
在1990年代初期和中期,中央處理器輔助的即時三維圖像越來越常見於電腦和電視遊戲上,從而導致大眾對由硬件加速的3D圖像要求增加。早期於大眾市場出現的3D圖像硬件的例子有第五代視像遊戲機,如PlayStation和任天堂64。在電腦範疇,顯著的失敗首先嘗試低成本的3D繪圖晶片為S3 ViRGE、ATI的3D Rage,和Matrox的Mystique。這些晶片主要是在上一代的2D加速器上加入三維功能,有些晶片為了便於製造和花費最低成本,甚至使用與前代相容的針腳。起初,高效能3D圖像只可經設有3D加速功能(和完全缺乏2D GUI加速功能)的獨立繪圖處理卡上運算,如3dfx的Voodoo。然而,由於製造技術再次取得進展,影像、2D GUI加速和3D功能都整合到一塊晶片上。Rendition的Verite是第一個能做到這樣的晶片組。
OpenGL是出現於90年代初的專業圖像API,並成為在個人電腦領域上圖像發展的主導力量,和硬件發展的動力。雖然在OpenGL的影響下,帶起廣泛的硬件支援,但在當時用軟件實現的OpenGL仍然普遍。隨着時間的推移,DirectX在90年代末開始受到Windows遊戲開發商的歡迎。不同於OpenGL,微軟堅持提供嚴格的一對一硬件支援。這種做法使到DirectX身為單一的圖形API方案並不得人心,因為許多的圖形處理器也提供自己獨特的功能,而當時的OpenGL應用程式已經能滿足它們,導致DirectX往往落後於OpenGL一代。
隨着時間的推移,微軟開始與硬件開發商有更緊密的合作,並開始針對DirectX的發佈與圖形硬件的支援。Direct3D 5.0是第一個增長迅速的API版本,而且在遊戲市場中獲得迅速普及,並直接與一些專有圖形庫競爭,而OpenGL仍保持重要的地位。Direct3D 7.0支援硬件加速座標轉換和光源(T&L)。此時,3D加速器由原本只是簡單的柵格器發展到另一個重要的階段,並加入3D彩現管線化。NVIDIA的GeForce 256(也稱為NV10)是第一個在市場上有這種能力的顯示卡。硬件座標轉換和光源(兩者已經是OpenGL擁有的功能)於90年代在硬件出現,為往後更為靈活和可程式化的像素着色引擎和頂點着色引擎設置先例。
2000年到現在
隨着OpenGL API和DirectX類似功能的出現,圖形處理器新增可程式化着色的能力。現在,每個像素可以經由獨立的小程式處理,當中可以包含額外的圖像紋理輸入,而每個幾何頂點同樣可以在投影到螢幕上之前被獨立的小程式處理。NVIDIA是首家能生產支援可程式化着色晶片的公司,即GeForce 3(代號為NV20)。2002年10月,ATI發表了Radeon 9700(代號為R300)。它是世界上首個Direct3D 9.0加速器,而像素和頂點着色引擎可以執行循環和長時間的浮點運算,就如中央處理器般靈活,和達到更快的圖像陣列運算。像素着色通常被用於凸凹紋理對映,使物件透過增加紋理令它們看起來更明亮、陰暗、粗糙、或是偏圓及被擠壓。[4]
隨着繪圖處理器的處理能力增加,所以他們的電力需求也增加。高效能繪圖處理器往往比目前的中央處理器消耗更多的電源。[5]
2017年3月10日後由於適用於個人研究使用的GPU發佈,近年來也逐漸受到許多研究者及公司的關注並廣泛用於深度學習。[6]
繪圖處理器公司
現時有許多公司生產繪圖晶片。以桌上電腦與手提電腦為例Intel、AMD和NVIDIA都是目前市場的領導者,分別擁有54.4%、24.8%和20.%的市場佔有率。手機、平板電腦等流動裝置方面,高通等公司有較高市佔率。另外,矽統科技和Matrox等公司過去也曾生產圖像晶片。[7]
類型
獨立顯示卡
獨立顯示卡(Discrete Graphics Processing Unit,dGPU,簡稱獨顯)透過PCI Express、AGP或PCI等擴展槽介面與主機板連接。
所謂的「獨立(專用)」即是指獨立顯示卡(或稱專用顯示卡)內的RAM只會被該卡專用,而不是指顯示卡是否可從主機板上獨立移除。基於體積和重量的限制,供手提電腦使用的獨立繪圖處理器通常會透過非標準或獨特的介面作連接。然而,由於邏輯介面相同,這些埠仍會被視為PCI Express或AGP,即使它們在物理上是不可與其他顯示卡互換的。
一些特別的技術,如NVIDIA的SLI、NVLink和AMD-ATI的CrossFire允許多個圖形處理器共同處理影像資訊,可令電腦的圖像處理能力增加。
優點
缺點
- 購置電腦需要更多金錢;
- 消耗的功率更多,使電腦功率增加;
- 體積更大;
- 部分低階獨立顯示卡效能可能不如核心顯示卡。
整合繪圖處理器
整合繪圖處理器(Integrated Graphics Processing Unit,iGPU)(或稱內建顯示核心)是整合在主機板或CPU上的繪圖處理器,運作時會借用部分的系統記憶體。2007年裝設整合顯示卡的個人電腦約佔總出貨量的90%[8],相比起使用獨立顯示卡的方案,這種方案可能較為便宜,但效能也相對較低。從前,整合繪圖處理器往往會被認為是不適合於執行3D遊戲或精密的圖形運算。然而,如Intel GMA X3000(Intel G965 晶片組)、AMD的Radeon HD 4290(AMD 890GX 晶片組)和NVIDIA的GeForce 8200(NVIDIA nForce 730a 晶片組)已有能力處理對系統需求不是太高的3D圖像[9]。當時較舊的整合繪圖晶片組缺乏如硬件座標轉換與光源等功能,只有較新型號才會包含。[10]
從2009年開始,整合GPU已經從主機板移至CPU了,如Intel從Westmere微架構開始將Intel HD Graphics GPU整合到CPU至今,Intel將之稱為處理器顯示晶片。Intel Core極致版並沒有整合繪圖晶片。將GPU整合至處理器的好處是可以減低電腦功耗,提升效能。隨着內顯技術的成熟,目前的內顯已經足夠應付基本3D的需求,不過仍然依賴主機板本身的RAM。AMD也推出了整合GPU的AMD APU、AMD Athlon和AMD Ryzen with Radeon Graphics。[來源請求]
用於人工智能學習
人工智能要用GPU的主要原因是因為GPU擁有強大的平行計算能力,適合處理大規模的矩陣運算和向量計算,而這些計算在人工智能演算法中非常常見。
在傳統的中央處理器(CPU)中,每個核心通常只能處理一個任務,因此在處理大量數據時速度會相對較慢。而GPU擁有大量的計算單元(CUDA核心),可以同時執行許多相似的計算任務,因此能夠在短時間內處理大量的數據。這對於機器學習和深度學習等人工智能任務來說非常重要,因為它們通常涉及大量的矩陣運算和向量計算。
另外,人工智能演算法中經常使用到深度神經網絡,這些網絡擁有大量的參數需要進行訓練。傳統的CPU在處理這些大規模神經網絡時效率較低,而GPU能夠通過平行計算加速神經網絡的訓練過程,從而大大縮短了訓練時間。
參考文獻
- ^ Denny Atkin. Computer Shopper: The Right GPU for You. [2007-05-15]. (原始內容存檔於2007-05-06).
- ^ PConline最新CPU/顯示卡天梯圖 (頁面存檔備份,存於互聯網檔案館) - PConline.com.cn
- ^ IT稜鏡:坑爹的入門顯示卡為何還會熱銷? (頁面存檔備份,存於互聯網檔案館) - pconline.com.cn
- ^ Søren Dreijer. Bump Mapping Using CG (3rd Edition). [2007-05-30]. (原始內容存檔於2010-01-20).
- ^ 存档副本. [2012-09-25]. (原始內容存檔於2011-09-04). X-bit labs: Faster, Quieter, Lower: Power Consumption and Noise Level of Contemporary Graphics Cards
- ^ NVIDIA GeForce 10系列. 維基百科,自由的百科全書. 2018-09-14 [2018-09-29]. (原始內容存檔於2022-05-18) (中文).
- ^ http://chinese.engadget.com/2011/05/05/nvidia-losing-ground-to-amd-and-intel-in-gpu-market-share/ (頁面存檔備份,存於互聯網檔案館) NVIDIA正逐漸流失GPU市場的佔有率...
- ^ AnandTech: µATX Part 2: Intel G33 Performance Review. [2008-12-26]. (原始內容存檔於2009-02-03).
- ^ Intel G965 with GMA X3000 Integrated Graphics - Media Encoding and Game Benchmarks - CPUs, Boards & Components by ExtremeTech. [2008-12-26]. (原始內容存檔於2011-06-07).
- ^ Bradley Sanford. Integrated Graphics Solutions for Graphics-Intensive Applications (PDF). [2007-09-02]. (原始內容存檔 (PDF)於2002-11-17).
參見
外部連結