.. _random-number-generators-device-routines: Random Number Generators Device Routines ======================================== The main purpose of Device routines is to make them callable from your DPC++ kernels; however, there are no limitations to be called from the Host. For example: .. code-block:: sycl::queue queue; queue.submit([&](sycl::handler& cgh) { cgh.parallel_for(range,[=](…) { mkl::rng::device::routine(...); // calling routine from user’s kernel code }); }); mkl::rng::device::routine(...); // calling routine from host **RNG Device APIs Structure** .. figure:: /_figures/rng-device-api-structure.png :scale: 100% :align: center :alt: RNG Device API Structure RNG Device API Structure .. toctree:: :maxdepth: 1 :hidden: intel-onemkl-rng-device-usage-model device-generate-routines device-engines-basic-random-number-generators host-side-helpers device-service-routines device-distributions