71 static sycl::queue &get_queue()
73 auto &be = backend_sycl::get();
77 static mkl_rng::mt19937 &get_rng_engine()
79 auto &be = backend_sycl::get();
80 return be.rng_mt19937_engine_;
83 static mkl_rng::mcg59 &get_rng_mcg59_engine()
85 auto &be = backend_sycl::get();
86 return be.rng_mcg59_engine_;
89 template <
typename SeedT>
90 void set_rng_engines_seed(
const SeedT &seed)
92 mkl_rng::mt19937 rng_eng_mt19937(queue_, seed);
93 mkl_rng::mcg59 rng_eng_mcg59(queue_, seed);
96 rng_mt19937_engine_ = std::move(rng_eng_mt19937);
97 rng_mcg59_engine_ = std::move(rng_eng_mcg59);
100 bool backend_sycl_is_cpu()
const
102 const auto &dev = queue_.get_device();
107 static constexpr std::size_t default_seed = 1;
110 : queue_{sycl::default_selector_v,
112 ? sycl::property_list{sycl::property::queue::
114 : sycl::property_list{}},
115 rng_mt19937_engine_{queue_, default_seed}, rng_mcg59_engine_{
116 queue_, default_seed}
125 mkl_rng::mt19937 rng_mt19937_engine_;
126 mkl_rng::mcg59 rng_mcg59_engine_;