● Havok引擎与CPU+GPU异构运算
目前在游戏中应用最广的物理效果有粒子、流体、软体、关节和布料五大类,借助这些效果,我们的图形世界将会变得更加真实细致。从游戏发展的轨迹来看,大家都在力求一种“现实”的效果,从最1994年Doom Ⅱ那种粗糙的3D效果到2008年的Crysis,游戏的3D效果和光影效果都有了长足的进步。如何让游戏表现出更真实的一面,放在大家面前的有两条路。第一条就是增加特效,如DX8、DX9、DX10,这样的特效更多表现的是一种“静态”的效果。而另一条路则是增加如爆炸、布料摆动、关节运动等“动态”方面的真实效果。
物理运算有两大特点,第一是高并行度,第二是高运算密度,这两大特点刚好符合我们之前所分析的并行计算结构,所以从物理效果提出之时,人们就在寻找加速比更高的硬件解决方案来进行物理运算。AGEIA公司在GDC2005游戏开发者大会上推出了物理处理器PPU(Physics Processing Unit),被称为05年度图形领域的重大技术创新。这种芯片可以通过其内部的大量并行浮点处理器来运算物理特效,解放任务繁重的CPU。不过PPU的劣势就是需要附加运算卡才能实现,功能较为单一,整体实现成本方面也没有做到最优。
物理引擎发展的挑战与应对
随后使用GPU进行物理加速走进了人们的视野,GPU天生拥有较高的并行度,同时其内部可编程浮点单元能够执行物理运算。同时随着GPU内部结构不断完善,调度器、发射端和寄存器资源已经能够支撑GPU进行损失较小的上下文切换,这是GPU在执行图像渲染的同时进行物理加速工作的前提。而NVIDIA和AMD也都选择了相应的物理加速引擎为自己服务。
和现在广为人知的PhysX物理引擎相对的是AMD选择的Havok物理引擎,这是业界知名度最高的拥有广泛游戏资源支持的物理引擎。Havok发展到2005年的时候,已经可以在微软的视窗操作系统、Xbox与Xbox360,任天堂的GameCube与Wii、索尼的PS2、PS3与PSP、苹果电脑的Mac OS X、Linux等操作系统或游戏主机上使用。此游戏引擎是用C语言/C++语言所撰写而成。
2006年,Havok物理引擎在基于CPU系统上获得众多支持的时候终于决定转向GPU系统,Havok FX引擎应运而生。Havok FX将物理运算分为特效和游戏运算,特效运算(如爆炸时的烟雾)将会由GPU的Shader Model 3.0来进行运算,进而减轻CPU的负担。而游戏物理运算则仍然由CPU处理。
但是随着Havok被Intel收购,基于GPU的物理引擎开发几乎陷入停滞。因为Intel当时的CPU发展思路已经转向了提高并行度,同时Intel程序中充满分支和循环嵌套的物理特效在GPU上难以完成,所以Intel让更多物理效果在CPU上运行。但是后期的GPU发展远超Intel预料,所以后期Havok还是和AMD不断合作谋求在GPU带来的更高加速比。
在GDC09展览中,演示中的Havok引擎使用了ATI的显示核心作为加速。由于引擎是基于OpenCL架构进行开发,所以处理器和显示核心都可以为其进行计算。基于GPU的Havok引擎发展,意味着AMD提倡多年的异构计算模式终于在更多领域找到了用武之地。虽然目前Havok引擎在GPU上的游戏数量少之又少,但是Havok引擎在CPU支持方面垄断了绝大部分游戏的物理加速接口。同时随着更多的CPU-GPU异构模式Demo推出,物理运算加速比相比纯GPU模式将会更好。
- 第1页:全文导读与内容简介
- 第2页:前言:通过GPU见证行业变革
- 第3页:第一章:GPU工作原理与并行计算
- 第4页:21世纪视觉需求与GPU变化
- 第5页:从山峰渲染了解GPU图形流水线
- 第6页:CPU与GPU的设计方向决定运算能力
- 第7页:GPU并行编程为何加速发展
- 第8页:GPU并行计算已成未来趋势
- 第9页:初识高性能并行计算
- 第10页:高性能并行计算发展历程
- 第11页:高性能并行计算单元分类
- 第12页:初识基于GPU系统的云计算
- 第13页:第二章:GPU结构与ATI产品发展
- 第14页:统一着色器架构释放GPU运算能力
- 第15页:传统GPU发展与着色器管线
- 第16页:传统SIMD结构流处理器指令细节
- 第17页:MIMD结构流处理器指令细节
- 第18页:R600时代对SIMD架构补充与优化
- 第19页:两种结构流处理器优劣对比
- 第20页:R300以来的芯片架构及其影响
- 第21页:ATI第一代统一渲染架构Xenos
- 第22页:统一渲染GPU R600临危受命
- 第23页:AMD对GPU架构的不断改进和优化
- 第24页:未来ATI图形芯片架构预测
- 第25页:第三章:GPU通用计算发展与细节
- 第26页:多核并行计算困惑与发展
- 第27页:基于AMD CPU+GPU异构计算平台
- 第28页:着色器模型变化历程与总结
- 第29页:Shader计算能力快速发展
- 第30页:揭秘GPU高性能计算关键
- 第31页:CPU与GPU的区别和发展方向
- 第32页:如何将GPU功能单元映射为通用单元
- 第33页:分支对GPU结构体系的挑战
- 第34页:GPU与CPU将如何演绎融合与吞并
- 第35页:第四章:GPU内部计算实现细节
- 第36页:GPU主要计算单元分布和职能
- 第37页:GPU内部通用计算代码运算过程
- 第38页:认识GPU浮点计算精度
- 第39页:整数运算能力与未来融合架构
- 第40页:GPU存储体系特点与变化
- 第41页:ATI GPU吞吐特性对比与分析
- 第42页:ATI GPU OPEN CL综合性能分析
- 第43页:先进混合架构之Larrabee展望
- 第44页:概念型融合架构之Fusion APU展望
- 第45页:GPU进化架构之Fermi分析
- 第46页:第五章:ATI GPU通用计算实例
- 第47页:ATI Stream技术发展与现状
- 第48页:OPEN CL接口技术与异构运算
- 第49页:Havok引擎与CPU+GPU异构运算
- 第50页:BOINC平台充沛的ATI GPU加速项目
- 第51页:最具影响力的Folding@home项目
- 第52页:GPU架构对于其他实例的适应性
- 第53页:全文总结与未来架构展望