圖形處理器

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

圖形處理器是 NVIDIA 在 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 倍。

歷史

1.1 1970 年代

ANTIC 和 CTIA 晶片為 Atari-8 位元電腦提供硬體控制的圖形和文字混合模式，以及其他視訊效果的支援。ANTIC 晶片是一個特殊用途的處理器，用於對映文字和圖形資料到視訊輸出。ANTIC 晶片的設計師，Jay Miner 隨後為 Amiga 設計繪圖晶片。

1.2 1980 年代

Commodore Amiga 是第一個於市場上包含映像顯示功能在其視訊硬體上的電腦，而 IBM 8514 圖形系統是第一個植入 2D 顯示功能的 PC 顯示卡。

Amiga 是獨一無二的，因為它是一個完整的圖形加速器，擁有幾乎所有的影像產生功能，包括線段繪畫，區域填充，塊影像傳輸，以及擁有自己一套指令集（雖然原始）的輔助繪圖處理器。而在先前（和之後一段時間在大多數系統上），一般用途的中央處理器是要處理各個方面的繪圖顯示的。

1.3 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 年代在硬體出現，為往後更為靈活和可程式設計的畫素著色引擎和頂點著色引擎設定先例。

1.4 2000 年到現在

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

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

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

繪圖處理器公司

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

型別

3.1 獨立顯示卡

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

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

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

3.1.1 優點

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

3.1.2 缺點

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

3.2 整合式圖形處理器

整合式圖形處理器 (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 能夠透過平行計算加速神經網路的訓練過程，從而大大縮短了訓練時間。