图形处理器
图形处理器(英语: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).
参见
外部链接