图形处理器

图形处理器（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能够通过并行计算加速神经网络的训练过程，从而大大缩短了训练时间。