格子玻尔兹曼方法在通用图形处理器上的性能工程:架构需求和性能结果
摘要:GPU上的并行计算单元(Graphics Processing Unit, GPU)具有较当前标准双插槽CPU服务器(例如NVIDIA C2070与Intel Xeon Westmere X5650)多倍的浮点性能和内存带宽。近年来,格子Boltzmann方法已经确立为一种流动求解器,并且是首批在GPU上成功移植并具有良好性能的流动求解器之一。我们在基于NVIDIA CUDA和OpenCL的GPU和CPU上演示了一种基于D3Q19格子Boltzmann的不可压缩流动求解器的先进优化策略。由于实现的算法受限于内存带宽,我们专注于改进内存访问。我们解释和讨论了实现最佳数据访问的基本数据布局问题。此外,我们重新排列算法步骤以改善GPU内存的散乱访问。讨论了占用率的重要性以及提高整体并发性的优化策略。我们得到了一个经过良好优化的GPU内核,它被集成到一个能处理单相流体流动模拟和带颗粒的流动的更大框架中。我们的3D格子Boltzmann方法GPU实现在NVIDIA Tesla C2070上的单精度性能达到650 MLUPS,双精度性能达到290 MLUPS。
作者:Johannes Habich and Christian Feichtinger and Harald K"ostler and Georg Hager and Gerhard Wellein
论文ID:1112.0850
分类:Performance
分类简称:cs.PF
提交时间:2011-12-06