基于CUDA粒子系统的烟花仿真

时间:2022-09-04 05:41:11

基于CUDA粒子系统的烟花仿真

文章编号:10019081(2013)07205904

doi:10.11772/j.issn.10019081.2013.07.2059

摘 要:

粒子系统的基本理论符合自然世界的客观规律,适用于烟花等复杂现象的仿真。针对粒子系统仿真存在的计算和内存资源消耗巨大等问题,建立了基于统一计算设备架构(cuda)框架的粒子系统基本模型,讨论了模型中粒子的存储与运动更新,研究了基于CUDA的并行KDTRIE邻近粒子搜索算法。运用建立的CUDA粒子系统,研究了烟花仿真的具体实现。仿真结果表明,系统能够较逼真地仿真烟花的上升与绽放过程,帧率高达每秒312帧,仿真的真实感和实时性得到增强。

关键词:统一计算设备架构;粒子系统;K维二叉树;烟花;仿真

中图分类号: TP391.9文献标志码:A

英文标题

Fireworks simulation based on CUDA particle system

英文作者名

CHEN Xiuliang*, LIANG Yingjie, GUO Fuliang

英文地址(

Electronic Engineering College, Naval University of Engineering, Wuhan Hubei 430033, China英文摘要)

Abstract:

The elementary theory of the particle system coincides with the objective laws of the natural world. As a result, the particle system can be used for fireworks and other complex phenomena simulation. To solve the problem that the simulation of particle system is of huge computation and memory resources consumption, the paper built the basic particle system model based on Compute Unified Device Architecture (CUDA) framework. The storage and movement update of particles in the model were considered. Then the parallel KDTRIE neighbor particle search algorithm based on CUDA was studied. Finally, the detailed implementation of the fireworks simulation was discussed based on the CUDA particle system. The results show that the model can simulate the rise and bloom of the fireworks realistically with the frame rate of up to 320 frames per second, enhancing the fidelity and realtime performance of the simulation.

英文关键词Key words:

Compute Unified Device Architecture (CUDA);particle system;KDimensional TRIE (KDTRIE);fireworks;simulation

0 引言

火、爆炸、烟、水流、火花、落叶、云、雾、雪、尘自然现象或流星尾迹、发光轨迹等视觉效果的可视化是图形学中极具挑战性的研究课题,传统的造型方法很难真实地描述它们的形状和特征。根据拉格朗日的观点,可以将这些复杂现象离散为大量粒子[1]。随着人们对微观世界的深入研究,作为目前研究微观现象的重要手段,粒子方法发挥着越来越重要的作用[2],其基本理论符合自然世界的客观规律,适合大多数物理化学变化过程的研究。

粒子模拟本身对计算速度和内存的需求是非常巨大的,单台计算机的处理能力即使不断增加,往往也是无能为力,因此研究粒子的并行仿真就成了必然的选择[3-4]。目前,国内外已经取得了一定的研究成果,英伟达公司(nVIDIA Corporation)利用图形处理器(Graphic Processing Unit,GPU)实现了基于离散元方法(Discrete Element Method,DEM)的粒子系统Particles[5],该系统模拟了16384个粒子,平均可达110帧,但模拟的主要是无状态粒子,不便于仿真复杂场景;国内对统一计算设备架构(Compute Unified Device Architecture,CUDA)在粒子系统中的应用研究相对较少,陈曦等[6]曾用CUDA做过流体的模拟,但并没有过多的探讨并行算法的细节;江顺亮等[7]依据CUDA内存模型的特点对系统做出有效的内存规划,并使用CUDA流技术通过将粒子碰撞和数据输出分割成4个流异步执行,来隐藏数据拷贝的部分延迟,但其模拟粒子的数量受内存所限。本文将重点研究基于CUDA大规模粒子系统的仿真模型和并行邻近粒子搜索算法,并将其应用在烟花仿真中进行验证。

1 CUDA技术

NVIDIA于1999年推出了第一个真正意义上的GPU,经过近十多年的发展,GPU的计算性能得到了显著提高,并且已经大大高于中央处理器(Central Processing Unit,CPU)的性能。GPU在较大规模的并行运算上的优势更为明显,主流CPU与GPU峰值浮点计算能力[8-9]的比较如图1所示。

同时,随着多核CPU和众核GPU的快速发展,计算行业正在从只使用CPU的“中央处理”向CPU与GPU并用的“协同处理”发展[10]。传统的GPU架构已经不能有效利用其资源进行通用计算,NVIDIA推出的统一计算设备架构CUDA,是一种新的处理和管理GPU计算的硬件和软件架构,它能够充分结合利用CPU和GPU各自的优点,让CPU专注于数据高速缓存(Cache)和流处理(Flow Control),而将GPU视作一个并行计算设备,从而能够充分发挥GPU可编程性强和性能卓越的优势,也使得GPU的应用领域也更加广泛[11]。一个完整的CUDA程序=CPU串行处理+GPU Kernel函数并行处理,CUDA的硬件架构如图2所示。

图1 主流CPU与GPU峰值浮点计算能力比较纵坐标的单位应该是“GFLOPS吧,请明确。”

2 CUDA粒子系统模型

1983年Reeves[12]提出了粒子系统,并实现了对烟、火、云等不规则物体的模拟。其主要优点有:

上一篇:基于段级特征主成分分析的说话人识别算法 下一篇:基于聚集离散性与可分性的雷达信号特征评价