TL;DR
This paper introduces a data-oriented language approach for implementing the lattice-Boltzmann method, achieving high performance on GPUs for dense and sparse geometries with simplified code.
Contribution
The work presents a novel data-oriented language technique that simplifies complex memory access patterns while maintaining high performance in lattice-Boltzmann simulations.
Findings
Achieved 0.6-0.7 of maximum memory bandwidth on GPU
Performance of over 2.5 and 5.0 GLUPS for double and single precision
Close to state-of-the-art performance for large meshes
Abstract
The performance of lattice-Boltzmann solver implementations usually depends mainly on memory access patterns. Achieving high performance requires then complex code which handles careful data placement and ordering of memory transactions. In this work, we analyse the performance of an implementation based on a new approach called the data-oriented language, which allows the combining of complex memory access patterns with simple source code. As a use case, we present and provide the source code of a solver for D2Q9 lattice and show its performance on GTX Titan Xp GPU for dense and sparse geometries up to 4096 2 nodes. The obtained results are promising, around 1000 lines of code allowed us to achieve performance in the range of 0.6 to 0.7 of maximum theoretical memory bandwidth (over 2.5 and 5.0 GLUPS for double and single precision, respectively) for meshes of size above 1024 2 nodes,…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
