首次引入游戏计算架构
过去的GPU在处理游戏中的图形运算时,几乎不能做其他操作。唯一可以做的就是在支持PhysX物理效果的游戏中提供一定的物理运算支持。游戏中的AI(人工智能)、景深、光线追踪等等效果,都是依赖CPU运行的。GPU无法对其进行加速。
Fermi架构引入的游戏计算架构(Compute Architecture for Graphic),打破了这一传统。随着通用计算的盛行,专业领域和民用领域都前途无量,NVIDIA CUDA并行计算架构就会在GF100Fermi架构中继续发扬光大,而且用途更加广泛,单就游戏而言受益也是多方面的。
可编程着色器的运算性能近年来有了很大的进步。展望未来,可编程仍然在GPU中将继续充当压倒一切的重要性,它可以让开发人员能够创建新一代的视觉效果。光栅化(Pasteurization),光线跟踪(ray tracing)和雷耶斯法(Reyes)是众所周知的一般渲染算法。截至Fermi出现之前,GPU的设计仍然纯粹为光栅化。开发人员继续寻找新的方式来改善他们的图形引擎,GPU则需要善于多样化和不断增长的图形算法集。由于这些算法是通过一般通用计算API,所以GPU的运算能力对一个强大的计算架构的执行效率是至关重要的。从本质上讲,可以认为游戏计算架构是一种新的可编程着色应用。
GF100的计算架构是设计之初就考虑到射线追踪。GF100是第一款GPU硬件支持递归,可以高效的实现光线追踪算法和其他图形算法的GPU。GF100的L1和L2缓存大大提高光线追踪性能,改善就细粒内存访问的效率。L1缓存提高了邻近的光存储效率,而二级缓存,进一步放大了整个处理系统的存储带宽。
CUDA架构的实现途径多种多样,CUDA C、CUDA C++、OpenCL、DirectCompute、PhysX、OptiX Ray-Tracing等等。这其中既有NVIDIA自己似有的开发方式,也有开放的业界标准规范,开发商可以自由选择。
GPU游戏计算架构实例
在游戏中,NVIDIA CUDA计算架构可以执行画质处理、模拟、混合渲染等等,实现景深、模糊、物理、动画、人工智能、顺序无关透明(OIT)、柔和阴影贴图、光线追踪、立体像素渲染等大量画面效果。
NVIDIA还宣称,GF100的游戏计算性能相比GT200有了大幅提高,比如PhysX流体DEMO演示程序3.0倍、《Dark Void》游戏物理2.1倍、光线追踪3.5倍、人工智能3.4倍。
下面简要介绍几个GPU游戏计算的实例:《地下铁2033》是近期推出的一款FPS游戏,其景深效果的计算就采用了DirectCompute。采用以往传统的后处理方式效果并不能让人满意,而采用皮克斯的技术则系统资源消耗则会太大,而采用CUDA则能很好的协调技术研发者和游戏开发者之间的工作。
Capcom发售的Dark Void就利用了NVIDIA APEX Turbulence模块技术,用来表现机械和武器的开火和粒子效果。
CUDA还可以用于游戏的AI寻路计算,可以高效的计算最短路径,并可以做冲突预测,GF100在寻路方面以提供三倍于GT200的性能。
流体模拟基于粒子层次,模拟超过128000个粒子互动,甚至包括液体表面张力计算,GF100可以提供两倍于GT200的性能,这样的技术可以广泛应用于游戏的水流、泥浆和血液等流体的物理特性模拟。PhysX 3.0得益于并行核心程序执行,相比之前性能可以有20-40%的提升,而在实际游戏应用中性能提升会更为明显。
GF100的光线追踪采用光栅化和光线追踪组合的方式,主要光源依然采用光栅化,而阴影和反射采用光线追踪的方式,GF100得益于新的缓存架构在这一应用中可以提供四倍于GT200的性能。