Generating random numbers: CPU vs GPU, which currently wins?

c++, cuda, hardware, optimization, random

Solution

Some comparisons can be found here: https://developer.nvidia.com/cuRAND

Problem

I've been working on a physics simulations requiring the generation of a large amount of random numbers (at least 10^13 if you want an idea). I've been using the C++11 implementation of the Mersenne twister. I've also read that GPU implementation of this same algorithm are now a part of Cuda libraries and that GPU can be extremely efficient at this task; but I couldn't find explicit numbers or a benchmark comparison. For example compared to an 8 cores i7, are Nvidia cards of the last generations more performant in generating random numbers? If yes, how much and in which price range? I'm thinking that my simulation could gain from having a GPU generating a huge pile of random numbers and the CPU doing the rest.

Original source