Memory layout in GPU implementation of lattice Boltzmann method for sparse 3D geometries

Research paper by Tadeusz Tomczak, Roman G. Szafran

Indexed on: 08 Nov '16Published on: 08 Nov '16Published in: arXiv - Computer Science - Distributed; Parallel; and Cluster Computing


We describe a high-performance implementation of the lattice Boltzmann method (LBM) for sparse 3D geometries on graphic processors (GPU). The main contribution of this work is a data layout that allows to minimise the number of redundant memory transactions during the propagation step of LBM. We show that by using a uniform mesh of small three-dimensional tiles and a careful data placement it is possible to utilise more than 70% of maximum theoretical GPU memory bandwidth for D3Q19 lattice and double precision numbers. The performance of our implementation is thoroughly examined and compared with other GPU implementations of LBM. The proposed method performs the best for sparse geometries with good spatial locality.