Skip to main content

Crate oxicuda_rand

Crate oxicuda_rand 

Source
Expand description

§OxiCUDA Rand – GPU-Accelerated Random Number Generation

This crate provides GPU-accelerated random number generation, serving as a pure Rust equivalent to NVIDIA’s cuRAND library. It supports multiple RNG engines (Philox, XORWOW, MRG32k3a), various distributions (uniform, normal, log-normal, Poisson), and quasi-random sequences (Sobol).

§Engines

  • Philox-4x32-10 – Counter-based PRNG, the cuRAND default.
  • XORWOW – XORshift with Weyl sequence, fast and suitable for most Monte Carlo workloads.
  • MRG32k3a – Combined multiple recursive generator with the highest statistical quality.

§Distributions

  • Uniform [0, 1) in f32/f64
  • Normal (Gaussian) via Box-Muller transform
  • Log-normal via exponentiation of normals
  • Poisson (Knuth for small lambda, normal approximation for large lambda)

§Quasi-random

  • Sobol sequences for low-discrepancy sampling in Monte Carlo integration

Re-exports§

pub use error::RandError;
pub use error::RandResult;
pub use generator::RngEngine;
pub use generator::RngGenerator;
pub use graph_gen::AdjacencyList;
pub use graph_gen::BarabasiAlbertGenerator;
pub use graph_gen::ErdosRenyiGenerator;
pub use graph_gen::GraphStats;
pub use graph_gen::GraphType;
pub use graph_gen::RandomRegularGenerator;
pub use graph_gen::StochasticBlockModelGenerator;
pub use graph_gen::WattsStrogatzGenerator;
pub use matrix_gen::CorrelationMatrixGenerator;
pub use matrix_gen::GaussianMatrixGenerator;
pub use matrix_gen::MatrixLayout;
pub use matrix_gen::OrthogonalMatrixGenerator;
pub use matrix_gen::RandomMatrix;
pub use matrix_gen::SymmetricPositiveDefiniteGenerator;
pub use matrix_gen::WishartGenerator;
pub use monte_carlo::BlackScholesParams;
pub use monte_carlo::HamiltonianMC;
pub use monte_carlo::McmcResult;
pub use monte_carlo::MetropolisHastings;
pub use monte_carlo::MonteCarloConfig;
pub use monte_carlo::MonteCarloResult;
pub use monte_carlo::SamplerState;
pub use quasi::HaltonGenerator;
pub use quasi::LatinHypercubeSampler;
pub use quasi::ScrambledSobolGenerator;
pub use quasi::SobolGenerator;

Modules§

distributions
Distribution transform utilities for GPU random number generation.
engines
RNG engine implementations.
error
Error types for OxiCUDA Rand operations.
generator
High-level RNG generator wrapping engine PTX generators.
graph_gen
Random graph generation for GNN workloads and network analysis.
matrix_gen
Random matrix generation for statistical applications.
monte_carlo
Monte Carlo simulation primitives.
prelude
Prelude for convenient imports.
quasi
Quasi-random number generation for Monte Carlo methods.
statistical_tests
Statistical quality tests for OxiCUDA random number generators.