Effektiv parallell slumptalsgenerering på GPU:er

Loading...
Thumbnail Image

Date

Type

Examensarbete för kandidatexamen
Bachelor Thesis

Model builders

Journal Title

Journal ISSN

Volume Title

Publisher

Abstract

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.

Description

Keywords

Sannolikhetsteori och statistik, Data- och informationsvetenskap, Probability Theory and Statistics, Computer and Information Science

Citation

Architect

Location

Type of building

Build Year

Model type

Scale

Material / technology

Index

Collections

Endorsement

Review

Supplemented By

Referenced By