论文部分内容阅读
近年来,CPU的性能提升受制于功耗和工艺逐渐放缓了脚步,而图形处理器(GPU)由于其出色的浮点运算性能以及相较于CPU更高的内存带宽在科学计算领域中得到了越来越多的青睐。学者们尝试将GPU应用于CFD领域,并且获得了不错的加速效果。 本文实现了GPU平台的、基于非结构网格、采用有限体积方法的RANS方程求解器,其适用于三维可压缩、定常/非定常流动的数值仿真。采用格点格式进行控制体的离散。实现了Roe和Hllc通量计算格式,通过线性重构结合Venkatakrishnan限制器实现了空间上的二阶精度。时间离散方面讨论了显式Runge-Kutta方法以及隐式LU-SGS方法在GPU上的可行性。本文也将Runge-Kutta方法应用于非定常计算中的时间积分,但是为了加速时间推进,进一步地讨论了时间离散上具备二阶精度的双时间步长方法。采用Spalart-Allmaras一方程湍流模型封闭RANS方程,加入DES选项在分离区引入大涡模拟特性而边界层内仍然采用RANS方程。此外,针对规模较大的网格,实现了基于KD-Tree方法的物面距求解。 针对如上算法,通过详细分析GPU软、硬件架构,提出了一套完整的、高效的、采用双精度浮点数的内核函数设计及执行方案。针对非结构网格及格点格式特性,进行了基于硬件利用率、内存访问以及指令执行三个层次的深度优化,并提出了全新的、适用于本套算法的网格排序方法。通过多个定常/非定常算例验证了本文实现的正确性,实现了Runge-Kutta方法在单GPU上相较于CPU串行程序82~116倍的加速效果以及LU-SGS方法在单GPU上55~100倍的加速效果。结果充分展示了GPU在CFD领域中良好的应用前景。