01图形处理器简史

图形处理器发展

图形处理器(Graphic Processing Unit,GPU)在现代计算机系统中的作用变得越来越重要。

20世纪六、七十年代,受硬件条件的限制,图形显示器只是计算机输出的一种工具。限于硬件发展水平,人们只是纯粹从软件实现的角度来考虑图形用户界面的规范问题。此时还没有GPU的概念。

GPU概念在20世纪70年代末和80年代初被提出,使用单片集成电路(Monolithic)作为图形芯片,此时的GPU被用于视频游戏和动画方面,它能够很快地进行几张图片的合成(仅限于此)。在20世纪80年代末到90年代初这段时间内,基于数字信号处理芯片(Digital Signal Processor Chip)的GPU被研发出来,与前代相比速度更快、功能更强,当然价格是非常的昂贵。在1991年,S3 Graphics公司研制出第一个单芯片2D加速器。到了1995年,主流的PC图形芯片厂商都在自己的芯片上增加了对2D加速器的支持。

1998年NVIDIA公司宣布Modern GPU的研发成功,标志着GPU研发的历史性突破成为现实。通常将20世纪70年代末到1998年的这一段时间称之为pre-GPU时期,而自1998年往后的GPU称之为Modern GPU。

在pre-GPU时期,一些图形厂商,如SGl、Evans&Sutherland都研发了各自的GPU,这些GPU在现在并没有被淘汰,依然在持续改进和被广泛的使用,当然价格也是非常的高昂。

Modern GPU使用晶体管(Transistor)进行计算。在微芯片(Microchip)中,GPU所使用的晶体管已经远远超过CPU。

回顾GPU的发展历史,自1998年后可以分为4个阶段。

  • NVIDIA于1998年宣布Modern GPU研发成功,这标志着第一代Modern GPU的诞生,第一代GPU包括NVIDIA TNT2、ATI的Rage和3Dfx的Voodoo。这些GPU可以独立于CPU进行像素缓存区的更新,并可以光栅化三角面片以及进行纹理操作,但缺乏三维顶点的空间坐标转换能力,这意味着“必须依赖于CPU执行顶点坐标变换的计算”。这一时期的GPU功能非常有限,只能用于纹理组合的数学计算或者像素颜色值的计算。
  • 1999年,NVIDIA推出了一款可以用“惊变”来形容的显示核心代号NV10的Geforce 256。NVIDIA率先将T&L(Transform&Lighting,坐标变换和光照)整合到GPU中。T&L原先由CPU负责,或者由另一个独立处理机处理。GPU从CPU接管了大量工作,使得3D模型可以用更多的多边形来描绘,从而拥有了更加细腻的效果。而对于Lighting来说,CPU不必再计算大量的光照数据,直接通过显卡就能获得更好的效能。同时,这一阶段的GPU对于纹理的操作也扩展到了立方体纹理(Cube Map)。NVIDIA的GeForce MAX、ATI的Radeon 7500等都是在这一阶段研发的。
  • 2001年是第三代Modern GPU的发展时期,这一时期研发的GPU提供了顶点可编程能力(Vertex Programmability),即允许应用程序指定一个序列的指令进行顶点操作控制(GPU编程的本质! ),如GeForce 3、GeForce 4Ti、ATI的8500等。这同样是一个具有开创意义的时期,这一时期确立的GPU编程思想一直延续到今天,不但深入到工程领域帮助改善人类日常生活(医疗、地质勘探、游戏、电影等),而且开创或延伸了计算机科学的诸多研究领域(人体绘制、光照模拟、人群动画、通用计算等)。同时,DirectX和OpenGL都本着与时俱进的精神,提供了支持顶点可编程能力的扩展。不过,这一时期的GPU还不支持像素级的编程能力,即片元可编程能力(Fragment Programmability)。
  • 第四代GPU的发展时期从2002年末到2003年。NVIDIA的GeForceFX和ATl Radeon 9700同时在市场的舞台上闪亮登场,这两种GPU都支持顶点可编程能力和片元可编程能力。同时DirectX和OpenGL也扩展了自身的API,用以支持顶点可编程能力和片元可编程能力。自2003年起,可编程图形处理器正式诞生,并且由于DirectX和OpenGL锲而不舍的追赶潮流,导致基于图形硬件的编程技术,简称GPU编程,也宣告诞生。

图形处理器的优越性

由于GPU具有高并行结构,所以GPU在处理图形数据和复杂算法方面拥有比CPU更高的效率。CPU大部分面积为控制器和寄存器,与之相比,GPU拥有更多的ALU(Arithmetic Logic Unit,逻辑运算单元)用于数据处理,这样的结构适合对密集型数据进行并行处理

GPU采用流式并行计算模式,可对每个数据进行独立的并行计算。 所谓“对数据进行独立计算”,即,流内任意元素的计算不依赖于其它同类型数据,例如,计算一个顶点的世界位置坐标,不依赖于其他顶点的位置,所谓“并行计算”是指“多个数据可以同时被使用,多个数据并行运算的时间和1个数据单独执行的时间是一样的”。所以,在顶点处理程序中,可以同时处理N个顶点数据。

GPU可以应用在科学可视化计算如人体绘图、地质勘探、气象数据、流体力学等领域,以基于GPU的通用计算(General-Purpose Computing on Graphics Processing Units,简称GPGP或GP2)如线性代数、物理仿真、光线追踪等。

图形处理器的缺陷

由于“任意一个元素的计算不依赖于其它同类型数据”,导致“需要知道数据之间相关性的”算法,在GPU上难以得到实现,一个典型的例子是射线与物体的求交运算。GPU中的控制器少于CPU,致使控制能力有限。另外,进行GPU编程必须掌握计算机图形学相关知识,以及图形处理API,入门门槛较高,学习周期较长。

参考

  • 蛮牛教育
  • 21
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
嵌入式系统工程师认证复习资料 什么是linux? Linux是运行于多种平台(PC、工作站等)之上、源代码公开、免费、遵循 GPL精神、遵守POSIX标准的、与UNIX兼容的操作系统。Linux是微机版的UNIX。 具有现代操作系统的所有特征: l 真正的抢先式多任务处理,支持多用户 l 虚拟内存 l 支持对称多处理机 l 网络功能 l 图形用户界面和桌面环境 l 速度和稳定性 Linux的发展简史 Linux操作系统诞生于1991年的10月5日(第一次正式向外公布的时间)。以后借助于Internet网络,经过全世界各地计算机爱好者的共同努力下,才成为今天世界上使用最多的一种UNIX类操作系统,并且使用人数还在迅猛增长。 Linux的发展简史 UNIX操作系统 UNIX是一个强大的多用户、多任务操作系统,支持多种处理器架构。经过长期的发展和完善,目前已成长为一种主流的操作系统技术和基于这种技术的产品大家族。Linux就是UNIX的一种克隆系统。 GNU计划(项目) 开发Linux操作系统,以及Linux上所用大多数软件基本上都出自GNU计划。Linux只是操作系统的一个内核,没有GNU软件环境(比如说bash shell),则Linux将寸步难行。 Linux的发展简史 MINIX操作系统 Minix操作系统是一个迷你版本的类Unix操作系统。Linux刚开始就是参照Minix系统于1991年才开始开发。 POSIX标准 该标准在推动Linux操作系统以后朝着正规路上发展,起着重要的作用,是Linux前进的灯塔。 INTERNET 如果没有Intenet网,没有遍布全世界的无数计算机骇客的无私奉献,那么Linux最多只能发展到0.13(0.95)版的水平。 ............................... .......................... .................... .............. man命令 格式:man <命令名> 功能:获取命令名指定的命令的帮助信息,即命令的格式和使用细节。 Linux提供了联机帮助手册(man),手册中有大量的可用信息,分成若干节,下表给出了每节的主要用途说明。 全书共222页,系统的阐述嵌入式的基本概念和方向,是入门学习的好资料

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值