GPU的新角色

趋势观察

编者按:我们知道,3D游戏应用和显示技术的发展是密切相关的,一方面3D游戏对PC硬件提出了更高的要求,另一方面良好的硬件环境又为游戏提供了更广阔的发展空间。不过,随着GPU(Graphic Processing Unit,图形处理单元)计算性能和可编程能力的不断提升,GPU已经不再安于现状,它越来越多地参与到诸如辅助计算、浏览网页、查看图片等日常应用当中。今后,GPU除了完成传统的3D渲染任务外,它将在更多的应用领域大显身手……

41-d1-tu.jpg

一、GPU的诞生和演绎

1999年,NVIDIA发布了GeForce 256,被业界公认为第一代GPU。与过去的显卡相比,GeForce 256第一次实现了3D处理的完全硬件加速。早期的图形加速器仅仅处理纹理、颜色的混合以及深度(Z)数据等,其他的环节包括三角形的生成、几何外形的构建与光源的处理依然需要CPU来完成。

从GeForce 256开始,3D显示计算完全由GPU这个专门的硬件来执行,大大提升了效率,也将CPU从繁重的几何计算中解放出来。CPU可以更多地处理诸如人工智能(AI)、物理等方面的操作,使得更复杂、更逼真的游戏变为可能。GPU的诞生是非常重要的一步,GPU从此成了与CPU并行的一个专门用于处理3D的部件,从而在硬件方面对游戏和3D软件的发展奠定了一个坚实的基础。

GPU诞生后也在不断地向前发展,下一步就是增加GPU的可编程性。虽然第一代GPU也支持很多3D效果,但是这些效果都是硬件产生的,支持的3D效果种类有限。对于开发者和艺术家来说,最好的方法是能够通过编程创造出更多的效果。以GeForce 3为代表的图形芯片就是第一代可编程的GPU,可以通过编程得到各种各样的3D效果。这也是GPU发展史上重要的一步,3D效果从此不再受限于硬件本身。随后推出的显示芯片都是针对可编程3D图形不断加以深化,在可编程性、性能以及更逼真效果(如HDR高动态范围)等方面得到不断改进。

而新一代的DirectX 10 GPU又是一个重要的转折。在此之前,GPU或更早的3D加速器都是采用类似的架构对图形进行处理,这种架构中不同的处理流程(诸如几何、像素/纹理以及像素后处理输出等)分别采用不同的部件进行处理。对于比较简单的游戏或应用程序来说,这种架构的效率还是不错的。但随着3D软件和游戏的越来越复杂,几何和像素的负载变化会非常大,过去的架构效率就会变得很低。

DirectX 10 GPU采用了新的统一Shader架构来解决这个问题。新的架构中,不管是几何还是像素,都采用同一个Shader计算阵列进行处理,不管负载如何变化,效率总是可以达到100%。

新一代GPU的统一Shader架构包含了高达上百个可编程的流处理器,可以为图形处理提供强大的运算能力。同时,随着可编程能力的提升,这些流处理器也容易应用于3D图形处理之外的应用中,如实时物理计算、高级音频处理以及高性能计算等场合,GPU的应用范围因此也扩大到更多的领域。

二、GPU在新时期的作用

在过去,GPU的应用还主要是针对游戏,GPU的发展也是和游戏的发展密不可分的。不过在近几年,3D的应用范围急速扩大,而且GPU的通用化程度也不断提升,GPU的作用在目前的PC中已经不仅仅限于游戏了。新一代的操作系统Windows Vista所采用的Aero界面就是一个全3D的界面,所有的元素(包括窗体)都作为一个3D的实体进行处理,可以实现各种效果诸如半透明、3D窗口以及动画动作;很多应用软件诸如Google Earth、Microsoft Live Earth等软件也是3D的,这些都需要一个强有力的GPU以获得更好的性能和显示效果。

GPU的强大计算能力也为其他一些非3D应用程序带来了好处,诸如最新的Adobe Acrobat 8.0可以借助GPU的计算能力协助求解适量图形的方程式,从而大大加快适量图形的显示速度——和没有GPU的情况相比,在显示一些复杂适量图形(如复杂的城市/测绘地图和建筑结构图)的时候,GPU可以使得现实速度提升上十倍,可以做到流畅地实时缩放和拖动;Google Picasa可以使用GPU加速照片的显示,在对许多照片整理的时候,每张照片都可以做到平滑地缩放和移动,同时保持照片内容的显示;Photoshop一些新的插件可以使用GPU实现大幅面照片的过滤加速,如降噪、锐化和边沿增强等等;还有些新的软件可以使用GPU加速Flash的显示,这样在观看有几十个Flash动画的页面时显示速度也不会降低。

可以说GPU的应用如今已经远远地超出了游戏的范围。对于追求高品质数字生活的用户来说,使用一个高性能的GPU可以使得工作和娱乐变得更加有趣,具备更高的效率。对于所有的PC用户来说,GPU逐渐从一个选项变成了一种必需。

41-e01e02-1.jpg
Windows Vista华丽的3D界面
41-e01e02-2.jpg
Acrobat Reader 8.0操作界面
41-e01e02-3.jpg
Google Picasa可以借助GPU的加速能力来处理图片

三、今后GPU所扮演的角色

今后GPU毫无疑问会继续往两个方面发展,一方面是具备更强大的性能和更高的运算能力;另一方面就是可编程性和通用性更强。不论是游戏视频还是各种应用程序,将会更多地借助到GPU的计算能力。

另外,GPU所具备的超强的计算能力也可以应用到更高端的计算领域里面。目前,GeForce 8800、Radeon HD 2900 XT的浮点计算能力已经分别达到了500Gflops和475Gflops(Gflops代表每秒10亿次浮点运算)的水平,接近几年前顶级的巨型机。GPU几乎不受限制的编程能力也很容易被当作一个高性能计算处理器来使用。

目前,GPU高性能计算的应用处于前期阶段,一些研究单位和大学有了很多的成果。无论在分子动力学、电磁场分析、大规模地质分析、有限元等场合,使用GPU可以获得比当前最快的CPU几十甚至上百倍的性能提升。

另外,使用GPU进行视频编码加速、高级音频处理等应用的研究也已经取得了明显的进展,估计不久以后也会进入实用阶段。我们相信,在未来,GPU作为一个最重要的计算核心之一,将承担比3D加速多得多的任务,其应用范围和重要性将会越来越大。

编辑观点

毫无疑问,GPU是随着3D技术的发展而诞生的,经过这么多年的进化,GPU的应用范围已经远远超过了它诞生时的构想,而这都要归功于GPU的计算性能和可编程能力的不断提高。很多传统上需要CPU处理的操作完全可以交给GPU来完成,比如物理计算、视频编解码等。

从目前的应用情况来看,除游戏外,最需要用到GPU的地方就是高清视频加速领域了。试想一下,当你用一台主流PC观看蓝光DVD或HD-DVD的影片时,如果没有GPU的协助,那将是一件非常痛苦的事情。因为现有主流甚至一些高端的CPU进行复杂的BD/HD-DVD影片的解码工作已经是勉为其难,而对视频进行后期处理(比如反转电视电影、高级滤波、降噪等)更是心有余而力不足。

不过,随着GeForce 8600/8500/8400系列及Radeon HD 2600/2400等新一代GPU的问世,BD/HD-DVD影片的播放工作完全可以交给GPU来完成,并且能获得更好的画质,同时CPU也得到了彻底的解放。

另外,越来越多的应用程序也都逐渐需要GPU的支持,或者说它们可以从一个具有强大运算能力的GPU中获得很大的好处。比如,我们今后用Photoshop处理复杂的光影效果和滤镜时,可以利用GPU加速来实现快速运算和转换。

可以说,GPU在游戏外的应用已经逐步在扩展,今后GPU会在更多的领域(如分子医学、油气勘探和电磁分析等)发挥越来越重要的作用,GPU高性能计算的前景将十分广阔。