处理器供应商赚钱的关键是销售功能日益增强的处理器的能力。而图形处理器供应商则用升级来保持成功。这些升级将越来越偷偷地依赖于CPU曾经运用过的功能。
要 点
· CPU和GPU(图形处理设备)的发展使两个系统模块进入更加直接的对抗。
· 从AGP(图形加速端口) 的快速单向带宽转向有更快双向传输能力的PCI Express是系统转型的关键。
· 基于Windows的系统现在在硬件协助视频解码与编码能力方面领先于Mac OS系统。
· 静态与动态图像编辑是GPU可以伸出援助之手的另一个领域。而在Mac OS领域则已是事实。
· 在未来,GPU不仅要具备渲染功能,还要能完成基于多边形字符的动画功能。但尚不清楚哪种芯片能处理字符间的物理互动。
在2005年7月中旬 IEEE Hot Chips 会议(www.hotchips.org)上,Nvidia 公司首席科学家 David Kirk 作了一个令公众吃惊的主题演讲,他证实,图形行业的发展已经走上了业界观察家们一直暗示的一条道路。Kirk 陈述说:“由于像素/顶点/三角数量增长的放缓与稳定...”(参考文献 1)。这句话翻译过来就是:日益复杂的 3D 应用 GUI(图形用户界面)的单调工作正在失去动力,不过 Kirk 马上也指出了其他降低性能的图形因素也是增长呆滞的部分原因,如每像素的颜色采样数(抗锯齿)以及每个像素和每个顶点的计算数量。
那么,哪些因素会使图形的复杂性减速?除了 Windows XP 媒体中心编辑系统以及在起居室和书房中限于 HDTV 显示的计算机以外,大多数 Mac 和 PC 均使用 17 英寸和更小对角尺寸的显示器(参考文献 2、3)。也许是因为现在 Windows 操作系统中图标、光标、文字和其它 GDI (图形显示界面)元素都是用光栅实现,所以我们很少遇到分辨率高于 1024×768 像素的情况。(Windows OS 不同于 Max OS X 等更先进的基于矢量的图形显示方案,它无法实现与设备无关的高质量显示定标。)多显示器的 PC配置 还没有广泛应用。并且,虽然提高图像质量要求晶体管运行在更高的频率上,并且其数量会呈指数增长,而驱动这些晶体管的软件的复杂性也会呈指数增长,但这些改进很少为用户所知。这种情况对那些第一人称射击游戏和其它快速运动的游戏尤其如此。

悲观主义者或许会把 Kirk 说的话解释为一种对图形供应商的糟糕命运的预言。但乐观主义者则注意到,在同一个演说中 Kirk 又预言了需求的增长不受通用可编程的每像素 32 b Gflops 的数量约束,并且普遍来说,GPU(图形处理设备)将成为通用的并行处理器。Nvidia 的预言并不仅是一个虚幻的白日梦,近些年的发展史与当前的平台架构趋势都支持这种预测。虽然显示与操作系统的局限性可以作为图形处理降速的部分原因,但更重要的因素是在处理多边形数据和其他与图形有关的信息量时,GPU 的速度要快于 CPU(图 1)。如果未来的 GPU 可以做到更高级的场景抽象,就可以避开 CPU 的瓶颈。微软公司的 Windows 图像与游戏技术软件架构师 David Blythe 强烈地支持这种方案。他在七月的 DirectX Meltdown 2005 大会(www.microsoft.com/directx)上表示,他坚决认为“游戏是受 CPU 限制的”,多内核 CPU“不是万能药”(参考文献 4)。除了使游戏多线程以外,Blythe 向听众建议要“卸载给 GPU”,并举出了这样做的五个理由:
● 渲染模式不断出现;
● 内存数据路径支持反复计算;
● 现在已能实现数据更好地出入 CPU;
● 数据放大支持现有技术,如几何着色;
● 高级渲染语言正发展到能支持新的功能与抽象。
随着 API(应用编程接口)的发展,使操作系统和设备的能力按照确定的进度得以实现,GPU 正在变为更通用的协处理器。当这些转变继续下去时,GPU 将有可能夺取当前 CPU 上软件所实现的其他功能。但是,CPU 供应商正在非常积极努力地保持自己升级工作的平稳运转,不会让 GPU 供应商轻易得逞(见附文“CPU 展望”)。同时,其他专用功能处理器也期望自己成为焦点,而将 CPU 和 GPU 均看作竞争对手。这场拉锯战并不限于 PC 领域,在任何有显示功能的系统中都可能发生。
打开大门迎接变化
历史上看,CPU 与“图形加速器”各有其名,它们是很不相同却共栖共生的器件。CPU 由软件驱动,
因此对执行的各种功能来说极其灵活。按计算机科学教授 Emeritus H Norton Riley 的话说,CPU 是一个“深深植根于冯纽曼(Von Neumann)传统思想的模型 ... (它)把程序看作由程序确定并有序执行的一些指令。程序员定义好运算发生的次序,而程序计数器根据这个次序控制指令的执行”(参考文献 5)。与之相比,图形加速器一直要对多种信息进行同时运算。(正如 Nvidia公司 技术营销副总裁 Tony Tamasi 在最近一次演说中所称:“麻烦的是图形的并行性”。)但是,从历史上看,图形加速器是吸入图像原素而吐出着色后像素的硬连线状态机(参考文献 6)。
CPU 和 GPU 都在近些年得到了发展,并倾向于减小两者之间的差异,重新定义它们的相互关系,使它们朝着冲突的方向前进。随着 SIMD(单指令、多数据)指令集的出现,如 Intel公司 的 MMX(多媒体扩展)及随后迭代的 SSE(流 SIMD 扩展)和 AMD公司 的 3DNow!、PowerPC公司 的 AltiVec,CPU 已经可以用一个普通指令同时处理多个数据(参考文献 7)。接下来出现了超标量 CPU,它可以并行地处理多个独立指令。Intel公司 的超线程(Hyper Threading)特性将并行机制提升到了一个新水平,实现了多个指令线程的有限并行执行,而现在多家供应商新推出的多内核 CPU 则用一种更普遍的形式将此能力进一步外推(图 2)。那么图形加速器在做什么?引用一段 Kirk 为创新的图形参考指南 GPU Gems 所写的介绍:“我们已经进入了可编程 GPU 时代。图形硬件管线过去 20 年没有显著变化,现在它打破了构成的硬连接元素,重新构建出可编程的并行管线处理器。在硬连线管线中,三角形顶角被改变并显示,三角形被光栅化,而像素则用扩散光照、镜面取幂、走光融合和帧缓冲融合进行着色。”
点击看原图

Kirk 继续说:“在可编程管线中,每一个这类操作都抽象为其内存存取和算术运算。程序员仍编写计算与硬连线管线相同结果的程序......但出现的机会却多得多”(参考文献 8)。除了 CPU 和 GPU 的发展以外,平台变换的另一个关键之处是互连它们的总线的改进。以今天的术语,多个竞争性外设要共享 PCI 带宽,它的速度慢得像糖浆流动一样,对于1.05Gbps的单向峰值带宽而言为32b和33MHz。专为图形而定制的 AGP(图形加速端口)总线的最高速度扩展可达 16.8 Gbps 峰值带宽(8 x 型),但这只是单向速度,即从 CPU 至 GPU。经过AGP 总线从 GPU 返回 CPU 的数据流动要慢得多,峰值速度只有 1 x AGP(2.1 Gbps,或 PCI 的两倍),上行的 AGP 信息量也因相干性和所用的 PCI 设备而经受窥探。
在 PCI Express 第 1版 中,每一个四信号的“通路”都支持同步与双向的 2 Gbps 数据传送(原带宽为 2.5 Gbps,去掉 8/10 b 编码开销)。换句话说,它支持总计达 4 Gbps的峰值带宽。今天 PC 中一般的 PCI Express 实现方法是专门将一个 16 路连接到图形子系统,因此在 CPU 和 GPU 之间建立起一个真正令人惊愕的带宽。过去,将信息送给 GPU 作中间处理是没有意义的,因为即使 GPU 能够处理速度快于 CPU的数据,但将结果传回 CPU 会发生不可接受的延迟。向 PCI Express 的转换显然能够缓解 AGP 上行的瓶颈问题。2005年7月下旬 Intel 开发者论坛(www.intel.com/idf)上的演讲为即将到来的 PCI Express 第 2版 规范铺平了道路,它的单路带宽将再次翻倍。
第一次转换
当几年前 DVD-ROM驱动器开始出现在 PC 中时,它主要还是用于播放视频 DVD,那时 GPU 供应商就看到了第一次打破纯图形盒子的绝好机会。这对笔记本电脑尤其具备吸引力,因为它使用的 CPU 功能低于台式系统。而且由于笔记本电脑是电池供电的,因此对功耗的考虑就更多一些。硬连线 MPEG-2 解码的功耗要高于软件为中心的方案。这样,GPU 从开始做最后一步彩色空间变换,后来更扩展到前级的运算,如 iDCT(反向离散余弦变换)和运动补偿,承担了处理 480 线分辨率 DVD 解码的大部分重担。(现在更扩展到包括 720 线和 1080 线分辨率的 HDTV。)台式机与笔记本电脑的差异今天仍然存在。例如,Intel 945G 台式内核逻辑芯片组内的图形内核要完成彩色空间变换、iDCT 和运
动补偿,而移动电脑中使用的 945GM 则要将更多晶体管用于处理变长的无损解码任务。
起初,DVD 播放软件不得不着重于对图形子系统的检查,看用的是哪种 GPU,然后采用众多的 GPU专用例程来反映每种芯片的硬件加速功能。例如,早期 Nvidia 芯片在 MPEG-2 性能方面要低于 ATI 技术公司相对应产品。(但是,这个差距近些年已经减小了。如 Nvidia GeForce 6xxx 和 7xxx 芯片包括分别用于 MPEG-2、运动补偿和视频处理的三个专用的视频引擎。它们还将芯片的着色处理器的优点用于视频功能。)内核逻辑芯片组中集成的图形内核性能也低于独立的 GPU。微软公司在 2000 年底推出 DirectX VA(视频加速)帮助摆脱了这种发展与保持的困境。对视频解码功能的 API 支持是微软操作系统继续领先于苹果 Mac OS X 的领域之一。(鉴于 Mac 在多媒体方面有史以来的优势,这种领先令人惊讶。)唯一一种涉及系统图形芯片视频解码应用程序的是苹果公司自己的 DVD Player 程序。所以,现在要在 Mac 机上实现高分辨率 MPEG-2 和 MPEG-4 的全帧尺寸不丢帧回放,需要一套高档的双 CPU G5 Power Mac Apple 系统。另一方面,今天市售的几乎所有 Windows 系统都可以平滑地播放高分辨率 MPEG-2 视频流。
随着ATI、Nvidia 和其它竞争者最新一代 GPU 的出现,以及他们从硬连线解码管线扩展至更普通的着色处理器的创新,对视频格式的支持已经超出了 MPEG-2 的范围。首先是 WMV9(Windows Media Video 9),或按 SMPTE(运动图像与电视工程师协会)的术语叫 VC-1。最新迭代的 DirectX VA 具有支持的硅片和驱动器,在回放高分辨率 WMV9 剪辑时极大地减少了 CPU 的负担(图 3)。吸引图形供应商注意力的最新格式是 MPEG-4 AVC(先进视频编码,或 MPEG-4 Part 10 和 H.264)。ATI 公司在2005年9月底的 Avivo 上宣布,公司未来的 Radeon X1300、X1600 和 X1800 GPU 将能够以 GPU 加速方法,同时对 MPEG-4(支持到 AVC)、WMV9、 MPEG-2 和 DivX 格式的视频进行解码和编码。视频编码加速采用了 DirectShow API,如 MPEG-2 编码器芯片驱动器所做的一样。Nvidia公司 在2005年6月推出了它的 GeForce 7800 GTX,作为这一发布的一部分,它也公开表示希望能与伙伴公司 CyberLink公司 和 InterVideo公司合作,在2005年底假期购买季时能得到MPEG-4 AVC支持。

在 2004 年春季的 Intel 开发者论坛上,Pinnacle 系统公司(现在是 Avid 的一个分部)做了两次联合演示,一次与 ATI公司,另一次与 ATI公司 和 Intel公司。两次演示均强调了在高分辨率视频编辑应用中 PCI Express 对 AGP 的关键性优势(图 4)。典型的应用情境是在 GPU 上对多源视频流进行编辑与合并。(这些视频流可以是压缩或未压缩的,每个未压缩视频流需要高达 250 M B/s的总线带宽。)视频流置放在系统硬盘、主机内存以及连接的高分辨率视频录像机中。GPU 将完成的最终产品送回 CPU 作归档。在最后这个步骤中,AGP 有限的上行带宽是一个瓶颈,这是 PCI Express 替换的一个问题。这种情况下,经 GPU 加速的视频编码就很有吸引力了。其他有吸引力的应用如 PVR(个人录像机)应用,以及通过局域网(LAN)或广域网(WAN)向一台不支持源视频属性的网络家电作编码转换和流视频。DirectX VA 现在是一种视频解码中心的 API。但据微软的 Blythe 称:“未来肯定会支持API 的视频编码。”

下一个前沿
简单讲,GPU直到被用作 MPEG-2 解码之前一直用于处理图像。DVD 的正确回放要求 GPU 对 480 线的视频(标准或宽频比率)按照输出设备的分辨率与尺寸进行换算。另外,还要求 GPU 对视频作去隔行处理,以匹配显示器的逐行扫描特性。开始时,去隔行处理使用的是相对简单的“bob”和“weave”算法,但随着 C
PU 和 GPU 性能的不断提高,去隔行算法也越来越复杂(参考文献 9)。例如,Nvidia公司 在介绍最新一代 GeForce 7800 GTX GPU 及其着色器的潜在能力时称,它能完成对高分辨率 MPEG-2 视频源的时间——空间去隔行任务,如高清晰视频与 HDTV。ATI公司 和 Nvidia公司 的产品说明中都提到芯片能够完成的其他图像处理功能,如解码后程序分块和其他有损压缩效果的抑制等,这对于某些应用特别有吸引力,如低码率的视频流、去除随机播放噪声,以及色彩增强等。
2003 年 5 月,Creative Labs 推出了一种基于附属 3Dlabs VP500SE GPU 的梦幻图形卡:Graphics Blaster Picture Perfect,该卡通常与梦幻产品一起打包的,但该卡在市场上并未取得特别成功。根据供应商的介绍,该卡带有一套来自 ArcSoft 公司的软件。软件中包括 PhotoImpression,它有许多先进的图像编辑功能和特殊效果滤波器,可以直接运行在 Graphics Blaster Picture Perfect 上。另外,它还含有 Panorama Maker,能将水平、垂直或拼接式的一组图像组合成全景图片。Panorama Maker 采用 Graphics Blaster Picture Perfect 上的 VPU(虚拟处理单元)来提高图片间的粘合速度。最后,该套件中还有 PhotoPrinter,它可以将多个图像打印在一张纸上,以及同时打印多页等(参考文献 10)。
Graphics Blaster Picture Perfect 缺乏先进的图像编辑程序的支持,如 Adobe Photoshop。基本上只有专门的 ArcSoft 程序可以利用 Graphics Blaster 的加速功能。如要被业界更广泛的采纳,就需要 Windows 操作系统中的 API 支持,对此功能,微软还未提供。关于API 支持 GPU 上的静止图像与视频影像编辑加速,Blythe 称:“我们对这些事非常非常感兴趣。它们看来是很自然的事。一旦有了一个可编程的像素处理管线,视频与静止图像就只不过是像素块而已,这不很好吗?我认为它们只是另一个阶段的事,至少是在视频解码道路上。当我制作了这些经过程序分块、缩放、颜色校正等处理过程的图像后,我就能对它们作进一步的处理,它只是一个像素的缓冲,实际上,你可以把它看成是一个 3D 图像的纹理贴图。并且你可以随便对它做任何像素着色处理。”
苹果公司提供核心图像库,但微软则不同,迄今为止还没有提供可以相比的东西。Blythe 说:“我们一直专注于高级编程语言,它能够用可编程着色语言表述这类运算,而不提供任何种类打包的运算套件。但我们当然也在关注这种技术。我们认为,这是将 GPU 扩大用于除视频解码和游戏以外其他应用的一个机会。”正如 Blythe 所指出的,虽然苹果可能缺乏像微软那样的 GPU 上进行视频解码的第三方 API,但苹果公司已经在最新的 OS 10.4 Tiger 操作系统发布时推出了一个图像编辑 API:Core Image,它已于2005年4月底开始交付。根据苹果公司产品系列高级经理 Wiley Hodges 的说法,已经有约 30 个应用支持 Core Image。苹果公司还提供 Core Video API。Hodges 解释说:“在 Tiger 中,Core Video 是用于一组连续画面的基本 Core Image。因此,它们本质上没有什么不同。”
根据苹果公司网站上对 Core Image 部分的说法,Tiger 中捆绑了 100 个 Core Image 单元,另外还捆绑有 Core Image Funhouse,这是一个前端验证程序。硬件加速需要一个基于像素着色的 GPU,但Apple 网站解释说,对于没有可编程 GPU 的计算机,Core Image 也可以对 CPU 作动态优化,自动地调整 Verlocity Engine(速度引擎,即 AlitiVec 支持)以及多处理器(参考文献 11)。Hodges 说:“对开发者来说,Core Image 能够让不太精于图像处理的人在自己的应用中增加这一功能,免得成本过高或难于实用。而对有这方面技术的人来说,这是一种使用效果和滤波器标准组件的好办法。”Hodges 称效果是用高级语言写成的,该高级语言是基于 OpenGL 着色语言的一个子集,而苹果公司将在应用程序执行的目标硬件上提供对效果的即时编译功能。
Hodges 认为:“效果在 CPU 或 GPU 上都可以运行,有意思的是,虽然 GPU 有强大的并行能力,但它们一般不善于做各种效果或转换。这样我们可以看需要什么,并在最合适的地方优化执行这些运算。”在进行 Core Image 编译时,苹果公司是否在 Mac 的 ATI GPU 上考虑了对 24 b 浮点运算的支持?而最近三代的 Nvidia 芯片(5xxx、6xxx 和 7xxx)则具备 32 b 浮点能力。Hodges 说:“是这样,但这对最终结果没有影响。就是说,在相同质量等级下,你也许不会在 ATI 上获得与 Nvidia 相同的性能。现在我们确实看到了复杂的 Core Image 在高端 Nvidia 卡上的效果。”
即使没有 Windows API 的支持,GPU 加速的优点也促使一些视频软件开发商下决心尽早投入,实现某种程度的支持。Adobe 公司高级产品经理 Giles Baker 说:“无论现在与将来,Adobe 图像编辑与视频产品所关注的一个主要领域就是利用 GPU 处理器功能不断增强的优势。”他表示,由于 GPU 功能的增长速度继续保持快于主 CPU,越来越多的 Adobe 用户只通过简单地升级图形卡来提高系统的整体性能。这是迄今保持系统具有更好性价比的一种方法。
Baker 称:“在 Adobe Premiere Pro(以及 Premiere Elements)中,我们都直接用 GPU 提供各种加速效果,只要你的图形卡有此功能就可以实现。”他补充说,今天的大多数图形卡都支持这些效果,因此大多数人都能从该功能中获益。“随着 HD 产品越来越普及,GPU 成为一项关键技术,我们用它来帮助移动建立 HD 分辨率视频节目所需海量数据。随着操作系统的发展,它们能够提供对 GPU 的更底层访问,这样我们可以达到以前只有专用硬件才能实现的性能水平。”至于 Photoshop 中的 GPU 支持,Baker 说现在随 Photoshop 出售的插件都没有 GPU 加速功能。然而他补充说:“我们认为在今后所有的产品中,利用 GPU 加速的优势都是一个现实的机会。”仔细体会一下这里的话外之音吧。
当然,视频编辑并不只涉及视频问题。录像师也会经常把 2D 和 3D 图像场景转换、文本以及“eye candy”在烧录到 DVD 或其他可存档和播放的格式之前添加到剪辑中。由于图像子系统是在计算机显示器上显示图像信息,采用同一个 GPU 来做图像效果的渲染就是顺理成章的事。这些效果与视频内容在系统 RAM 和硬驱上结合,因此它们也能从 PCI Express提供的上行大带宽获得好处。据 Adobe 公司的 Baker 说,Adobe After Effects 6.5 用 OpenGL 加快制作过程中运动图像目标的屏幕回放。他说:“我们将某些处理工作直接卸载给 GPU,从而减少等待,获得更快响应的性能。这样可以鼓励制作者的尝试,做出更富创意的设计结果。”
Baker 继续说:“由于 Adobe 的产品都与创造性的内容制作有关,因此这对我们的用户是一个巨大的优势。OpenGL 是一个发展中的标准,我们计划利用 OpenGL 的新功能作为技术开发项目。” After Effects 的 Mac OS 补足软件,苹果的Motion,也通过 OpenGL 来利用 GPU。按苹果网站的解释,Motion 是第一款带 GPU 加速、32 b 浮点渲染真实影片质量的运动图像软件。其文档还指出,它的 32 b 浮点渲染能产生精细的色彩精确度,消除手工制作赝象,甚至能提高渲染成 8 b 格式时的质量。最后文档声称,你可以得到随新一代 GPU 自动增减的最多细节、最好的质量和色彩范围(参考文献 12)。Hodges 所言以及苹果网站证实,安装最新版的 Motion 2软件需要一个基于着色的 GPU。
超越图形的游戏
除了渲染与图像处理以外,什么将是 GPU 从 CPU 那里夺取控制权的下一个应用前沿?亦或有量身定制功能的新处理器该从何处出现呢?Blythe 的Meltdown揭示出了三个 GPU 开发方向:贴皮(skinning),注意它是简单的 1~4 骨架,基于 GPU 的贴皮已经很普遍;变形(morphing),如用 GPU 计算面部动作;最后是微粒系统与流体的仿真。Blythe 也对 Kirk 在 Hot Chips 上的主题演讲做出自己的反应,他说:“我们的目标还是更靠近游戏这边,我们已经掌握了将像素显示在屏幕上的方法,随着时间的流逝,我们达到了能在屏幕上得到足够像素的地步。于是,我开始希望提高像素的质量。”Blythe 称,微软下一个关注领域是寻找更好的方法为像素着色、更好的照明模型,或者更好的纹理映射运算。现在,该公司还开始努力获得更好的人物几何模型、更好的动画以及更出色的特效,如水、火和树叶。他说:“基本上,我尝试做的事就是让屏幕看起来更加栩栩如生。这就是我们的终极目的,或者是未来要发生的最富性价比的进步。”
微软也正在寻找各种方法以提高人物几何尺寸复杂性的质量,这样,他们就能有更好的轮廓边缘或投射出更好的阴影。Blythe 称,在图像质量提高以后,对最终用户体验贡献最大的下一组因素就是更好的物理仿真,例如建立更逼真的流体,以及能显示物体真实互动的可破坏环境。这些任务需要非传统的图形计算才能完成,如要同时解算普通微分方程和偏微分方程以及线性系统。因此,Blythe 称对微软来说,寻找解决这些问题的最佳方法是很有意义的。“如果我可以将它们表述为数据并行类问题,则 GPU 就可以着手解决。如果它们有更多这类控制级并行机制,则 CPU 可能会是最佳处理地点。然后就会有物理处理器。对此我无法讲得太多,因为就处理的类型来说有一个问题,即更靠近 CPU 还是更靠近 GPU。”
GPU Gems 系列丛书中全是简化渲染、动画以及物体元素互动的思路。这些物体可能包括树木、枝和叶;牧场上被风吹拂的草叶;头发飘逸的头;水和其它流体;火;以及大气效果,如雾和烟。这里的“简化”这个词很重要,例如,即使对今天最先进的 CPU 和 GPU 来说,如果要分别生成烟雾中的每个粒子,并计算它与所有其他微粒的互相作用,代价也会过于高昂。所以,需要一种视觉上可以比较的,但运算更简单的办法。GPU Gems 的第六章就讨论了一个火焰效果,它是 Nvidia 团队为 GeForce FX 5900 Ultra GPU 的发布而制作一个演示,名为 Vulcan(图 5)。该章作者 Hubert Nguyen 说:“当我们着手做演示时,我们首先尝试了两种很有希望的方案:完全程序化的火焰,以及使用屏幕空间、有失真的 2D 火焰。”
Nguyen 称全程序化方案只需耗用很少内存就可以建立一个不错的火焰效果。但是,要生成非常符合规定的火焰,该演示程序就要显示数千个微粒,而处理所有这些顶点与像素会给 CPU 和 GPU 增加沉重的负担。2D 有失真的火焰则采用 GPU 生成的摄动功能,将一个火焰形状作变化,赋予它一种真实的动感。失真包括渲染至纹理的多个过程,以及移动 2D 纹理坐标。虽然它消耗的内存多于微粒系统技术(因为演示过程必须分配多个渲染目标),但该章称建立的烛光火烟效果堪称完美。然而,该效果具有对准屏幕的性质,因此它对运动与相机视角的变化很敏感。(顶视与底视都要限制,而 2D方向 的相机推进和拉开运动有时无法工作。)而且该章称,烟雾整合也是一个挑战。
Nguyen 写道:“程序技术有很大的优点,但它们无法满足我们的目标,即在一个实时、用户可控的环境中创建一个今人信服的、带烟的旺火。”因此,该团队转向视频纹理精灵(video-textured sprite),即基于视频的连续镜头,使火焰更加逼真。“尽管完全程序化以及物理火焰生成显然是未来的趋势,但有些最新电影,如《指环王》等,仍然采用了基于精灵的火烟特效”(参考文献 13)。在 Nguyen 对未来趋势的评论中,CPU 和 GPU 的发展趋势必然是更好地管理充分展开的实时微粒动画所需的复杂处理作业,以及其它计算密集型运算,如基于光线追踪的实时发光。如微软在其 Hot Chips 2005 上演示了对运行在未来 Xbox 360 游戏机控制台上 DirectX 9 变体增加的扩展,它支持在系统的 ATI设计的 GPU 上对微粒物理计算的执行。
但是,一些公司(如 Ageia公司,其即将面世的处理器为 PhysX)的官员则相信,仍然存在着对专用物理处理器的强制性需求。举个例子:一个游戏中不仅需要描绘出人物,而且还有相互间的互动,以及微粒物体的变形,如当人物走过一个烟雾层时的情景。Ageia 公司软件产品营销总监 Suneil Mishra 表示:“双核机器可以展示出单 CPU 系统上做不到的物理效果,PhysX 处理器则能产生出纯软件方法无法实现的真实与效果质量。双核处理器能够处理数百个实时物体的互动,而单核 CPU 则只能实现几十个,Ageia 的 PhysX 处理器能够同时产生数万个流体微粒和刚体物体。这种性能与质量上的飞跃使游戏玩家能够感受到完全不同的真实体验,以及由于效果与游戏而产生的投入感。”
Mishra 指出,GPU 最近一直专注于模仿一些物理效果,如火、水、头发或衣服,以及有限的动态互动或运动的灵巧虚拟影像。他进一步指出,这些案例虽然有说服力,但毕竟有限,其他 GPU 则正蚕食着一小部分物理仿真管线。他声称,Ageia 的物理处理器能够处理一个环境中成千个真实物体的实际互动,使游戏者通过动态的游戏,体验到真正的物理现实。此时,不仅事物的外观真实,而且动作和感觉也很到位。Mishra 说:“我们完全期待 GPU 保持性能的增长,完成更多的基本物理运作的同时,对高级物理效果和互动的支持将继续保持超越 GPU ,这只是由于它们的芯片结构问题。”Ageia 的 PhysX 处理器面向物理仿真算法的加速需求。按照 Mishra 的说法,在数万个实际互动物体的负荷下,对内存和浮点带宽的要求会让大多数可编程 GPU 败下阵来。


参考文献
1. Kirk, David, "Multiple cores, multiple pipes, multiple threads: Do we have more parallelism than we can handle?" IEEE Hot Chips Conference, Aug 16, 2005, www.hotchips.org.
2. Dipert, Brian, "Master of some: direct-view-display technology," EDN, March 3, 2005, pg 38.
3. Quinnell, Richard, "Microdisplay technologies: Projection systems lose contrast," EDN, April 14, 2005, pg 35.
4. Blythe, David, "DirectX Graphics Futures," Microsoft Meltdown Conference, July 2005.
5. Riley, H Norton, "The von Neumann Architecture of Computer Systems," September 1987, www. csupomona.edu/~hnriley/www/VonN.html.
6. Tamasi, Tony, "GeForce 7800-Full Throttle Graphics," Nvidia Editor''s Day, June 9, 2005.
7. Dipert, Brian, "Mac (under) the knife: piecing together the PowerPC puzzle," EDN, Sept 15, 2005, pg 44.
8. Fernando, Randima, Editor, GPU Gems: Programming Techniques, Tips, and Trends for Real-Time Graphics, ISBN 0-321-22832-4, Addison-Wesley, 2004.
9. Dipert, Brian, "Video quality: A hands-on view," EDN, June 7, 2001, pg 83.
10. http://us.creative.com/corporate/pressroom/releases/welcome.asp?pid=6402.
11. www.apple.com/macosx/features/coreimage.
12. www.apple.com/finalcutstudio/motion.
13. Fernando, Randima, Editor GPU Gems: Programming Techniques, Tips, and Trends for Real-Time Graphics, ISBN 0-321-22832-4, Addison-Wesley, 2004.
附文:CPU 展望 当与 PC 微处理器供应商 AMD公司 和 Intel公司 谈论即将来临的 GPU(图形处理设备)竞争威胁时,得到的回答是不相同的。AMD公司 微处理器业务部门负责服务器与工作站业务的产品经理 Steve Demski 在2005年7月初于洛杉矶召开的 Siggraph 研讨会上说:“我在有 TCP/IP 卸载硬件的服务器上看到了同样的事情。我认为这是件好事。只要 GPU 可以做得更好、更快、更便宜,当然是件
好事。这样能够让通用 CPU 腾出手来做更多的其他工作。”
但是,将一些功能从 CPU 转移到 GPU 上是否会对 AMD 未来的 CPU 业务造成负面影响呢?Demski 的回答是:“要看操作系统。现在的操作系统是多线程的。它们在一个双核 CPU 上会运行得更好。”他指出,我们仍然有多个应用:后台任务、弹出窗口阻挡软件、防护病毒感染等等。他补充说:“大量应用都请求 CPU 资源,哪怕是双核 CPU。如果能够将更多图形密集工作卸载给 GPU,整个系统的速度就会加快。”
AMD 公司的公关经理 Scott Carroll 插话说:“我们企业关注的是客户需求以及最终用户的体验,如果它意味要与更好的图形卡以及与图形卡公司打交道,那我们就会去做。”他补充说:“我们不会与那些怪人竞争,我们的竞争对手是 Intel。”Carroll 指出 AMD 会尽可能地消除系统瓶颈,如公司在 Opteron 上采用的直接连接架构。
Intel公司 对 GPU 的角色持何种观点呢?就 Intel 在内核逻辑芯片组中支持 MPEG-2 以外视频格式的问题,公司的图形架构师 Patrick Smith 说:“某种程度上,我们需要实现更多的解码结构,主要是支持新兴的使用模型。”Smith 说的这个“新兴使用模型”是指 VIIV 品牌的数码家庭,它包含一个中心集线器、数字服务器,以及散落在家居各处的相对较“傻瓜”的媒体回放设备。那么 Intel 如何协调好越来越多的专用视频解码电路需求,以及Intel路线图上功能日益强大的 CPU?他说:“光靠 CPU 马力是不够的,不管你投入多少内核来解决问题。”
但 Smith 认为对专用物理处理器的需求不太乐观。他暗示:“今天我们在 CPU方面正进行物理现象的探求,发现 有着充裕的计算能力。我不认为我们需要将任务卸载给其他设备,这样会给系统增加更多成本负担。”他还指出了系统中增加另一个大功率处理器的问题:发热。Smith 认为现在的情况是,主流应用并没有对系统和 CPU 施加很大的压力,使我们足以得出硬件需要更换的判断。他也承认图形芯片公司既是竞争对手也是合作伙伴。例如,作为合作伙伴,他们有助于共同定义 PCI-Express。在比较 AMD 与 Intel 的不同观点时,应记住 Intel 在其某些核心逻辑芯片组方面提供图形内核,而 AMD 在核心逻辑与图形支持方面则依靠半导体伙伴。
尽管未来的 GPU 可能会夺走一些现在由 CPU 完成的功能,但会不会出现相反的情况?CPU 可不可能重新夺回现在由 GPU 处理的任务?让我们从大处着眼,先看一下 AMD公司 和 Intel 公布的十年 CPU 路线图,CPU 的能力将有相当程度的提升。处理器厂商能够投入的营销预算要远远高于 GPU 供应商,足以使客户信服而购买他们的 CPU。
其次,让我们将注意力集中在视频解码上。虽然前几代以 Windows MCE(媒体中心版)为基础的PC 含有强大的 CPU 和 GPU,但它们仍要专用的 MPEG-2解码 芯片来完成 PVR(个人录像机)功能。微软希望今后一定的时间内 MCE 系统无论如何变化,消费者都不会遇到视频帧丢失问题,或者其他录像电视问题。但在2005年8月中旬,CyberLink 公司宣布它用于 Windows XP MCE 2005 的 MPEG-2 软件解码插件获得了微软的认可,并称它在录制具有 MPEG-2 音、视频质量的电视节目时可以避免依赖硬件芯片组,从而可为调谐卡制造商显著降低成本(参考文献 A)。
最后,我们来看看图形卡。回忆一下,在 1996 年 3dfx 公司的 Voodoo 1 芯片和所有重要的 Quake 游戏使用它之前,3D 图形加速仅限于范围很窄的高端工作站上使用,还有像飞行模拟器这类虚拟现实专业应用场合使用。在那时少量的主流 3D 软件中,CPU 上运行的软件要完成图像原素至像素的全部渲染,然后再传递给 2D 图形芯片,或者,如果 CPU 能处理 2D 渲染,则传给 RAMDAC。鉴于 Intel 公司现在的 945G 芯片组中的图形内核是基于着色的,其硬件加速功能只是像素着色运作。(有时候工程师们把这些运作叫做片断着色运作 。)顶点着色代码是在 CPU 上的仿真软件。如果 3D 图形不超出狂热但很小的游戏范围,如果 Kirk 对于游戏界像素、顶点和三角形缓慢增长的预言成真,那么是否会由于严酷的物料清单紧缩压力而将处理负担转回到 CPU 身上?
乍看来这种预测似显古怪。但考虑以下事实,虽然 Nvidia 和 Sony 都对谣言不作评论,但业界消息灵通人士认为Sony后阶段的开发决策是要在 Playstation 3 中使用 Nvidia 的 GPU(很可能是 GeForce 7800 GTX 的一种近亲版)。据业界传闻,在Sony 最初构思 Playstation 3 时,曾准备完全用自己的 Cell 处理器承担图形运作。如果这个故事是真的,那么Sony的工程师是过于乐观了。但是,他们针对图形认真考虑纯 CPU 的事实说明了很多问题,即今后几年 CPU 与 GPU 将如何展开一场激烈的竞争。
参考文献:
www.gocyberlink.com/eng/press_room/view_886.html.