精華區beta VideoCard 關於我們 聯絡資訊
(圖文) http://financenews.sina.com/sinacn/304-000-106-109/2008-06-30/2046826610.html Havok VS PhysX 漫談物理加速世界! 2008-06-30 20:46:30 作者:小熊在線-孤竹の子 物理大戰新篇章   2008年6月,NVIDIA與AMD-ATI先後發布了自家新一代高階產品GT200(GeForce GTX 280/260)與RV770(Radeon HD 4850/4870),我們在驚詫于新產品的極限性能時,眾多 新技術引用也是玩家關注的重點,例如NVIDIA的CUDA架構,AMD-ATI的GPGPU解決方案等。 在眾多的技術當中,物理加速技術由于震撼的視覺體驗及兩家不同的解決方案再次成為了 人們關注的焦點。 http://images2.sina.com/newscenter/cr/2008/0630/3474720608.jpg
  NVIDIA發布的CUDA 2.0開發包中蘊含了PhysX物理加速技術,NVIDIA的意向是使用GPU 通過CUDA架構來實現物理加速;而作為同時擁有CPU與GPU業務的AMD自然會選擇CPU+GPU為 主導的Havok物理引擎。2007年9月Intel閃電收購Havok之後,NVIDIA與AMD-ATI的GPU物理 加速計算就顯得非常尷尬,因為Intel收購Havok的目的就是使Havok引擎專注于CPU物理運 算,為了對抗Intel(亦或是說CPU),NVIDIA收購了Ageia及其PhysX引擎,使PhysX引擎 專注于GPU物理運算。AMD-ATI如何選擇物理加速方案在RV770之前業界充滿了猜測,因為 無論是Havok還是PhysX引擎,都是競爭對手的產品,而為了AMD更加長遠的Fusion計劃, AMD-ATI最終選擇了前者。 http://images2.sina.com/newscenter/cr/2008/0630/1434870327.jpg
  物理加速技術在2006年Ageia發布物理PhysX加速卡時被人們所關注,甚至有人笑稱3D 加速成就了3DFX,而物理加速將成就Ageia,但是由于Ageia採用的是PhysX硬件物理卡加 速方式,而物理卡又價格不菲,雖然Ageia也出售PhysX引擎,但是由于沒有PhysX硬件加 速卡支持的話效率會降低,在加上NVIDIA與AMD-ATI當時都採用了Havok引擎作為標准,因 此一直沒有受到游戲開發商及廣大玩家的重視。而Havok引擎在很長一段時間都是致力于 CPU軟件加速,但是隨著Havok 4.0工具中Havok FX的發布就不一樣了,Havok FX引擎是通 過GPU來進行物理加速,主要針對當時的PhysX引擎。   關于GPU與CPU在做物理運算時的差距這里就不多做介紹了,有很多這方面的文章可尋 ,總體來說GPU運行物理運算可以是四核CPU的十幾倍到幾十倍不等,比PPU有幾倍到幾十 倍的性能提升。而我們這里主要探討的NVIDIA與AMD-ATI GPU加速昨天、今天與明天! 昨天─殊歸同途的Havok FX引擎   Havok FX發布于2006年中,前文已經提到,Havok FX引擎是通過GPU來進行物理加速 ,當時的NVIDIA與AMD-ATI都不約而同的支持Havok FX引擎,首先來看NVIDIA的NVIDIA SLI Physics技術,NVIDIA是採用SLI模式的第二塊顯卡來進行物理加速。 http://images2.sina.com/newscenter/cr/2008/0630/1102043780.jpg
  從上圖中可以看出,Havok FX API通過DirectX將數據發給GPU驅動,如果游戲或者驅 動不支持SLI物理,那麼將不會發送物理數據,反之則交給GPU 2進行物理計算,計算結果 則返回給Havok API。   與NVIDIA的物理解決方案類似,AMD-ATI同樣採用Havok FX引擎,同樣基于多卡互聯 CrossFire來實現物理加速,第二塊顯卡來進行GPU物理加速。 http://images2.sina.com/newscenter/cr/2008/0630/735875314.jpg
  當時AMD-ATI的X1000系列GPU的設計理念是搭建智能化的芯片架構,使得芯片內部的 運算靈活性增強,根據外部接口API的不同,可以實現完全不同的運算任務,並且命名為 DPP(Data Parallel Processing )並行數據處理架構。   雖然同樣採用了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應用範疇)。   至于兩種方案的優劣其實討論起來真的沒有意義,因為實際上除了NVIDIA與AMD-ATI 自家演示的小DEMO與視頻之外,目前支持GPU物理加速的游戲幾乎沒有,大部分使用到物 理加速的游戲還都是使用CPU物理加速的方式,包括我們熟知頂級大作《Crysis》、《使 命召喚4:現代戰爭》等等…… 今天─PhysX決戰Havok FX   當NVIDIA宣布CUDA集成PhysX物理引擎時,很多人都會認為PhysX引擎只支持GPU物理 加速技術,這也是AMD-ATI選擇Havok FX引擎的主要原因。然而實際上PhysX引擎最初是只 支持CPU與PPU,而不支持GPU,即使是融入CUDA之後,PhysX引擎也仍然支持CPU物理加速 。之所以給人PhysX引擎只支持GPU物理加速的錯覺,是因為NVIDIA表示今後將大力發展 GPU物理加速,但這並不表示PhysX引擎排斥CPU或者CPU+GPU的解決方案。 http://images2.sina.com/newscenter/cr/2008/0630/3053286272.jpg
  無論是GPU還是CPU、PPU、Cell(PS3)都可以通過HAL翻譯層來實現軟、固質體動力 (Soft or Rigid Body Dynamics)、通用碰撞偵測(Universal Collision Detection)、有 限元素分析(Finite Element Analysis)、流體動力(Fluid Dynamics)、毛發模擬(Hair Simulation)以及更先進的布料模擬(Cloth Simulation)、自然模擬(Natural Motion) 等在內新穎技術。   通過CUDA通用接口,PhysX引擎將NVIDIA GPU中的Thread Scheduler(線程管理器) 模擬成Control Engine(控制引擎CE),而Streaming Processors來模擬Vector Processing Engine(矢量處理引擎,VPE),其中CE控制引擎負責任務的指派,相當于PhysX 中的主管機構,而真正的物理運算任務則是由VPE矢量引擎來完成,最後通過Data Movement Engine(數據移動引擎DME)輸出。關于最新GT200物理運算的優勢已經被NVIDIA 吹的天花亂墜,這里就不多介紹了,感興趣的朋友參見《NVIDIA奪面雙雄 GT200全球同步 首測》一文。   而AMD-ATI則繼續選擇Havok FX引擎,不過RV770系列實現物理加速的方法也已經不同 于之前的CrossFire雙卡解決方案,之前Radeon X1000系列是通過據並行計算架構提取直 接與Havok FX引擎相連接(其實也可以通過Direct3D和OpenGL API),然而由于對抗CUDA 的原因,AMD-ATI也需要自己的GPGPU規範,而AMD-ATI則選擇了蘋果公司力推的通用計算 行業標准OpenCL,它能與圖形硬件及多核CPU相協調以提高系統的整體性能,而AMD-ATI的 Havok物理加速技術就是基于CAL/Brook+的。 http://images2.sina.com/newscenter/cr/2008/0630/3875924325.jpg
  實質上講無論是CTM接口,還是現在的CAL/Beook+,AMD-ATI執行物理加速的概念都沒 有變,那就是GPGPU的並行能力進行物理運算,而NVIDIA方面可以真正稱的上市GPGPU物理 加速還是從CUDA開始的。另外我們也注意到,之前無論NVIDIA還是AMD-ATI在展示自己物 理運算時都是基于雙卡技術,而如今他們更願意談論單卡。 明天─技術與現實之間的抉擇   那麼物理加速技術的明天到底是Havok FX引擎還是PhysX引擎的天下?我們先來看一 下雙方的陣營:PhysX引擎目前只有NVIDIA一家支持,有消息稱AMD-ATI目前也正在與 NVIDIA商榷授權的問題,那麼有可能AMD-ATI最終也支持PhysX引擎;Havok FX引擎目前已 經得到AMD-ATI的支持,加上Havok的所有者Intel,目前構成了Intel+AMD-ATI對抗NVIDIA 的局面。 物理加速陣營對比 支持引擎 加速態度 Intel Havok CPU AMD-ATI Havok(PhysX引擎正在商榷) CPU+GPU NVIDIA PhysX引擎 GPU   三方對于物理加速是由GPU還是由CPU執行的態度開篇已經闡明,實際上這場物理大戰 最終的抉擇就是落在了到底是CPU加速還是GPU加速上,我們先來看一下最簡單的物理加速 計算過程。   無論PhysX引擎還是Havok引擎物理計算都基于以下步驟:   Integrate整合初步計算 Collide碰撞判定 Solve Collisions碰撞結果計算   在Integrate整合初步計算階段,進行物理對象的一些初始物理狀態的初始化,包括 速度、加速度等各項信息,為後面的運算做准備。Collide 碰撞判定進行一些對象之間的 碰撞檢測,並以對的形式進行處理(因為碰撞總是兩個物體相互的),Solve Collisions 碰撞結果計算階段則是對碰撞的後處理,包括碰撞後的速度等。Solve Collisions碰撞結 果計算階段是最複雜的,那麼我們可以看出物理計算是一個對並行計算非常依賴的運算。 http://images2.sina.com/newscenter/cr/2008/0630/278219283.jpg
Solve Collisions   我們看到,物理運算所需的大量並行計算正是GPU所具備的優勢,利用GPU做物理運算 確實是天經地義的事,那麼是不是說物理計算目前就是該由GPU來負責呢?在回答這個問 題之前我們先來看一下NVIDIA在近期發布的PhysX驅動,搭配PhysX驅動在運行3DMark Vantage CUP測試第二個場景的時候,由于GPU接替(或者說是加速)物理運算,使這個場 景成績暴增,可以看出GPU取代CPU物理加速時的決定性優勢,而在NVIDIA最新發布虛幻3 物理地圖演示中,我們卻可以看到如下的成績: http://images2.sina.com/newscenter/cr/2008/0630/1190808272.jpg
1680×1050 http://images2.sina.com/newscenter/cr/2008/0630/3747144617.jpg
2560×1600   GPU進行物理加速在進行很少使用到圖形渲染的3DMark Vantage CPU測試第二個場景 ,以及較低分辨率下進行游戲時,GPU物理加速確實效果令人滿意,但是隨著分辨率的增 加,GPU物理加速在游戲中的表現就不在我們想象的那樣完美,對比CPU加速,有些場景甚 至還有成績的下降!   這是游戲中GPU與CPU的關系決定的,在游戲中,顯卡大多數都是在滿負荷運行,這時 根本無暇分身做物理運算,因為無論運算靠的也是流處理器!那麼這時CPU在做什麼?游 戲是非搶占型程序,也就是說如果可以的話游戲不會全部榨幹CPU性能,所以我們在進行 游戲時經常看到CPU的占用率並非100%,如果是4核CPU而游戲又不支持多核的話,那麼這 時CPU的性能就在浪費!   實際的情況已經很明了,GPU確實非常做物理運算,但是實際情況卻是GPU心有余而力 不足,利用目前閒置的CPU來做物理加速似乎是最好的選擇,而如果我們有兩塊顯卡的話 也許就解決了GPU自顧不暇的問題,這是不是讓你想到了當初NVIDIA及AMD-ATI都不約而同 選擇Havok FX物理加速的原因──一塊顯卡做圖形渲染,一塊顯卡做物理加速!   今後物理的發展最終走向何方?也許會是GPU強大到做物理加速如現在的視頻解碼, 也許是今後游戲繼續榨幹顯卡的性能,由多核CPU閒暇來做物理計算,也許是Fusion的 CPU+GPU協同操作,總之,一切皆有可能,我們拭目以待…… 相關文章: NV與Intel的決斗!顯卡的未來不屬于AMD http://financenews.sina.com/sinacn/304-000-106-109/2008-03-02/1853718849.html PhysX物理戰争,GeForce大戰AGEIA物理加速卡。 http://www.50fs.tw/fstw/news/tonews.action?n=6987 -- _ˍˍˍˍˍˍˍ/\ˍˍˍ/\ˍˍˍ//\/\ˍˍˍ/\/\//\ˍˍˍˍˍˍ_ __ˍˍˍˍˍˍ/\ˍˍˍ/\ˍ_ˍ/\ˍˍˍ/\ˍˍˍˍˍ_/\ˍˍˍˍˍ_ˍˍ_ _ˍˍˍˍˍˍ//\/\/\ˍˍˍ_//\ˍˍˍˍˍˍˍˍ/\ˍˍˍˍˍˍˍ_ˍ_ _ˍ_ˍˍˍˍ/\ˍˍˍ/\ˍˍˍˍˍ_//\ˍˍˍˍˍ_/\ˍˍˍˍˍˍˍˍ_ˍ_ _ˍˍˍˍˍ/\ˍˍˍ/\ˍˍˍ/\ˍˍˍ/\ˍˍˍ_/\ˍˍˍˍˍˍˍˍˍ_ˍ_ __ˍˍˍˍ/\ˍˍˍ/\ˍˍˍˍ_//\/\ˍˍˍ//\/\/\ˍˍˍˍˍˍˍ_ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.68.80.80
hsz0566:打算用消費劵買二手ASUS PhysX P1物理加速卡...XD 01/18 18:16
hsz0566:於是找了些資料 分享過來~ 01/18 18:16
steve90370:好文!有看有推! 01/18 18:39
pipi5867:nv真正要擔心的是被這兩大cpu&晶片組廠商玩.. 01/18 19:35
netsphere:PhysX物理減速卡 01/18 20:04
hsz0566:對ATi的用戶而言還是加速卡啦 只是爽度沒nV高階卡高 XDD 01/18 20:18
sdk:CUDA PhysX應該不支援rigid body cd...只有soft body... 01/18 23:07