一种基于GPU集群的并行流体仿真加速方法技术

技术编号:11061730 阅读:180 留言:0更新日期:2015-02-19 08:48
本发明专利技术是一种基于GPU集群的并行流体仿真加速方法。针对流体仿真计算量大、并行度高的特点,设计了自动化的并行加速方法,进行流体的模拟与算法研究。提出并实现了一种在同一节点内多个GPU之间、多个节点之间的负载均衡算法。在给定空间中使用基于位置的流体仿真算法模拟流体的物理行为,通过减少分支以及缩小临域搜索范围对算法进行加速。对流体所在的空间进行分割,每个节点处理一个子空间,在节点内根据GPU数量进行进一步分割,从而完成流体仿真在GPU集群上的并行化。

【技术实现步骤摘要】
一种基于GPU集群的并行流体仿真加速方法
本专利技术属于计算机应用领域,具体地说是一种基于GPU集群的并行流体仿真加速 方法,该方法可用于影视、游戏、医学等各个领域中,模拟流体的行为。
技术介绍
随着虚拟现实技术的发展,流体动画在电影特技、娱乐游戏、军事仿真、医学仿真、 数字媒体中广泛应用,人们对真实感有了越来越高的需求。为了仿真这些复杂的场景效果, 一帧一帧手工渲染动画自然满足不了需求,近年来,计算机硬件性能飞速发展,极大的促进 了计算机图形学的深入研究。流体仿真更是多种多样,从早期简单的大面积水体仿真,如平 静的水面、静止的烟雾,到现在渲染更为丰富细致的动态流体,如飞溅、泡沫、沸腾、多流体 融合、多相流,流体交互仿真等,流体和其物理属性已经紧密的结合在一起。因此,基于物理 的流体动画仿真成为计算机图形学和虚拟现实领域中的研究热点之一。 近年来被广泛应用的光滑粒子流体动力学(Smoothed Particle Hydrodynamics) 算法是一种基于物理的流体仿真算法。该类方法使用粒子离散化问题域,通过加权求和邻 居粒子的贡献值来计算粒子的物理量。该算法能够很好的处理自由表面、变形边界、运动交 界面以及大变形等问题。但是SPH算法使用了刚性方程以维持其不可压缩性,这使得力的 计算结果较大,只能使用足够小的时间步长。 基于位置的流体仿真(Position Based Fluid)算法在基于位置的动力学 (Position Based Dynamics7F1DB)框架中添加了密度的迭代求解。通过一组位置限制公式 来维持一个固定的密度。该方法能够得到同SPH算法类似的不可压缩性以及收敛性,同时 继承了 PBD的几何稳定性,从而可以在实时仿真中使用更大的时间步。同时改善了 SPH算 法对时间步长的限制,允许使用更大的时间步长,在相同时间内可以获得更大的粒子位置 更新,同时保留了基于粒子的流体仿真所固有的优势,具有广阔的应用前景。 为了使得仿真效果更加逼真、细节更丰富,粒子规模被不断提高。PBF算法的计算 量非常大,CPU已经难以满足PBF方法的计算需求,浮点性能超过CPU几十倍的GPU开始被 用于加速PBF方法。最近十余年,GPU在浮点性能和可编程性方面都取得了长足的进步。浮 点性能方面,目前GPU无论在单精度浮点运算还是双精度浮点运算都达到了数Tflops。可 编程性方面,随着CUDA的问世,GPU从传统的图形领域跨入了通用计算领域。越来越多的 应用通过GPU加速获得了大幅度的性能提升。GPU是一种并行硬件架构,特别适合于加速计 算密度大的并行算法。
技术实现思路
本专利技术的目的是在GPU集群上实现PBF的自动化加速算法,使得可以用同一种负 载均衡策略、通信管理策略、存储管理策略来实现基于GPU集群的流体仿真算法。让开发人 员能够快速在GPU集群上实现仿真算法,将研发精力从算法实现转移至对仿真算法本身的 研究,只投入少量精力即可获得GPU集群的加速。 为了实现上述目的,对流体物理行为的模拟采用基于位置的流体仿真算法(PBF) 实现,并通过减少分支,缩小临域搜索空间对算法进行优化。按照节点数量、节点内GPU数 量和粒子分布情况对全局空间进行划分,将计算任务均衡的划分至各个GPU中,在一些联 系性较强的步骤执行后对粒子的一些关键属性进行全局同步,使其能够正确的并行的快速 的在GPU集群上完成整个计算任务。在计算过程中,根据各个GPU的计算时间,对全局的 GPU进行负载均衡。 【附图说明】 图1示出本专利技术中并行加速方法所使用平台的整体逻辑结构; 图2示出本专利技术基于粒子分布情况与服务器节点数量划分空间; 图3示出本专利技术每个子空间周围的ghost粒子层; 图4示出本专利技术缩小临域搜索范围。 【具体实施方式】 下面结合附图对本专利技术作进一步说明。 并行加速方法所使用平台的整体逻辑结构如图1所示。具体步骤如下: (1)按照服务器节点数量和粒子的空间分布情况对空间进行二维ORB划分,如图2 所示。统计粒子在三个方向上坐标分布的方差,取方差最大的两个方向作为切割方向。首 先沿方差最大的方向将场景切割为两个长方体,然后在两个长方体中继续选择其余一个方 向切割为更小的两个长方体,循环在两个方向上切割直到子空间的数量和GPU数量相同; (2)统计每个节点的所属子空间中粒子在ORB划分的两个方向上的方差,选定方 差大的方向对该子空间进行一维划分,将整个仿真空间沿该方向切割为多个长方体子空 间。将粒子数据发送至所属节点的相应GPU中,并包含该粒子群周围的一些冗余粒子信息 用于后续计算,称之为ghost粒子层,如图3所示; (3)根据粒子上一个时间步受力情况(模拟开始时初始化为重力)和速度,计算每 个粒子的速度变化; (4)将GPU的粒子空间划分为多个网格,如图4所示,网格尺寸为光滑半径的一半, 以缩小搜索范围,统计粒子在空间网格中的分布情况,统计每一个网格的起始终止粒子,用 于后续步骤的临域搜索,这里按(2)步骤中的划分方向合并多个网格,以减少分支; (5)计算每个粒子的密度P。粒子密度由标准SPH密度估算公式得出,如粒子i 的密度P i是关于其所有临域粒子位置坐标的函数:本文档来自技高网
...
一种基于GPU集群的并行流体仿真加速方法

【技术保护点】
一种基于GPU集群的并行流体仿真加速方法,其特征在于包括以下步骤:(1)在全局空间中按照节点数量和粒子分布情况对其在某一二维平面进行划分,而非三维空间上进行ORB划分,每个节点对应一块子空间;(2)在每个节点的所属子空间中根据GPU数量和该子空间中粒子分布差异最大化的坐标轴方向对该子空间进行一维划分,并沿该方向在对其子空间内粒子进行矩阵变换,将粒子数据发送至所属节点的相应GPU中;(3)各GPU使用基于位置的流体仿真算法(PBF)进行计算,多次迭代修正粒子位置,再计算限制因子项,更新粒子位置之后分别对限制因子项和粒子位置进行两次全局同步,同步后本时间步结束;(4)根据各GPU的计算时间,对各个节点各个GPU进行负载均衡处理,调整全局空间的划分,根据新的划分在GPU之间交换粒子,而后重复步骤(3),处理下一个时间步。

【技术特征摘要】
1. 一种基于GPU集群的并行流体仿真加速方法,其特征在于包括以下步骤: (1) 在全局空间中按照节点数量和粒子分布情况对其在某一二维平面进行划分,而非 三维空间上进行ORB划分,每个节点对应一块子空间; (2) 在每个节点的所属子空间中根据GPU数量和该子空间中粒子分布差异最大化的坐 标轴方向对该子空间进行一维划分,并沿该方向在对其子空间内粒子进行矩阵变换,将粒 子数据发送至所属节点的相应GPU中; (3) 各GPU使用基于位置的流体仿真算法(PBF)进行计算,多次迭代修正粒子位置,再 计算限制因子项,更新粒子位置之后分别对限制因子项和粒子位置进行两次全局同步,同 步后本时间步结束; (4) 根据各GPU的计算时间,对各个节点各个GPU进行负载均衡处理,调整全局空间的 划分,根据新的划分在GPU之间交换粒子,而后重复步骤(3),处理下一个时间步。2. 如权利要求1所述的基于GPU集群的并行流体仿真加速方法,其特征在于:在所述 步骤(1)中在全局空间中按照节点数量和粒子分布情况对其在某一二维平面进行划分,具 体方法是: 按照服务器节点数量和粒子的空间分布情况对空间进行二维ORB划分,ORB方式采用 多层次的方式切割,选定两个方向进行划分;统计粒子在三个方向上坐标分布的方差,取方 差最大的两个方向作为切割方向;首先沿方差最大的方向将场景切割为两个长方体,然后 在两个长方体中继续选择其余一个方向切割为更小的两个长方体,循环在两个方向上切割 直到子空间的数量和GPU数量相同;此切割方法目的在于减小节点间交界面面积,同时不 至于使传输模型过于复杂,最小化各节点传输数据量。3. 如权利要求1所述的基于GPU集群的并行流体仿真加速方法,其特征在于:在所属 步骤(2)中对每个节点的全局子空间进行划分,具体方法是: 计算粒子坐标集在步骤(2)选取两个方向上的方差,沿方差最大的坐标轴粒子的分布 差异相对最大,按照粒子在该方向的数量分布,将整个仿真空间沿该方向切割为多个长方 体子空间;此切割方法目的在于在使节点间传输事务次数最小化的前提下,节点内GPU间 的传输数据量和传输事务次数最小化。4. 如权利要求1所述的基于GPU集群的并行流体仿真加速方法,其特征在于:在所属 步骤(3)中各GPU使用基于位置的流体仿真算法(PBF)进行计算并在计算限制因子项和校 正粒子...

【专利技术属性】
技术研发人员:沈旭昆黄冠喆
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1