We present thread-safe, highly-optimized lattice Boltzmann implementations, specifically aimed at exploiting the high memory bandwidth of GPU-based architectures. At variance with standard approaches to LB coding, the proposed strategy, based on the reconstruction of the post-collision distribution via Hermite projection, enforces data locality and avoids the onset of memory dependencies, which may arise during the propagation step, with no need to resort to more complex streaming strategies. The thread-safe lattice Boltzmann achieves peak performances, both in two and three dimensions and it allows to sensibly reduce the allocated memory ( tens of GigaBytes for order billions lattice nodes simulations) by retaining the algorithmic simplicity of standard LB computing. Our findings open attractive prospects for high-performance simulations of complex flows on GPU-based architectures.
翻译:我们提出了线程安全和高度优化的格点玻尔兹曼实现,专门利用基于GPU架构的高内存带宽。与标准LB编码的方法不同,基于Hermite投影的提出的策略,在保证数据局部性的前提下避免了传播步骤中出现的内存数据依赖问题,而无需采用更复杂的流处理策略。线程安全格点玻尔兹曼算法在二维和三维中都实现了最高性能,并且它允许在保留标准LB计算的算法简单性的同时,明显减少分配的内存(对于数十亿个格点模拟而言需要数十GB的内存)。我们的研究为基于GPU的复杂流体模拟提供了有力的支持。