显卡告别3D游戏迈向通用计算时代
![]() |
极富弹性的架构以及卓越的浮点性能赋予GPU越来越多的潜力,现在,GPU除了可以在3D游戏中大展身手以外,还进入到一个崭新的广阔空间,无论是高性能计算还是日常办公应用,GPU都扮演不可或缺的角色。
3D游戏一直是用户升级显卡的动力,游戏开发商总是不知疲倦地推出画面更真实的3D大作,并以耗费GPU资源为荣(如果新一代3D游戏对GPU要求低反而被认为是一件可耻的事情)。而nVIDIA与ATI则在市场竞争的驱使下进行一场GPU开发的竞赛,往往是新品还没有来得及捂热,“革命性”的下一代架构又开始登台亮相,游戏玩家们又得掂量再一次的升级。但显卡的意义似乎仅限于此,如果你对3D游戏毫无兴趣,只是玩一些纸牌、连连看、泡泡堂之类的益智小游戏,日常以办公和上网浏览为主,那么使用高端显卡便是莫大的浪费。计算工业在过去同样为此感到困惑,它们认为现有计算系统的晶体管资源利用率过低,在一套标准PC平台中,GPU所占用的晶体管数量往往比高端双核处理器还要多得多,但在很多时候,显卡都处于闲置状态,GPU所集成数量巨大的晶体管只在那边空耗能源,而CPU往往是疲于奔命—这就好比是一个部门的两个职员,一个老是忙得团团转,另一个通常都在那边闲呆。显然,将任务均分是个比较合理的解决方案,即让GPU能够与CPU一道来处理通用任务,但这对于过去的图形工业来说却是巨大的挑战。
GPU难以分担CPU任务的障碍在于架构限制。众所周知,GPU唯一的使命就是3D渲染,它的核心逻辑包含顶点渲染单元和像素渲染单元,两者最初都只能执行固定的图形指令。如果你将别的指令强加给GPU,GPU根本就无法识别,在这个时代,GPU难以走出3D图形体系。为了让程序员拥有更多的灵活性,GPU后来实现了可编程功能,允许程序员采用更加灵活的程序指令。随着图形API的不断升级,GPU的可编程能力也变得越来越强大。在DirectX 9.0C时代,顶点渲染指令和像素渲染指令的长度都达到512条,如果通过某种指令转换机制,将通用计算指令转为GPU可执行的指令格式,那么就可以让GPU完成3D图形之外的通用计算。而在最新的DirectX 10体系中,GPU的通用性获得进一步的释放:通用的渲染单元具有更强的可编程支持,GPU所配备的指令解码器能够将顶点/像素指令转换为可直接被通用渲染单元执行的微指令,这就赋予统一渲染单元更强大的能力。理论上说,只要有相应的API支持,基于统一渲染架构的新一代图形产品就能够完成许多3D图形之外的繁重任务,充分发挥出GPU在浮点性能方面的巨大优势。
计算机科学家与图形工业共同携手将GPU推向更广阔的市场,未来GPU将可作为超级计算机的浮点协处理器使用,也可以用于流处理的加速。而对于PC用户,GPU将在操作系统GUI界面渲染、网页内容渲染、PDF文件/图像文件处理中发挥巨大的价值。
GPU渲染操作系统GUI界面
在微软的Vista操作系统中,我们看到了Aero Glass视觉模式带来的卓越效果。标题栏和窗口边框都拥有半透明磨砂玻璃质感,窗口的放大、缩小动作流畅而富有动感,窗口可以三维的样式排列方便于定位……而要实现这样的GUI效果,光有性能强劲的处理器根本不够,因为处理器并不擅长于图形渲染相关的操作,由GPU完成GUI渲染便是唯一可行,也是最理想的方案。
![]() |
微软Vista系统的Aero视觉模式支持3D窗口和半透明特效,这一切均借助GPU的力量实现。
微软在Vista系统中成功地做到这一点,它的技术奥秘就在于将操作系统与图形API紧密地结合在一起,加强系统对GPU的控制能力。我们知道,在2D GUI界面的OS中,专门负责3D渲染的图形API是个可有可无的角色,因为GUI界面的绘制是由处理器来完成的,只是将最终结果交给显卡,由显卡的2D功能将其输出到屏幕上显示,这样操作系统运行对显卡就没有任何要求,对显存的要求也仅限于能够存放24/32bit精度的色彩。但在Vista的Aero视觉模式中,GUI界面的渲染任务是由显卡来负责—微软公司通过图形API的深度整合成功地创建了这一模式:当Aero模式启用时,CPU不再直接负责GUI界面的渲染,而是将诸如动态缩放、半透明效果、玻璃效果相对应的渲染指令转交给GPU,GPU接到指令后完成相应的工作,并将结果输出到屏幕上。由于Vista Aero视觉模式的渲染任务都比较简单,对GPU的运算性能要求不高,因此从理论上说,集成图形都能够很好地满足Aero界面渲染的要求。问题在于微软将GUI渲染指令定格在DirectX 9.0标准,这就导致所有无法支持DirectX 9规格的显卡和集成图形产品出局。
比Vista领先半年时间,Linux环境也实现了由GPU来渲染GUI和桌面,而且Linux业界提出了XGL和AIGLX两套方案。XGL由Novell公司发起并完成,它是一套全新的X Server软件。在Linux/UNIX系统中,X Server负责整个图形环境的构建,过去它并没有丝毫掌控GPU资源的权力。而Novell的XGL与传统的X Server完全不同,它直接与OpenGL API紧密耦合,通过OpenGL图形指令来生成GUI界面,这种模式赋予操作系统GUI界面前所未有的想象力。借助GPU的力量,XGL除了可支持类似Vista Aero的动态窗口缩放、半透明标题栏之外,还可支持窗口半透明、更富动态感的淡入淡出以及窗口移动时宛若弹性布条般的视觉效果。由于XGL对OpenGL版本要求不高,GeForce 4 MX级别的显卡都能够轻松胜任,前提条件是显卡能够被驱动程序正确驱动。AIGLX则是RedHat发展的技术方案,它同样是一套与OpenGL结合的X Server系统,但与XGL从零开始编写不同的是,AIGLX是基于现有X Server系统上的改良,但它同样能够完成相同的任务,即由GPU来渲染Linux的图形操作环境。
Vista与Linux XGL/AIGLX技术的出现,意味着GPU首度在3D游戏之外找到了新工作,现在,显卡可以用来渲染操作系统的图形界面,而在显卡的帮助下,操作系统在视觉方面获得质的改善。GUI不再是冷冰冰、机械呆板的丑陋样式,而变得漂亮而富有动感,这不仅能令用户使用过程中感到赏心悦目,同时也将起到降低操作疲劳和提升生产效率的效果。也许你从来没对操控复杂的3D游戏动过任何念头,但现在也应该考虑为自己的PC配一块符合Vista或者Linux XGL/AIGLX要求的显卡:DirectX 9甚至DirectX 10支持、拥有256MB显存、能够很容易地在Linux系统中安装驱动程序……当然新一代集成图形芯片组也能够满足基本的要求,但它们显然难以应对未来操作系统的升级。而如果你使用的是Linux系统,便会发现在启用XGL/AIGLX模式时,系统的操控性能有非常显著的提升,原因就在于GPU承担了GUI渲染相关的任务,CPU因此获得解放,能够将更多资源投放到任务的执行进程中。
相关文章
- 更新时间:08/24/2007AMD掀起3D世界Radeon反击风暴





重点专题