GPU的发展史,GPU与CPU的关系是什么?为何现在GPU越来越重要?

  • 导读
  • 01 图形处理器
  • 02 图形处理器的构成
  • 03 计算机图形的生成原理
  • 04 显卡的诞生
  • 05 前GPU时代
  • 06 多媒体时代的显卡

来源:《芯片改变世界》

导读

2016年,发生了一件震动IT界的大事。谷歌的人工智能软件阿尔法狗(AlphaGo)击败了韩国的世界围棋冠军九段选手李世石。2017年,阿尔法狗又击败了当年世界围棋排名第一的中国围棋九段选手柯洁。至此,人类在所有的棋类比赛中全部输给了计算机。

阿尔法狗是一个中央处理器(Central Process Unit,CPU)和图形处理器(Graphic Process Unit,GPU)一起工作的围棋智能机器人。阿尔法狗以神经网络、深度学习、蒙特卡洛树搜索法为核心算法。其系统由四部分组成:

  1. 策略网络(Policy Network),以当前局面为输入,预测下一步的走法;

  2. 快速走子(Fast Rollout),目标和策略网络相似,在适当牺牲质量的条件下的加速走法;

  3. 价值网络(Value Network),以当前局面为输入,估算胜率;

  4. 蒙特卡洛树搜索(Monte Carlo Tree Search),把上述三个部分整合起来,形成完整的系统。

最初的阿尔法狗有176个GPU1202个CPU。GPU能够通过内部极多进程的并行运算,取得比CPU高一个数量级的运算速度。但是GPU为了管理多进程,它需要在微架构上进行精心设计以满足深度学习计算对于带宽和缓存的需求。那么GPU和CPU有什么不同呢?

01 图形处理器

CPU由运算器(ALU)控制器(CU)两大部件组成。此外,还有若干个寄存器和高速缓冲存储器及实现它们之间联系的数据、控制及状态总线。ALU用来执行算术运算、移位操作、地址运算和转换;寄存器件用于保存中间数据以及指令;CU负责对指令译码,并发出为完成每条指令所要执行的各个操作的控制信号。

CPU的运行遵循冯·诺依曼构架:存储程序顺序执行。程序执行过程如下:

CPU根据程序计数器(Program Counter,PC)从内存中得到指令,然后通过指令总线将指令送至译码器,将转译后的指令交给时序发生器与操作控制器,再从内存中取得数据并由运算器对数据进行处理,最后通过数据总线将数据存至数据缓存寄存器以及内存中。

CPU是一步步来处理数据的。在处理大规模与高速数据时,CPU很难满足需要。

当芯片的集成度增加后,漏电流也随之增大,但时钟频率的提高有限,而且晶体管的线宽很快就会到达物理极限,因此芯片的性能很难靠减小晶体管线宽来提高。于是,人们开始在设计上做文章,首先想到的是让多个处理器并行工作,这样效率自然提高了很多,于是多核CPU和GPU由此诞生。

另一个想法是芯片不变,而在应用系统上加人工智能,以此取得计算上的收益。随着大数据时代的到来,以人工智能为导向的应用系统也越来越多了。

在现代的计算机中,图形处理越来越重要,于是一个专门处理图形的核心处理器GPU应运而生。对于处理图形数据来说,图形上的每个像素都要被处理,这就是一个大数据,因此对运算速度的要求很高。但GPU所需的功能比较单一,于是就诞生了基于优化图形处理的GPU构架。

CPU的功能模块多,适合复杂的运算环境,大部分晶体管用在控制电路和Cache上,少部分晶体管用来完成运算工作。GPU的控制相对简单,且不需要很大的Cache,大部分晶体管可被用于各类专用电路和流水线,GPU的计算速度因此大增,拥有强大的浮点运算能力。

当前的多核CPU一般由4或6个核组成,以此模拟出8个或12个处理进程来运算。但普通的GPU就包含了几百个核,高端的有上万个核,这对于多媒体处理中大量的重复处理过程有着天生的优势,同时更重要的是,它可以用来做大规模并行数据处理。

尽管,GPU是为了图像处理设计的,但它的构架并没有专门的图像处理算法,仅仅是对CPU的构架进行了优化,因此GPU不仅在图像处理中应用广泛,还在科学计算、密码破解、数值分析、大数据处理、金融分析等需要并行运算的领域中广为应用。GPU是一种较为通用的专业芯片。

02 图形处理器的构成

GPU的线路板一般是6层或4层PCB线路板。GPU的所有元器件都集成在它的线路板上,线路板影响着GPU的质量。

GPU线路板上最大的芯片就是GPU,它上面有散热片和风扇。作为处理数据的核心,GPU大多采用单芯片设计,而专业的GPU也有采用多个GPU芯片的。

GPU线路板上的另一个重要芯片是数/模转换器(RAMDAC)。它的作用是将显存中的数字信号转换成显示器能够识别的模拟信号,速度以MHz为单位,速度越快,图像越稳定,它决定了GPU能支持的最高刷新频率。为了降低成本,多数厂商都将数/模转换器整合到了GPU芯片中,但仍有一些高档GPU采用独立的数/模转换器芯片。

GPU的数据是存放在显存内的,显存是用来存储等待处理的图形数据信息的。显存容量决定了GPU支持的分辨率、色深。分辨率越高,显示的像素点越多,所需显存容量越大。对目前的三维GPU来说,需要很大的显存来存储Z-Buffer数据或材质数据。

显存有两大类:单端双端显存。前者从GPU中读取数据并向数/模转换器传输数据且经过同一端口,数据的读写和传输无法同时进行;后者则可以同时进行数据的读写与传输。目前流行的显存有SDRAM、SGRAM、DDR RAM、VRAM、WRAM等。

GPU线路板上采用的常见电容类型有电解电容、钽电容等,前者发热量较大,许多名牌GPU采用钽电容来获得性能上的提升。电阻也是如此,常见的金属膜电阻、碳膜电阻越来越多地让位于贴片电阻。

GPU线路板上有对GPU进行供电的供电电路。它的作用是调整来自主板的电流以供GPU稳定地工作。由于GPU越来越精密,因此对GPU供电电路的要求也越来越高。

GPU线路板上还有一款用于VGA BIOS的闪存。它包含了GPU和驱动程序的控制程序、产品标识等信息。该闪存可以通过专用程序进行升级,改善GPU性能,有时能给GPU带来改头换面的效果。

GPU线路板上有向GPU内部提供数/模转换时钟频率的晶体振荡器等元器件。此外,由于GPU的频率越来越高,工作时热量很大,GPU线路板上还会有一个散热风扇。

03 计算机图形的生成原理

计算机的输出图像是模拟信号,而计算机处理的是二进制数字信号。数据离开CPU后,经过以下四个步骤,才到达显示屏成为图像。

  • 经总线进入GPU,将CPU送来的数据送到GPU里进行处理。(数字信号)

  • 从GPU进入显存,将GPU处理完的资料送到显存。(数字信号)

  • 从显存进入数/模转换器,从显存读取出数据然后送到数/模转换器进行数据转换。

  • 从数/模转换器进入显示器,将转换完的模拟信号送到显示屏(模拟信号)

显示屏上显示的是最后处理的结果,显示效能的高低由以上四个步骤共同决定,它与GPU的效能不同,GPU的效能决定了中间两步。第一步是由CPU进入到GPU,最后一步是由GPU将资料送到显示屏上。

近几年,人工智能中的深度学习算法大热,让GPU制造商大火。其实,深度学习的理论早在20世纪七八十年代就有了,但它的崛起主要是因为GPU的出现。英伟达公司的联合创始人与CEO黄仁勋说:“因为人工智能世界的大爆炸发生了,人工智能计算机科学家们找到了新算法,让我们能利用深度学习的技术,取得无人敢想的成果。”

04 显卡的诞生

提到显卡和GPU,人们会想到游戏和电影中精美的三维图形。其实,早期显卡不但不能处理三维图形,甚至连二维图形都无法处理,它仅具备显示能力。现在,GPU不但能够处理复杂的三维图形,还能作为协处理器,在通用计算中使用。

电脑图形处理器的发展是从图形显示适配器开始的,到图形加速器,再到图形处理器即GPU,其功能在不断增强。

从显示适配器到图形加速卡的转变是显卡历史上的重要转折点。从此,显卡开始承担计算机中的部分计算任务,这奠定了其日后与CPU分庭抗礼的基础。

在显卡出现之前,电脑中通常的图形输出工作由CPU承担。显卡的出现不是为了加速电脑的图形输出,最初的显卡是为了让游戏机上的二维图形显示加速。这款游戏是雅达利公司于1977年推出的雅达利2600。同期流行的电脑是苹果-II,而苹果-II的图形输出由CPU承担。

进行图形处理时需要电脑具备较强的并行计算能力,对精度和运算强度的要求也很高,对早期的电脑来说,这很难。当时的显卡仅仅是将CPU计算生成的图形翻译成显示设备能识别的信号来进行显示,不具备计算能力,被称作图形适配器(VGA Card)

1981年,IBM推出了最早的装在5150个人电脑上的MDA(Monochrome Display Adapter)CGA(Color Graghic Adapter)两款二维加速卡。

MDA仅支持黑色和绿色的文字,图形内存为4KB,无法产生图形。CGA是IBM个人电脑中最早的彩色显卡,640×200的分辨率,4种颜色。由于CGA的分辨率太低,因此有了EGA增强图形适配器(Enhanced Graphics Adapter)。

MDA、CGA、EGA三种标准都是以TTL数字信号输出的。IBM很快研发出了基于ISA(Industry Standard Architechture)的显卡,是最古老也是最普遍使用的VGA显卡。

直到VGA标准出现,显卡才和主板分开,VGA(Video Graphic Array)即显示绘图阵列,它的数字模式可以达到720×400种颜色,绘图模式可达640×480×16种颜色,以及320×200×256种颜色。直到此时,显卡才能同时显示256种色彩。

VGA标准采用了模拟信号输出,其彩色显示能力大大加强,原则上能显示无穷多种颜色,因此VGA迅速成为显示设备的标准。

这个时代,出现了第一款真正的显卡——Trident 8900/9000显卡,它是ISA/16色显卡的代名词,也是三维显卡的真正鼻祖,它第一次使显卡独立于电脑,显卡从此不再是集成的一块芯片,这为以后独立显卡的发展提供了可能性。

VGA之后又出现了SVGA标准。它是VGA标准的衍生产物,改良过的SVGA图形适配器已经能够支持16比特的彩色了。

真正将SVGA发扬光大的是S3735(Tr64V)以及Trident 9680,它们能够达到1024×768的分辨率,并且在低分辨率的情况下支持32比特真彩色。

1984年,硅图公司(Silicon Graghics Inc.,SGI)推出了专业的高端图形工作站,并配置了专门的图形硬件,称为图形加速器。它引入了许多经典概念,如顶点变换和纹理映射。在随后的10多年里,硅图公司又研发了很多面向专业领域的图形工作站,但它们的价格昂贵,无法进入个人电脑市场。

1984年,IBM又推出了两款显卡,它们是PGC(Professional Graghics Controller)和EGA。这两款显卡能够支持二维和三维的图形加速,并被用于计算机辅助设计。

1986年,德州仪器推出了第一款具有在芯片上进行图形处理功能的微处理器TMS34010。这款处理器需使用特殊的图形编程语言。1990~1992年,它是视窗加速卡中,德州仪器图形框架(Texas Instruments Graghics Architecture,TIGA)的基础。

1987年,康莫多国际(Commodore International)公司推出了阿米加500电脑。该电脑拥有功能强大的图像处理专用芯片。这款芯片也是在杰伊·迈纳的倡导下加上的,这款显卡给阿米加500带来了704×576像素的图形显示功能。

除了显卡外,阿米加500的音频输出性能也极好。虽然阿米加500的显卡不是第一块应用在电脑上的显卡,但该显卡是第一款真正意义上的二维加速卡。阿米加500电脑的诞生让人们意识到图形加速卡对于电脑的意义。

1988年,支持256种颜色显示的第一代显卡问世。它是ATI公司生产的ATI VGA Wonder显卡。这是一款真正意义上的第一代显卡,时至今日VGA一词还是显卡的代名词。

05 前GPU时代

1989年,多家芯片制造商联合创立了影像电子工程标准协会(Video Electronic Standards Association,VESA)。1994年年底,VESA发表了64位架构的VESA Local Bus标准,80486及以后的个人电脑大多采用该标准的显卡。

1991年,英特尔推出了一种局部总线PCI(Peripheral Component Interconnect)。在结构上,PCI是在CPU和原来的系统总线之间插入的一级总线,由一个桥接电路对该层进行管理,并实现接口间的协调数据传送。管理器提供信号缓冲,使其支持10种外接设备,同时在高时钟频率下保持高性能。PCI为显卡、声卡、网卡等设备提供了接口。

显卡接口制约着显卡技术的发展。为了加快显卡与总线间的传输速度,使用高带宽的接口总线势在必行。在民用市场,显卡接口的起点是最普通的ISA接口,ISA接口包含ISA总线、EISA总线和VESA总线,ISA接口是一种统称。

当VGA标准流行之后,ISA接口就显得力不从心了,由PCI取而代之,但PCI接口并未持续多久就被更为先进的AGP(Accelerated Graphics Port)所淘汰。与PCI相比,AGP在带宽上有了突飞猛进的发展,还能有效利用系统内存。

1991年,支持微软视窗操作系统图形加速的第二代显卡(Graphics Card)问世。

VGA的唯一功能就是输出图像,图形运算全靠CPU,当微软的视窗操作系统出现后,PC不堪重负。1991年5月,ATI发布Mach8,这是ATI第一款优化微软视窗操作系统图形界面的显卡。ATI用专用芯片进行图形运算处理,将CPU解放了出来,且让视窗操作系统的界面运行起来非常流畅,图形化操作系统的资源消耗大降、实用性大增。

1991年6月,S3公司推出了一款二维图形加速卡S3 86C911。它是最早的视窗加速卡之一,支持16位256种颜色。此后,二维显卡进入了群雄争霸时代。当时,Trident、S3、Matrox三大厂商占据主导地位。

06 多媒体时代的显卡

1994年,支持视频加速的第三代显卡出现了。

这时的PC已经进入了多媒体时代,二维图形处理在第二代显卡面前已不是问题了,但越来越多的视频图形解码让CPU不堪重负,因此集成了简单的视频解码器的第三代显卡出现了。

ATI在1994年推出的Mach64是第一款广为人知的多媒体显卡,它的硬件支持YUVtoRGB颜色转换和硬件缩放。有了它的PC能应付基本的AVI和MPEG-1播放,而不需要昂贵的专用硬件解码器,使得多媒体PC的成本大幅下降。

1994年,第四代显卡,三维加速显卡出现了。

20世纪末,3Dfx的崛起宣布了三维显卡进入了白热化竞争时代。S3、Matrox、3Dlabs等厂商都加入了竞争,但它们均不敌voodoo。除voodoo以外的三维显卡的代表作是ATI的3DRage II+DVD。

这一款1996年秋天发布的显卡,其二维引擎来自Mach64。它具有MPEG-2硬件动态补偿功能,能在播放DVD时起到辅助作用,这是非常先进的。加上ImpacTV芯片,它还可以播放电视节目。3DRage II的驱动支持也非常好,无论是游戏用户还是专业用户都可以得到对应的驱动程序。只是ATI当时专注于OEM市场,而非零售。

ATI在被AMD收购之前一直是计算机图形领域的领头羊之一。

1998年,3Dfx推出了voodoo2。voodoo2的性能比voodoo提高了2~3倍,它还增加了大量新的画质提升技术。voodoo2降低了对CPU的依赖,很多低端的CPU也可以流畅运行大型三维游戏。

1998年,3Dfx犯了两个致命的错误:一是收购了一家名为STB的公司,自行生产GPU,舍弃了第三方合作伙伴;二是对Glide API的封锁,导致游戏厂商开始对其敬而远之,表面上看3Dfx因voodoo2风光无限,但这也是其衰落的开始。

到了1999年情况就不同了,几件事让3Dfx面临灭顶之灾。先是DX7带来了硬件T&L,硬件T&L的出现彻底解放了CPU,即便是低端CPU,搭配了支持硬件T&L的显卡也可以流畅地玩游戏。大量视觉技术的添加使得Glide的优势丧失殆尽。

3Dfx于1999年发布的voodoo3不支持新出现的AGP4x,仅支持2x,但只支持接口,不支持AGP的特性。voodoo3的16比特渲染在大势所趋的32比特潮流面前毫无竞争力。

同时,来自英伟达的TNT2以其强大的性能干脆利落地将voodoo3打败了。与同年发布的Gefroce 256相比,它只是一款TNT的改进产品,但这未能阻碍TNT2成为一代经典。

自此,英伟达显卡占领了绝大部分市场,几乎成了垄断。

GPU的发展史,GPU与CPU的关系是什么?为何现在GPU越来越重要?相关推荐

  1. GPU和CPU是什么?GPU和CPU什么关系?GPU会取代CPU吗?

    GPU和CPU是什么?GPU和CPU什么关系?GPU会取代CPU吗? GPU是什么?与显卡是什么关系?安装在什么地方?有单独的GPU板卡吗? CPU和GPU区别是什么?GPU会取代CPU吗? GPU能 ...

  2. (转)从CPU架构和技术的演变看GPU未来发展

    泡泡网显卡频道5月28日 自从AMD提出Fusion(融聚)的概念.NVIDIA加大力度推广GPU通用计算.Intel率先将CPU和GPU整合在一起之后,大家就会发现CPU和GPU从没如此亲密无间过, ...

  3. 光影之路 GPU架构发展史(4/4)

    统一渲染架构与通用计算的降临 当微软DirectX 10发布之后,GPU迎来了史上第一次重大变革,而这次变革的推动者不再是NVIDIA或ATI,而是微软公司. 微软公司认为,传统的分离设计过于僵化,无 ...

  4. 光影之路 GPU架构发展史(3/4)

    5.2003年:Radeon 9800击败GeForce FX 5800 2002年11月,NVIDIA发布代号为NV30的GeForce FX 5800 Ultra,这款产品被NVIDIA视作夺回市 ...

  5. 光影之路 GPU架构发展史(1/4)

    在PC时代初始,还没有GPU这一说法,它的前身便是所谓的"显示芯片",但当3D游戏出现在PC平台时,这一名称变为"图形芯片",后来NVIDIA制造出功能更强的& ...

  6. gpu浮点计算能力floaps_关于CPU的浮点运算能力计算

    学了IT那么久,只知道CPU主频不断的提升,核数也越来越多,但是如何理论上计算出不同代CPU性能的提升,还真没有认真思考过,我估计大多数人也不会关注,这次由于要进行高性能集群项目遇到,刚好认真的研究了 ...

  7. 强化学习技巧四:模型训练速度过慢、GPU利用率较低,CPU利用率很低问题总结与分析。

    1.PyTorchGPU利用率较低问题原因: 在服务器端或者本地pc端, 输入nvidia-smi 来观察显卡的GPU内存占用率(Memory-Usage),显卡的GPU利用率(GPU-util),然 ...

  8. 第一章  GPU虚拟化发展史

    第一章  GPU虚拟化发展史 GPU的虚拟化发展历程事实上与公有云市场和云计算应用场景的普及息息相关.如果在10年前谈起云计算,大部分人的反应是"不知所云".但是随着云计算场景的普 ...

  9. 深度学习PyTorch,TensorFlow中GPU利用率较低,CPU利用率很低,且模型训练速度很慢的问题总结与分析

    在深度学习模型训练过程中,在服务器端或者本地pc端,输入nvidia-smi来观察显卡的GPU内存占用率(Memory-Usage),显卡的GPU利用率(GPU-util),然后采用top来查看CPU ...

最新文章

  1. OpenGL绘制复杂图形
  2. Docker 容器技术 — Image
  3. python vs java 搞笑视频_Python VS Java,谁能笑到最后?
  4. 应用id_科普贴:什么是OpenID、AppID 、用户ID等各种ID?
  5. 机器学习之SVM多分类
  6. Soul 网关源码阅读(四)Dubbo请求概览
  7. android: listview与sqlite数据操作实例
  8. 移动开发框架,第【三】弹:Zepto.js
  9. 和我一起学《HTTP权威指南》——Web服务器
  10. 心电自动分析技术综述-Phililps DXL / GE Marquette / Glasgow / HES Hannover / Mortara
  11. SCOR模型(转载)
  12. python 获得时间戳_Python 获取时间戳
  13. 两种IP冲突检测方法
  14. SmartUpload出现的问题
  15. CF595B Pasha and Phone
  16. idea双击打不开的解决方案
  17. 中国工具类App折戟海外,为什么只有猎豹移动杀出血路?
  18. Flutter 扩展NestedScrollView (一)Pinned头引起的bug解决
  19. 第三方开发者服务平台汇总
  20. nginx http强制跳转https 配置相关信息

热门文章

  1. 文件目录自动生成工具--Dir Tree Noter
  2. IMXRT 的Boot模式
  3. java基于微信小程序的校园二手闲置商品交易平台 uinapp 计算机毕业设计
  4. 用C语言编程写高考祝福,2020高考祝福自己的句子_高考给自己加油打气的话精选100句...
  5. 利用Excel制作问卷的饼状图
  6. 长平之战后的秦赵又一次决战——邯郸保卫战
  7. 坚果云 linux程序名称,备份Linux系统数据到坚果云
  8. (附源码)springboot 新闻管理系统 毕业设计 211113
  9. Java代码审计手册(1)
  10. 程序员从复杂代码中找BUG的5种方法,你用过几个?