Data Parallel C++ supports several types of devices:
All Data Parallel C++ routines of Intel® oneMKL RNG support at least the Host and CPU devices. GPU devices are supported for the following engines:
GPU devices are supported for the following distributions:
Distributions with Host, CPU, and GPU Device Support
Statistics | Precision | Method |
---|---|---|
mkl::rng::bernoulli |
std::int32_t std::uint32_t |
mkl::rng::bernoulli_method::icdf |
mkl::rng::bits |
std::uint32_t |
|
mkl::rng::exponential |
float double |
mkl::rng::exponential_method::icdf mkl::rng::exponential_method::icdf_accurate |
mkl::rng::cauchy |
float double |
mkl::rng::cauchy_method::icdf |
mkl::rng::gumbel |
float double |
mkl::rng::gumbel_method::icdf |
mkl::rng::gaussian |
float double |
mkl::rng::gaussian_method::box_muller mkl::rng::gaussian_method::box_muller2 mkl::rng::gaussian_method::icdf |
mkl::rng::geometric |
std::int32_t std::uint32_t |
mkl::rng::geometric_method::icdf |
mkl::rng::laplace |
float double |
mkl::rng::laplace_method::icdf |
mkl::rng::lognormal |
float double |
mkl::rng::lognormal_method::box_muller2 mkl::rng::lognormal_method::icdf mkl::rng::lognormal_method::box_muller2_accurate mkl::rng::lognormal_method::icdf_accurate |
mkl::rng::poisson |
std::int32_t std::uint32_t |
mkl:rng::poisson_method::gaussian_icdf_based |
mkl::rng::rayleigh |
float double |
mkl::rng::rayleigh_method::icdf mkl::rng::rayleigh_method::icdf_accurate |
mkl::rng::uniform |
float double std::int32_t |
mkl::rng::uniform_method::standard mkl::rng::uniform_method::standard_accurate |
mkl::rng::uniform_bits |
std::uint32_t std::uint64_t |
|
mkl::rng::weibull |
float double |
mkl::rng::weibull_method::icdf mkl::rng::weibull_method::icdf_accurate |
Refer to Engines (Basic Random Number Generators) and Distribution Generators for more detailed descriptions of each routine.