中文

用于计算非定常、黏性、可压缩及导热气体流动的算法 SIMPLE-TS 的 GPU 实现

计算工程、金融与科学 2018-02-13 v1 数学软件

摘要

近来使用图形处理单元(GPU)进行高性能计算的趋势是由这些单元的高性价比以及其成本效益所驱动。乍看之下,计算流体动力学(CFD)求解器与 GPU 资源完美匹配,因为这些求解器进行密集计算且使用相对较少的内存。然而,关于 GPU 相对于 CPU 这一显著优势的实际应用的成果甚少,尤其是对于双精度精度的黏性、可压缩、导热气体流动的计算。本文根据对流项的时间逼近给出了两种 GPU 算法:显式与隐式格式。为减少设备内存间的数据传输并提高 GPU 代码的算术强度,我们最小化了核函数的数量。GPU 算法在隐式格式下以一个核函数实现,显式格式下以两个核函数实现。数值方程通过宏和使用优化组合在一起,从全局内存到私有内存的数据拷贝及数据重用交由编译器处理。从而使代码更简洁且易于维护。作为测试用例,我们模拟了微通道中超声速流过方柱的流动。测试表明,AMD Radeon R9 280X 相比 Intel Core i5-4690 核心总体加速比达 102 倍,相比 Intel Core i7-920 核心达 184 倍;而 NVIDIA Tesla M2090 相比 Intel Core i5-4690 核心达 11 倍,相比 Intel Core i7-920 核心达 20 倍。GPU 代码的内存需求较 CPU 有所改善:590 万有限体积仅需 1[GB] 全局内存,为 C++ CPU 代码的一半。总之,该代码简洁、可移植(用 OpenCL 编写)、内存高效且易于修改,并展现出优异性能。

关键词

引用

@article{arxiv.1802.04243,
  title  = {GPU implementation of algorithm SIMPLE-TS for calculation of unsteady, viscous, compressible and heat-conductive gas flows},
  author = {Kiril S. Shterev},
  journal= {arXiv preprint arXiv:1802.04243},
  year   = {2018}
}

备注

49 pages