Device Support

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.