Bauer M, Rüde U (2017)
Publication Language: English
Publication Type: Conference contribution, Abstract of lecture
Publication year: 2017
A wide variety of moment-based lattice Boltzmann methods exist, which differ intheir choice of moments, their orthogonalization approach and their equilibriummoments. Also for the implementation and optimization of these methodsdifferent options exist: One can choose between multiple memory layouts andupdate schemes (fused stream-collide on two arrays, AABB pattern, esoterictwist) as well as from various, often hardware dependent optimization techniques. It is hardly feasible to manually develop optimized LBM computekernels for all these combinations.To overcome this limitation, we present a code generation approach for lattice Boltzmann methods where the LBM is specified symbolically in a domain-specific language (DSL). This DSL allows the formulation of arbitrary multi relaxation time models by choosing a stencil and a set of moments together withtheir relaxation rates and equilibrium values. On this symbolic representationwe apply a set of, potentially hardware-dependent transformations to simplifyand optimize the formulation of the method. These transformations can e.g.reduce the number of floating point operations by eliminating common subexpressions, reorder loops, add shared memory parallelization or introduce hardware specific optimizations like non-temporal stores. Backends generate optimized C++ or CUDA code from this transformed representation. Since wecan choose the domain size and relaxation rates before compilation and thususe this knowledge during the optimization and compilation steps, our generated kernels achieve higher performance than handcrafted, generic implementations. For distributed memory parallelization the generated kernels areintegrated in the block-structured LBM framework waLBerla.
Bauer, M., & Rüde, U. (2017). Automatic Generation of Efficient Lattice Boltzmann Kernels. Paper presentation at 26th International Conference on Discrete Simulation of Fluid Dynamics, Erlangen, DE.
Bauer, Martin, and Ulrich Rüde. "Automatic Generation of Efficient Lattice Boltzmann Kernels." Presented at 26th International Conference on Discrete Simulation of Fluid Dynamics, Erlangen 2017.