Expand description

gpu_rand is the Rust CUDA Project’s equivalent of cuRAND. cuRAND unfortunately does not work with the CUDA Driver API, therefore, we reimplement (and extend) some of its algorithms and provide them in this crate.

This crate is meant to be gpu-centric, which means it may special-case certain things to run faster on the GPU by using PTX assembly. However, it is supposed to also work on the CPU, allowing you to reuse the same random states across CPU and GPU.

A lot of the initial code is taken from the rust-random project and modified to make it able to pass to the GPU, as well as cleaning up certain things and updating it to edition 2021. The following generators are implemented:

Modules

Xoroshiro pseudorandom generators, Fast, fairly random, and small-state.

Structs

Default random generator which is good for most applications.

Traits

Methods for float random number generation that are common in GPU/massively parallel applications. Such as uniform or normal f32/64 generation.