70#if defined(_WIN32) && INTEL_MKL_VERSION == 20260000
83 static sycl::queue &get_queue()
85 auto &be = backend_sycl::get();
89 static mkl_rng::mt19937 &get_rng_engine()
91 auto &be = backend_sycl::get();
92 return be.rng_mt19937_engine_;
95 static mkl_rng::mcg59 &get_rng_mcg59_engine()
97 auto &be = backend_sycl::get();
98 return be.rng_mcg59_engine_;
101 template <
typename SeedT>
102 void set_rng_engines_seed(
const SeedT &seed)
104 mkl_rng::mt19937 rng_eng_mt19937(queue_, seed);
105 mkl_rng::mcg59 rng_eng_mcg59(queue_, seed);
108 rng_mt19937_engine_ = std::move(rng_eng_mt19937);
109 rng_mcg59_engine_ = std::move(rng_eng_mcg59);
112 bool backend_sycl_is_cpu()
const
114 const auto &dev = queue_.get_device();
119 static constexpr std::size_t default_seed = 1;
122 : queue_{sycl::default_selector_v,
124 ? sycl::property_list{sycl::property::queue::
126 : sycl::property_list{}},
127 rng_mt19937_engine_{queue_, default_seed},
128 rng_mcg59_engine_{queue_, default_seed}
137 mkl_rng::mt19937 rng_mt19937_engine_;
138 mkl_rng::mcg59 rng_mcg59_engine_;