【技术实现步骤摘要】
本专利技术属于计算机图形学与高性能计算领域,具体地说是一个新的基于通用计算图形处理器(GPGPU)并行方法,用于以SPH算法为基础的流体模拟计算。涉及到计算机图形学以及仿真,计算流体动力学,单指令流多数据流(SIMD)架构,GPGPU等。
技术介绍
SPH方法是一种无网格拉格朗日数值方法。该方法在近年来被广泛运用于流体模拟、天体动力学、分子动力学以及生物模拟中。作为一个粒子方法,SPH需要大量的粒子来模拟高精度大规模的场景。而大量的高密度粒子会导致海量的计算需求。所以对于用户来说,他们总是被迫于在模拟效果和系统性能之间做出权衡。因此,提升SPH方法的性能总是非常有意义的。如今,非常多的研究致力于提升SPH方法的性能。其中一个主题是从系统体系结构的角度来做性能的提升。由于SPH方法本身非常适合并行化,非常多的研究得益于近年来并行硬件以及开发环境的发展并成功地将SPH方法和它们结合起来。然而,大多数这些研究,尤其是那些利用GPU的研究工作,没有能够充分地利用这些新硬件和开发环境的能力。比如说,主流的传统SPH的GPGPU实现中,尽管这种实现非常易于实现,并且相比起CPU代码来说,有1到2个数量级的性能提升,但是GPU在这种实现中只是被单纯地看作是一个SIMT处理器,而没有能够运用到很多GPU中的高级特性。而这种做法导致了传统的实现让SPH成为了内存受限型的应用。于是,也有一些研究试图去利用GPU中的各种内存空间来改进其在内存访问方面的高额代价,特别是共享内存。然而,已有的共享内存解决方案并没有带来理想中的性能提升,甚至要比传统方法慢上20%~70%。这个解决 ...
【技术保护点】
一种面向SPH流体模拟的GPGPU并行计算方法,其特征在于该方法包括以下具体步骤:步骤1:设SPH方法中的光滑核半径为h,将整个模拟空间划分为以h为边长的互不相交的正方体单元格;步骤2:使用基于GPGPU的计数排序算法,将空间内的粒子根据它们所在的单元格来进行排序,在计数排序算法中,首先计算每个单元格中所包含的粒子数量,然后通过并行前缀求和算法计算每个单元格中的粒子在内存中的偏移量,之后根据每个粒子所在单元格在内存中的偏移量以及其在该单元格中的位置进行复制;步骤3:根据每个单元格中粒子的数量,为接下来的粒子交互阶段中每一个CTA分配任务,此过程完全在GPGPU上实现:i)计算每个单元格所包含的粒子在内存中的范围,其结果保存在两个数组中,数组中每个元素描述一个单元格的相关信息:(1)单元格中的粒子在内存中的偏移量;(2)单元格所包含的粒子数量B;这步由个GPU线程并行完成,为空间中所包含的单元格的数量;ii)计算每一个单元格将在步骤4中所需要用来处理其内部粒子的交互的CTA数量,并将结果保存在数组B’中;所需的CTA数量为其中,Scta表示一个CTA中包含了线程数量,表示单元格cj中所包 ...
【技术特征摘要】
1.一种面向SPH流体模拟的GPGPU并行计算方法,其特征在于该方法包括以下具体步骤:步骤1:设SPH方法中的光滑核半径为h,将整个模拟空间划分为以h为边长的互不相交的正方体单元格;步骤2:使用基于GPGPU的计数排序算法,将空间内的粒子根据它们所在的单元格来进行排序,在计数排序算法中,首先计算每个单元格中所包含的粒子数量,然后通过并行前缀求和算法计算每个单元格中的粒子在内存中的偏移量,之后根据每个粒子所在单元格在内存中的偏移量以及其在该单元格中的位置进行复制;步骤3:根据每个单元格中粒子的数量,为接下来的粒子交互阶段中每一个CTA分配任务,此过程完全在GPGPU上实现:i)计算每个单元格所包含的粒子在内存中的范围,其结果...
【专利技术属性】
技术研发人员:阮骥鸣,王长波,秦洪,
申请(专利权)人:华东师范大学,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。