  High-performance streams of (pseudo) random numbers are crucial for the
efficient implementation for countless stochastic algorithms, most importantly,
Monte Carlo simulations and molecular dynamics simulations with stochastic
thermostats. A number of implementations of random number generators has been
discussed for GPU platforms before and some generators are even included in the
CUDA supporting libraries. Nevertheless, not all of these generators are well
suited for highly parallel applications where each thread requires its own
generator instance. For this specific situation encountered, for instance, in
simulations of lattice models, most of the high-quality generators with large
states such as Mersenne twister cannot be used efficiently without substantial
changes. We provide a broad review of existing CUDA variants of random-number
generators and present the CUDA implementation of a new massively parallel
high-quality, high-performance generator with a small memory load overhead.

Computational Physics;Statistical Mechanics;High Energy Physics - Lattice