cuRAND also provides two flexible interfaces, allowing you to generate random numbers in bulk from host code running on the CPU or from within your CUDA functions/kernels running on the GPU. A variety of RNG algorithms and distribution options means you can select the best solution for your needs.
cuRAND Key Features
- Flexible usage model
- Host API for generating random numbers in bulk on the GPU
- Inline implementation allows use inside GPU functions/kernels, or in your host code
- Four high-quality RNG algorithms
- MTGP Merseinne Twister
- XORWOW pseudo-random generation
- Sobol’ quasi-random number generators, including support for scrambled and 64-bit RNG
- Multiple RNG distribution options
- Uniform distribution
- Normal distribution
- Log-normal distribution
- Single-precision or double-precision
- Poisson distribution
The random number generators and statistical distributions provided in the cuRAND library have been tested against well-known statistical test batteries, including TestUO1. Please see the cuRAND documentation for selected test results.
The cuRAND library is freely available as part of the NVIDIA HPC SDK. It is also included with the CUDA Toolkit.
For more information on cuRAND and other CUDA math libraries: