圖形處理器

圖形處理器（Graphics Processing Unit，縮寫：GPU），又稱顯示核心（display core）、視覺處理器（video processor）、顯示晶片（display chip）或圖形晶片（graphics chip），是一種專門在個人電腦、工作站、遊戲機和一些行動裝置（如平板電腦、智慧型手機等）上執行繪圖運算工作的微處理器。以圖形處理器為核心的主板擴展卡也稱顯示卡，或簡稱顯卡。

圖形處理器是輝達在1999年8月發表GeForce 256繪圖處理晶片時首先提出的概念，在此之前，電腦中處理影像輸出的顯示晶片，通常很少被視為是一個獨立的運算單元。而對手冶天科技（ATi）亦提出視覺處理器（Visual Processing Unit）概念。圖形處理器使顯示卡減少對中央處理器（CPU）的依賴，並分擔部分原本是由中央處理器所擔當的工作，尤其是在進行三維繪圖運算時，功效更加明顯。圖形處理器所採用的核心技術有硬體座標轉換與光源、立體環境材質貼圖和頂點混合、紋理壓縮和凹凸映射貼圖、雙重紋理四像素256位渲染引擎等。

圖形處理器可單獨與專用電路板以及附屬組件組成顯示卡，或單獨一片晶片直接內嵌入到主機板上，或者內建於主機板的北橋晶片中，現在也有內建於CPU上組成SoC的。個人電腦領域中，在2007年，90%以上的新型桌上型電腦和筆記型電腦擁有嵌入式繪圖晶片，但是在效能上往往低於不少獨立顯示卡。但2009年以後，AMD和英特爾都各自大力發展內建於中央處理器內的高效能整合式圖形處理核心，它們的效能在2012年時已經勝於那些低階獨立顯示卡，這使得不少低階的獨立顯示卡逐漸失去市場需求，兩大個人電腦圖形處理器研發巨頭中，AMD以APU產品線取代旗下大部分的低階獨立顯示核心產品線。而在手持裝置領域上，隨著一些如平板電腦等裝置對圖形處理能力的需求越來越高，不少廠商像是高通（Qualcomm）、PowerVR、ARM、NVIDIA等，也在這個領域「大顯身手」。

傳統的CPU，如Intel Core 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年代

<image>

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類似功能的出現，圖形處理器新增可編程著色的能力。現在，每個像素可以經由獨立的小程序處理，當中可以包含額外的圖像紋理輸入，而每個幾何頂點同樣可以在投影到螢幕上之前被獨立的小程序處理。輝達是首家能生產支援可編程著色晶片的公司，即GeForce 3（代號為NV20）。2002年10月，ATI發表了Radeon 9700（代號為R300）。它是世界上首個Direct3D 9.0加速器，而像素和頂點著色引擎可以執行循環和長時間的浮點運算，就如中央處理器般靈活，和達到更快的圖像陣列運算。像素著色通常被用於凸凹紋理映射，使物件透過增加紋理令它們看起來更明亮、陰暗、粗糙、或是偏圓及被擠壓。

隨著繪圖處理器的處理能力增加，所以他們的電力需求也增加。高性能繪圖處理器往往比目前的中央處理器消耗更多的電源。

2017年3月10日後由於適用於個人研究使用的GPU發布，近年來也逐漸受到許多研究者及公司的關注並廣泛用於深度學習。

## 繪圖處理器公司

現時有許多公司生產繪圖晶片。以桌上型電腦與筆記型電腦為例，輝達和超微都是目前市場的領導者，分別擁有94%和6%的市場佔有率。手機、平板電腦等行動裝置方面，高通等公司有較高市佔率。另外，矽統科技和Matrox等公司過去也曾生產圖像晶片。

## 類型

### 獨立顯示卡

<image>

獨立顯示卡（Discrete Graphics Processing Unit，dGPU，簡稱獨顯）透過PCI Express、AGP或PCI等擴展槽界面與主機板連接。

所謂的「獨立(專用)」即是指獨立顯示卡（或稱專用顯示卡）內的RAM只會被該卡專用，而不是指顯示卡是否可從主機板上獨立移除。基於體積和重量的限制，供筆記型電腦使用的獨立繪圖處理器通常會透過非標準或獨特的介面作連接。然而，由於邏輯介面相同，這些埠仍會被視為PCI Express或AGP，即使它們在物理上是不可與其他顯示卡互換的。

一些特別的技術，如輝達的SLI、NVLink和AMD-ATI的CrossFire允許多個圖形處理器共同處理影像資訊，可令電腦的圖像處理能力增加。

#### 優點

- 相對集成顯卡，獨立顯卡一般擁有更強勁的性能。
- 消耗的系統資源更少（目前的獨立顯卡都有獨立的顯示記憶體）。
- 擁有例如CUDA一類的在部分領域(例如影視後期等)可以起到輔助工作作用的處理單元。

#### 缺點

- 購置電腦需要更多金錢。
- 消耗的功率更多，使電腦功率增加。
- 體積更大。
- 部分低端獨立顯卡性能可能不如核芯顯卡。

### 整合式圖形處理器

<image>

整合式圖形處理器（Integrated Graphics Processing Unit，縮寫：iGPU），（或稱內顯）是整合在主機板或CPU上的圖形處理器，運作時會借用部分的系統記憶體。2007年裝設集成顯示卡的個人電腦約佔總出貨量的90%，相比起使用獨立顯示卡的方案，這種方案可能較為便宜，但效能也相對較低。從前，集成圖形處理器往往會被認為是不適合於執行3D遊戲或精密的圖形運算。然而，如Intel GMA X3000（Intel G965 晶片組）、AMD的Radeon HD 4290（AMD 890GX 晶片組）和NVIDIA的GeForce 8200（NVIDIA nForce 730a 晶片組）已有能力處理對系統需求不是太高的3D圖像。當時較舊的集成繪圖晶片組缺乏如硬體座標轉換與光源等功能，只有較新型號才會包含。

從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能夠通過並行計算加速神經網路的訓練過程，從而大大縮短了訓練時間。