三国之争谁主沉浮:谈GPU物理加速之路
[泡泡网显卡频道 2009年3月26日]说起“物理加速”这个词汇,相信各位并不会感到陌生。而在五年前,提起这个词汇的却并不多,也就是说物理加速仅仅是在近几年的时间才开始流行起来的。特别是GPU巨头NVIDIA,从去年年初NVIDIA收购Ageia之后,就开始将PhysX物理加速作为重点宣传对象。而AMD也一直在努力酝酿着自己的GPU物理加速技术,据悉AMD很有可能在GDC2009上展示其基于GPU的物理加速技术。看来,物理加速已经成为了GPU厂商的必争之地。
实际上,物理加速早在多年以前就已经正式进入应用阶段了,大家可以查一查著名的物理引擎提供商Havok公司的历史,该公司1998年就已经成立,与业内多家游戏厂商都有合作,其技术被广泛用于PS2、PS3、PSP、Xbox、Xbox 360、Wii、GC、PC等各种平台,《魔兽世界》《光环3》、《枪神》、《摩托风暴》、《镇压》、《帝国时代3》、《汽车总动员》等游戏都采用Havok引擎。但是,一直以来,游戏中的物理效果都需要CPU来生成和渲染。
这一切似乎都非常平静的度过了7年时间,玩家们在感受众多FPS带来无限快乐的同时,也很少有人去关注游戏中的物理加速技术,Havok公司的业务虽然已经扩展到全球,但是并不为外界所知。但是,这一切的宁静都在2005年被打破,物理加速的未来也就在这时候发生了转折。
2005年3月9日,Ageia公司(2002年成立,专注于硬件物理加速技术)经过近三年的努力后,终于在游戏开发者论坛发布了世界上首颗采用硬件加速的物理处理器(Physics Processing Unit,PPU),令这间寂寂无名的公司一夜成名。从此,物理加速技术被推上了风口浪尖!
Ageia推出的物理处理器采用NovodeX为中间件用于游戏开发,物理处理器专门用于物理运算,物理运算,速度比传统处理器快很多倍。在当时Ageia发布的演示Demo中,流畅逼真的物理特效震撼了全球,最重要的是你不需要为此购买一颗非常昂贵的CPU,之需要购买一款Ageia inside的物理加速卡即可。当然,这一次也惊动了一直默默无闻的Havok。
前面我们说到,Havok之前一直是利用CPU进行物理计算的,Havok本身的工作主要是提供物理计算的引擎和技术。但物理处理器的横空出世让Havok不得不改变策略,为了公司的未来,Havok正式开始开发基于GPU的物理加速技术——Havok FX!
这里可能一部分朋友会问到,Havok为什么一定要选择开发基于GPU的物理加速技术,而不是想Ageia一样,研发一颗物理处理器呢?又或者说,为什么不在CPU上对自己的物理引擎投入更多的研发力度呢?在此,笔者来简单的回答一下这个答案,当然这个答案是没有参照依据的,纯粹是以笔者的经验分析。
首先,大家试想Havok之前在CPU物理加速领域已经颇有成就,绝大部分的游戏厂商都与Havok有合作关系,如果在这时候推出物理处理器,人力与财力的成本就不说了,关键是与游戏厂商的合作还能不能长久,有多少游戏厂商愿意采用你的引擎,还得强制用户花数百甚至上千美刀购买一块物理加速卡呢?这是其一;其二,相对于GPU来说,CPU的计算能力显然无法满足超大型数据的计算,而X86处理器的架构本来就不适合超大型数据的运算,想要很好的体现出物理引擎带来的视觉冲击,CPU的运算量显然是不足的。所以,Havok瞄准了GPU,基于GPU的物理引擎不仅仅不会影响之前的合作伙伴(物理卡可以不买,显卡总不能不买吧!),而且可以充分的利用GPU的潜能。记得笔者曾经看过一个报道,Havok公司的人向业界表示,物理处理器只能用于物理加速,而GPU除了物理加速之外,还可以做3D渲染。如果按照这样的理解的话,相信大家就会明白Havok为什么会转向GPU平台了。
Havok的努力终于在2006年见到了成效,2006年Havok发布了基于GPU平台的物理加速引擎Havok FX,紧接着与同年7月份又发布了Havok 4.0 SDK开发套件,加入了新的Havok Behavior和Havok FX组件。Havok Behavior能为游戏加入基于物理特性的互动角色行为以增加游戏真实性。Havok FX则可利用ATI和NVIDIA GPU强大的图形处理能力,用于物理计算并获得更真实的游戏体验。并且直接支持索尼PS3以及微软操作系统。
Havok 4.0开发套件的发布正好符合NVIDIA与ATI的胃口,于是NVIDIA与ATI纷纷与Havok建立了合作伙伴的关系,可以说Havok 4.0开发套件的发布不仅仅让Havok公司进入了一个崭新的时代,也让NVIDIA和ATI兴奋不已。从此,GPU物理加速时代到来,我们姑且称这次的GPU物理加速为1.0时代。
但是,由于当时显卡的运算能力还不是特别强大,再加上引擎和显卡架构的原因,想要在GPU上实现Havok物理加速,必须要单独使用一块显卡来专门处理物理运算。当时,正是Geforce 7与X1000系列显卡流行的年代,NVIDIA和ATI也纷纷利用了这种方式在GPU上实现了物理加速技术。
虽然同样采用了Havok FX引擎,并且都是双卡互联形式实现,但是两家的解决方案却大相径庭:NVIDIA是通过DirectX API来实现物理加速,而AMD-ATI则是通过数据并行计算架构提取(Data Parallel Processing Architecture Abstraction )直接与Havok FX引擎交换数据,让Havok FX引擎直接与GPU沟通,而不需要通过Direct3D和OpenGL API,AMD-ATI著名的Close To Metal(CTM)接口就是在这个时期提出的。简单的理解就是,AMD-ATI的实现方式是“GPGPU”通用计算的形式来做物理运算,而NVIDIA是让显卡通过DirectX以“GPU”的工作方式在做物理加速(其实也是GPGPU应用范畴)。
看到这里相信大家已经明白了,在当时物理加速已经出现了三足鼎立的情况。第一是CPU来实现软件物理加速;第二种是利用专用的GPU来实现硬件物理加速,第三种是利用专门的物理加速卡PPU来实现硬件物理加速。
但是,CPU软件物理加速的瓶颈很明显,虽然引擎很棒,但是由于CPU的计算性能不好,所以即使游戏中采用了Havok的物理引擎,也不敢大规模的使用,当时Crysis就采用了Havok的技术,但是效果很不好。除了优异的4核心能够流畅运行之外,双核处理器等都只能看幻灯片。
我们再来说PPU物理加速,相对于CPU物理加速来说,单独专门用于物理加速的物理加速卡(PPU)在性能方面当然是毋庸置疑的,但是用户需要专门为此花上千元购买一块物理加速卡,又有多少用户愿意接受呢?从当时的统计来看,很少有人为此买单。
很显然,GPU平台物理加速引擎是最具性价比的,用户虽然需要为此单独购买一块显卡,但是在不进行物理运算的时候,还可以做3D渲染,再者显卡借助于PCI-E的高带宽总线,能够将引擎的功力发挥的淋漓尽致。
正当GPU物理加速前途一片光明之时,谁也没有想到半路会杀出来一个程咬金——2007年9月Intel闪电收购Havok,使得GPU物理加速嘎然而止(点击此处查看当时的新闻报道)!
这一次闪电的并购消息可苦了NVIDIA与ATI,当时正在大力推广四核CPU的Intel显然不会鼓吹GPU物理加速,即便Intel想要推广GPU物理加速,也要等到2009年以后自家独立显卡发布之时才有可能。这就使得NVIDIA和ATI犹如哑巴吃黄连、有苦说不出来。
对于雄心勃勃想要进军独立显卡市场的Intel来说,收购Havok可谓是一举多得,既打击了对手NVIDIA和ATI,还壮大了自身的实力。因为业界都对物理技术产生了高度重视,物理加速必将成为继DX10之后的又一3D图形制高点。
Havok被Intel收购以后,基于GPU的物理引擎——Havok FX就基本停止了开发,Havok官方以及Intel都绝口不提Havok FX,包括08年发布的Havok 5.5都没有提到Havok FX,日前(就在本月23日),Havok引擎版本已经升级到了6.5版,加入了Havok AI引擎,详细内容可参考Havok官方新闻稿。
既然财大气粗的Intel已经横刀夺爱,NVIDIA和AMD也无可奈何,于是两者的目光都转移到了还在孤军奋战的Ageia身上。Havok在游戏开发商和支持度方面要强于Ageia,但Ageia的PhysX SDK是免费授权使用的,全球开发者与日俱增,著名的暴雪娱乐、甚至国内很多游戏开发商都开始使用PhysX引擎,影响力不容小视。
于是,这家特立独行的物理加速公司很快便成为了抢手货,NVIDIA、AMD、索尼、任天堂等公司纷纷抛出眉眼,希望将其招至麾下。正所谓时势造英雄,前途暗淡的Ageia在竞争对手Havok被收购之后,业界对其好评人如潮,股价一路飙升,身价与日俱增!对于正处在巅峰时期的NVIDIA来说资金不是问题,只需要一个决心而已。于是NVIDIA为避免节外生枝,当机立断火并Ageia!
NVIDIA CEO黄仁勋如是说:“AGEIA团队是世界级的,他们拥有和我们同样的激情,创造最令人惊叹和最有魅力的游戏体验。通过创造世界上最深入人心的GPU和物理引擎品牌的强强联手,我们可以将GeForce加速的PhysX技术带给全世界数以百万计的游戏玩家。”
AGEIA创始人之一,CEO Manju Hegde则说:“NVIDIA对于我们是完美的选择,他们拥有世界上最好的并行计算技术,是GPU和游戏业界的领袖,我们有同样的创造激情,同样的文化,可以进一步推动消费体验。”
NVIDIA收购AGEIA后,其技术不仅用于游戏物理运算方面。黄仁勋表示,其CUDA通用计算技术将从中受益,为各种需要大运算量的通用计算应用提供支持。
收购Ageia,NVIDIA看中的显然不它的硬件(物理加速卡),而是PhysX引擎及丰富的游戏支持,NVIDIA想要把现有的一大批支持物理加速卡的游戏直接转化为支持显卡物理加速,从而为GeForce系列显卡赋予更多的功能。
PhysX引擎的普及度更高,而且同时支持CPU/PPU/GPU物理加速
NVIDIA的方法就是使用CUDA平台重新编写PhysX引擎的底层,把物理运算部分从PPU转移至GPU。 其实物理加速也是GPU通用计算的一种,因此在程序开发上面非常适合用CUDA语言编写,更何况CUDA是NVIDIA自己制定的标准,编译起来更加得心应手。
基于C语言的CUDA更易用学习和掌握,而且AGIEA的PPU本身就要比GPU复杂很多,但PPU和GPU的共同点就是并行计算架构,由复杂到简单的开发工作自然会容易一些,有了以前的经验再加上简单易用的CUDA,一切都是水到渠成。
在NVIDIA收购Ageia之后,很快就投入到了PhysX引擎的移植过程,据NVIDIA表示,双方的程序员只花了一个月时间就让PhysX引擎在GeForce显卡上跑了起来!这就充分证明了物理加速作为并行计算的一种,是非常适合GPU进行处理的,NVIDIA强大易用的CUDA平台成为了GPU物理加速的催化剂。
现在,只要你的显卡是NVIDIA支持DirectX 10的产品,并且显存容量达到了256MB(或更高),都可以免费使用NVIDIA PhysX物理加速技术。显然,GPU物理加速的2.0时代已经到来。
NVIDIA收购Ageia对于消费者乃至整个行业都有着至关重要作用。首先,对于用户来说,不用花费更多的钱去买一颗性能强劲的CPU,也不用花费更多的钱去买一块物理加速卡,更不用花更多的钱去买一块显卡专门用来做物理计算,先进的统一渲染架构加上CUDA的威力,让PhysX在NVIDIA的显卡上如虎添翼。
而市场方面,NVIDIA收购Ageia并完成引擎移植之后,开始大力推广PhysX引擎。而Ageia的PhysX引擎在NVIDIA的人力与财力的支持下,也受到了整个业界的认可,现在的新游戏绝大部分都支持NVIDIA的PhysX物理引擎,比如《镜之边缘》、《铁甲突击》、《虚拟竞技场3》等。
而且,NVIDIA的PhysX技术不仅仅在PC平台上声望极高,而且最近与SONY(PS3平台)、任天堂(Wii平台)都达成了合作伙伴的关系,并且已经有程序员在iPhone上开发出基于PhysX物理引擎的游戏,NVIDIA PhysX的前途可谓是一片光明。
相关阅读:
Intel收购了Havok,NVIDIA收购了Ageia,而AMD又没有自己的物理加速技术,一时间陷入了窘境。大家可以想象,AMD收购ATI之后,既是一家CPU提供商,同时也是一家GPU提供商,而现在Havok被Intel买走,Ageia被NVIDIA买走,这样的窘境可想而知。在之前甚至有消息称AMD将采用PhysX物理引擎来做自己的GPU物理加速,但后来并没有实现。
实际上,AMD如果愿意的话,完全可以使用NVIDIA的PhysX引擎,从技术上来说根本没有半点问题,因为之前已经有网友破解了NVIDIA PhysX的驱动程序,成功的在ATI的Radeon系列显卡上实现了PhysX物理加速。但是,大家都知道AMD和NVIDIA是老冤家,所以面子上是肯定过不去的。
而另一边——Havok,虽然ATI之前与Havok有过合作,但是Havok被Intel收购以后,这两家也就成了冤家,而且Havok被Intel收购之后就基本停止Havok FX的开发,所以在ATI的GPU上实现物理加速简直是难上加难。但是,在这样的情况下,AMD依然一直与Havok保持着合作的关系(大家可以想象一下AMD的感受),并且据悉在今天就会展示他们的合作成果——基于AMD GPU的物理加速。详情请查看我们之前报道的新闻《AMD将在下周的GDC上展示GPU物理加速!》,并请关注泡泡网显卡频道的最新报道。
也许,再过几个小时我们就能看到基于AMD GPU的物理加速技术带来的全新游戏感觉。但是,当我们把问题再一次转到市场上来。NVIDIA的PhysX物理加速技术几乎已经拿下了绝大部分游戏厂商,甚至包括PS3、Wii,其开源的特性甚至吸引到了iPhone的游戏开发者,AMD即使推出了基于GPU的物理加速引擎,能与NVIDIA的PhysX抢占市场吗?别忘了,Intel也在紧锣密鼓的准备自己的独立显卡Larrabee,等Larrabee产品正式发布之后,AMD的GPU物理加速又还有多少市场呢?
不管怎样,物理加速的出现给3D图形带来了又一次质的提升,可以说物理加速的意义不亚于当初推出GPU的意义,然而Intel、AMD、NVIDIA三大行业巨头将会怎么表现,物理加速的未来何去何从?到底是Havok统一江湖,还是NVIDIA PhysX一手遮天,我们只能让时间来证明这一切。■<