前言:当今半导体领域,只有一种芯片能以3倍于摩尔定律的速度发展,只有一种芯片能够在PC领域挑战甚至超越同时期生产的CPU产品,只有一种芯片让图形业界的创作者和无数游戏玩家为之疯狂,这就是GPU(Graphic Processing Unit),中文译名:图形处理器。
NVIDIA公司在1999年发布GeForce 256图形处理芯片时首先提出GPU的概念,随后大量复杂的应用需求促使整个产业蓬勃发展至今。今天笔者将用最精炼的文字,为各位读者讲述这10年的GPU发展的主要路径,读者可以跟随下面的文字将自己置于当时的市场背景下,体会各种经典产品和先进技术带给我们的震撼。
计算机图形学诞生具有重要意义
利用计算机实现图形生成,或者说地通俗一些实现图像的绘制,是科学家们长期的梦想。我们无法追溯最初这个想法的提出者和具体细节,但是我们还是查阅到了一个人和一门学科。这个人是著名科学家——伊凡•苏泽兰先生,这门学科则是当今计算机领域最热门的专业——计算机图形学(Computer Graphics,简称CG)。
图注:Ivan Sutherland博士1962年在演示中最初的“画板”程序。
1962年,麻省理工学院的一位青年博士研究生提交了论文并发言,他就是伊凡•苏泽兰(Ivan Sutherland)。苏泽兰用幻灯向与会者展示了画板程序,苏泽兰和他所展示的程序最终成为计算机图形学的奠基。而今他已72岁高龄,仍然奋斗在图形业界最前沿,现为Sun公司研究员和副总裁。
计算机图形学,是一种使用数学算法将二维或三维图形转化为计算机显示器的栅格形式的科学。简单地说,计算机图形学的主要研究内容就是研究如何在计算机中表示图形、以及利用计算机进行图形的计算、处理和显示的相关原理与算法。图形学处理需要计算机天然具备大量并行运算能力,并且对精度和运算强度有很高要求,但是这给当时的计算机提出了巨大的难题,由于硬件发展的严重滞后,计算机图形学在提出后的20年内一直艰难前行。
图注:最初的pong街机,将电子娱乐从概念推向实际
在1972年,计算机图形学的发展直接促成了一个让普通用户感兴趣的游戏产品——Pong街机,这是第一款家庭电视游戏产品,也是首款真正取得成功并影响深远的视频游戏,实际上这就是一个简单的乒乓撞球游戏,但它几乎成为电子娱乐领域的始祖。当Pong成为遍布街头巷尾的街机时,越来越多的厂商也开始关注并设计自己的电子娱乐产品。
同样对计算机图形学提出需求的,还有一些工业设计领域,如计算机辅助设计(Computer Aided Design),通称CAD。CAD的出现使情况发生根本性的改变,1974年美国波音飞机制造公司第一架音747客机试飞成功,这架客机的设计图纸全部重量竟有几十吨重,如果没有CAD设计技术,这么浩大的制图工程量,用人工来做是无法想象的。
在20世纪80年代,逐渐出现了专门进行图形计算的硬件,它们是GPU的前生,这极大的加速了计算机图形学的发展进程。八十年代以前主要在军事领域研究发展,其应用目标是各类军用运输工具仿真模拟器的视景生成系统。八十年代早期,斯坦福大学教授Jim Clark产生了用专用集成电路技术实现3D图形绘制处理器的设想,然后与其学生创立了SGI公司,并于1984年开发出了世界上第一个通用图形工作站IRIS 1400。
图注:SGI公司,是技术计算和可视化计算无可争议的领军者
第二代高端通用图形工作站的功能特征包括三角形的Gouraud明暗处理、Phong光照模型和硬件Z-Buffer算法。图象的真实感显著改善,几何变换及扫描转换性能大幅提高。第三代出现于1992年下半年,代表产品是SGI的Reality Engine。它增加了纹理映射及全屏幕反走样,为通用图形工作站用于户外视景模拟打开了大门。
简单来说最初的硬件支持的3D图形绘制可以划分成几何处理和光栅化处理两个阶段。几何处理阶段包括了坐标变换、裁剪、光照计算等,光栅化处理则包含了扫描转换、采用Z-Buffer算法的隐藏面移去、纹理映射等。显然,要使系统的性能最佳就必须使这两个处理阶段具有相匹配的处理能力。3D图形生成的计算量非常巨大,即使最快的通用CPU也难以胜任。