74 static sycl::queue &get_queue()
76 auto &be = backend_sycl::get();
80 static mkl_rng::mt19937 &get_rng_engine()
82 auto &be = backend_sycl::get();
83 return be.rng_mt19937_engine_;
86 static mkl_rng::mcg59 &get_rng_mcg59_engine()
88 auto &be = backend_sycl::get();
89 return be.rng_mcg59_engine_;
92 template <
typename SeedT>
93 void set_rng_engines_seed(
const SeedT &seed)
95 mkl_rng::mt19937 rng_eng_mt19937(queue_, seed);
96 mkl_rng::mcg59 rng_eng_mcg59(queue_, seed);
99 rng_mt19937_engine_ = std::move(rng_eng_mt19937);
100 rng_mcg59_engine_ = std::move(rng_eng_mcg59);
103 bool backend_sycl_is_cpu()
const
105 const auto &dev = queue_.get_device();
110 static constexpr std::size_t default_seed = 1;
113 : queue_{sycl::default_selector_v,
115 ? sycl::property_list{sycl::property::queue::
117 : sycl::property_list{}},
118 rng_mt19937_engine_{queue_, default_seed}, rng_mcg59_engine_{
119 queue_, default_seed}
128 mkl_rng::mt19937 rng_mt19937_engine_;
129 mkl_rng::mcg59 rng_mcg59_engine_;