Uniform Random Number Generators for GPUs
I've done some work on trying to develop RNGs for GPUs
which take into account the peculiarities of GPU architecture,
rather than trying to adapt existing software ones. So far
this has resulted in:
- MWC64X : A tiny
RNG which can be copied and pasted, is very fast, has great statistical quality. The only
limitation is the period (2^63), but it comes with efficient stream-splitting code, so it is ideal
for anyone who needs a basic RNG, and isn't planning on using multiple GPUs in parallel
or running simulations for hours on end.
- WarpGenerator : An
RNG which uses multiple threads working together to provide an RNG which
is extremely fast and only uses local memory, but has a period of 2^1024 or more so
things like random seeding of multiple GPUs is possible. The tradeoff is that it is a
little more difficult to setup and use (thought not much, and it comes with samples).