In English

Effektiv parallell slumptalsgenerering på GPU:er

Efficient parallel random number generation on GPU:s

Marcus Lundberg ; Jakob Aasa
Göteborg : Chalmers tekniska högskola, 2017. 54 s.
[Examensarbete för kandidatexamen]

This work compares several popular pseudo-random number generators implemented on a graphics processing unit (GPU). We consider generation for both uniform and normal distributions. The generators have also been tested using a selection of test algorithms to assess the quality of the output. As a final verification the generators have been tested in-situ on a simulation code. We chose to implement and test five different algorithms for generating uniform distributed numbers and three for generating normal distributed numbers. The generators were implemented with an object oriented programming approach in C++ using Nvidia’s CUDA framework. We have also included generators from Nvidia’s own random number generator library, cuRAND, to compare with our own. The test algorithms were implemented in C++ and CUDA as well. Our results show that some algorithms are not suited for use on GPUs, while other more GPU customized algorithms perform admirably. The results from the simulation code show that all of the generators except Wallace provide good output. The running time of the simulation code is about 100 to 250 times faster on the GPU depending on implementation compared to CPU. From our results we can recommend the Linear Congruental Generator (LCG) for generating uniform numbers if perfomance is a priority, and combining it with the Box-Muller Transform for generating normal distributed numbers.

Nyckelord: gpu, prng, lcg, wallacegenerator, boxmuller, mtgp.

Publikationen registrerades 2017-06-26. Den ändrades senast 2017-06-26

CPL ID: 250107

Detta är en tjänst från Chalmers bibliotek