技术开发 频道

GPU在流体力学方面的应用研究

  【IT168应用】如今对3D的模拟,对动作场景的捕捉并分析,这些对计算的精确度和速度要求越来越高,而GPU技术的应用也就随之变得越来越普遍。来自美国斯坦福大学的Patrice Castonguay给大家分享了具有可扩展性和高效的高阶非结构化可压缩流体的GPU求解器。

  此求解器在张量乘积和单一元素情况下利用能量稳定的通量重构方法,可以对复杂的几何形状下的流动实现任意阶精度。由于能量稳定的通量重构方法以及本地元素的特性要求很高的计算强度,他们非常地适合用GPU来解决问题。单GPU的求解器在这项任务中达到45倍于同代CPU的串行计算速度。

GPU在流体力学方面的应用研究
▲美国斯坦福大学Patrice Castonguay

  此外,多GPU求解器能很好地扩展,在32颗GPU上运行时,四面体单元的6阶精确模拟达到2.8万亿次浮点运算(双精度)的持续性能。根据作者透露,上述流体求解器是第一个GPU集群上的混合非结构化网格高阶三维可压缩纳维-斯托克斯求解器

GPU在流体力学方面的应用研究
▲高阶方法

  据Patrice Castonguay表示,在应用了GPU技术之后,使得数据的处理速度和精确度提升了40倍。在研究过程中采用了低阶和高阶的方法,通常在CPU计算的时候使用低阶,而高阶的方法就需要GPU技术。

  Castonguay在演讲中提到一个研究场景,涡流从左向右移动,最后又回到了中间,需要精确的方法,而且是需要采用高阶的方法。其他的场景比如模拟噪音,悬翼飞机等这些涡流需要进行追中,而鸟在飞行的时候遵循非常复杂的几何学,为了对他们的动作进行捕捉需要高阶的方法,这样就需要更加精确的计算,因此GPU计算非常的重要。

GPU在流体力学方面的应用研究
▲涡流应用场景

  低阶的方法不能远距离追踪涡流,用高阶的方法可以很远的进行追踪,不会改变形状,而且是可以3D的方法进行。

  高阶方法的问题:需要高的精确度,同时需要非常高的GPU。有了很大的CPU集群,模拟需要非常昂贵的模拟,GPU可以帮助实现这一需求。

GPU在流体力学方面的应用研究
▲Flux 重构方法

  在研究中采用了通量重构方法,用了高阶的算法,改变准确率的精度,通过改变分辨率改变精确的要求,对GPU非常的合适,而和低阶相比有很高的通量,同时有很好的并行性。Patrice Castonguay的操作要在芯片上共享内存。

 

  粘稠流的状况,通常有两三种网格,每个网格有3个元素,同时要确保GPU的编程是有效的。在研究中要优化CPU的缓存器,优化GPU的算法。

GPU在流体力学方面的应用研究
▲GPU实现

  同样的研究过程,以前需要几周,现在只要几天就行了,大大的节省了时间,提高了效率。多GPU的编码,是用CUDA流把CPU和GPU的工作进行切换,可以实现双精度。现在只要加入更多的GPU,而不用浪费更多的CPU资源。

  Castonguay表示:实验用混合的网格进行测试,在3个320GPU有4阶的准确率,达到30Xeon * x5670CPUs(180个核心)的效果。

0
相关文章