  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.
