GPU的前世今生

Posted by cuihongpeng on June 12, 2017

GPU现在是很火的一个名词,一直涉猎都不多,刚好最近用到了,也总听兴军提起,就看了看,没有太多深入的东西。

佳哥说过,游戏和爱情动作电影是推动科技进步的一大助力,对此,我深表赞同(市场决定投入)。

GPU就是很典型的例子。

GPU是什么意思?

GPU:Graphic Processing Unit(图形处理器),又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上处理图像运算工作的微处理器。

通俗一点说,GPU就是用来处理图形计算的处理器,是显卡的核心部件。

GPU能做什么?

带来最极致的图形处理能力和并行计算能力。

GPU并不是一出生就叫GPU的,其概念最早由NVIDIA在1999年发布GeForce 256图形处理芯片时首先提出。

GPU的前世

1. 显示适配器

仅能用于简单的文字和图形输出。

1970年代 ANTIC(英文意为傻里傻气的,小丑)和CTIA芯片为Atari-8位电脑提供硬件控制的图形和文字混合模式,以及其他视频效果的支持。ANTIC芯片是一个特殊用途的处理器,用于映射文字和图形数据到视频输出。

1980年代 Amiga是第一代具有真彩显示的计算机之一,而IBM 8514图形系统是第一个植入2D显示功能的PC显卡。 Amiga是独一无二的,因为它拥有一个完整的图形适配器,拥有几乎所有的图像产生功能,包括线段绘画,区域填充,块图像传输,以及拥有自己一套指令集(虽然原始)的辅助绘图处理器。

这个时代,图形处理的工作基本完全依赖CPU。

2.图形加速器

可以称得上是GPU的前身,使用图形加速器不仅能加快图形视频显示的速度,而且使CPU能分出更多的时间去执行其他任务。

1990年代

这个时代的大事件

1990年代初期,微软的windows系统开始崛起,并呈现出一统江湖的趋势,这让PC图形厂商集中精力发展单一的编程接口,即图形设备接口(GDI)变得可能。

1991年,3DFX推出了第一款单芯片的2D图像加速器,名为S3 。

1995年,所有主要的PC图形处理器制造商都于他们的芯片内增加2D加速的支持。

而这个时候,固定功能的Windows 加速器的性能已超过昂贵的通用图形辅助处理器,令这些辅助处理器续渐消失于PC市场。

1990年代是2D图形加速器的时代。

3. GPU的机遇

3.1 从1990年代开始,CPU辅助的即时三维图像越来越常见于电脑和电视游戏上,而且这种三维效果受到追捧,需求决定了市场。

越来越多的厂商开始推出支持3D图像的产品,早期于大众市场出现的3D图像硬件的例子有第五代视频游戏机,如PlayStation和任天堂64。

变革中总是会出现伟大的公司。

3Dfx推出的Voodoo是这个时代的里程碑,Voodoo是一款3D显示加速器。

在Voodoo推出之前,3D游戏的渲染完全由CPU来完成,而游戏渲染的实质就是大量的、可同时进行的浮点计算。

由于当时的CPU都是单线程,只能一步一步地依次进行各个计算操作,而完成所有这些计算工作就需要比较长的时间。 满足3D渲染流畅度的标准要求是30fps,也就是一秒钟生成并显示出30个3D画面,即便是面对当时非常“简陋”的3D游戏,这个任务所需的浮点计算量也是CPU所无法承受的。

Voodoo加速芯片的工作原理很简单,就是将原本由CPU处理的3D渲染任务接管过来,其实只是将计算多边形和像素填充工作接管过来,而这两方面的性能在后来也成为衡量图形芯片强弱的两个主要指标。

3.2 可编程图形接口

OpenGL是出现于90年代初的专业图像API,并成为了在个人电脑领域上图像发展的主导力量和硬件发展的动力。 虽然在OpenGL的影响下,带起了广泛的硬件支持,但在当时用软件实现的OpenGL仍然普遍。

随着时间的推移,DirectX在90年代末开始受到Windows游戏开发商的欢迎。

4 关于OpenGL,和Direct的恩怨情仇。

OpenGl是一个与硬件无关,跨平台的API。

不同于OpenGL,微软坚持提供严格的一对一硬件支持。

这种做法使到DirectX身为单一的图形API方案并不得人心,因为许多的GPU厂商也提供自己独特的功能,而当时的OpenGL应用程序已经能满足它们,导致DirectX往往落后于OpenGL一代,微软开始寻求合作。

不过慢慢的,然后DirectX凭借windows的崛起处于霸主地位,微软果断抛弃了OpenGL。

然后Apple开始支持OpenGL,Windows势弱,移动设备增长迅速,OpenGL重新开始获取市场份额.

目前windows系列和xbox支持DirectX。 其他系统支持OpenGL.

GPU登上舞台

5. 2000年到现在

标志性的事件,NVIDIA在1999年发布GeForce 256图形处理芯片

5.1 图形处理时代

1. T&L解放了CPU

T&L(几何与光照转换引擎),进一步解放了CPU。

硬件T&L引擎带来的效果是,3D模型可以用更多的多边形来描绘,这样就拥有了更加细腻的效果。而对于Lighting来说,CPU不必再计算大量的光照数据,直接通过显卡就能获得更好的效能。

2.可编程Shader技术,OpenGL和DirectX。

Shader的特色是基于可编程模式设计,将原有的固定渲染管线分离出可编程的部分来给编程者更多的设计空间,做出更漂亮的特效。

3. CineFX技术

Cinefx是一个跨平台、开放源码的影像编辑软件,用来提升Shader,简单点说就是对性能进行了优化,提升了渲染效率。

5.2 并行计算

5.2.1 在介绍GPU的计算能力之前,我们先简单看一下CPU和GPU的区别和工作特点

mach-0.jpg

mach-1.png

  1. GPU相比CPU拥有更多的处理单元,GPU的处理核心SP基于传统的处理器核心设计,能够进行整数,浮点计算,逻辑运算等操作,GPU的浮点运算能力可以达到CPU的数十倍,上百倍。

  2. 为了充分发挥GPU强大的计算功能,人们2002年就开始研究如何能够利用GPU完成通常意义上的数据运算,这被称之为GPGPU(基于GPU的通用计算)。

通用计算包括物理加速、人工智能和光线跟踪。利用显示内核作相关计算,效能比单纯用CPU更好。

近年,两大显示内核制造者-AMD和NVIDIA都大力推动通用计算。

现时已有三种相关的开发接口的,分别是CUDA、FireStream和OpenCL。 CUDA是NVIDIA的专属接口,非NVIDIA显示内核不能支持。 FireStream是ATI所开发,而OpenCL则是有多厂商加入,开源的项目。

5.5.2 主要的GPU厂商

  • INTEL,集成显卡的老大,GPU不行
  • NVIDIA,独立显卡两强之一
  • AMD收购了ATI,独立显卡两强之一

5.5.3 厂商间羁绊

  • 显卡老大,NVIDIA和ATI,ATI处于弱势
  • CPU老大,Intel和AMD,AMD处于弱势
  • 所以双A合并,AMD2006年收购ATI

5.5.4 未来趋势

  • 更高更强的GPU
  • 融合,AMD退出fusion的概念,APU,将CPU和GPU集成在一起

代表了两种设计思路,会在各自擅长的领域处于领导地位

http://v.youku.com/v_show/id_XNjY3MTY4NjAw.html