@@ -58,91 +58,88 @@ namespace mkl_rng = oneapi::mkl::rng;
58
58
* initialization order is undefined. This class postpone initialization of the
59
59
* SYCL queue and mt19937 random number generation engine.
60
60
*/
61
- class backend_sycl
61
+ class backend_sycl
62
62
{
63
63
public:
64
64
~backend_sycl () {}
65
65
66
- static backend_sycl& get ()
66
+ static backend_sycl & get ()
67
67
{
68
68
static backend_sycl backend{};
69
69
return backend;
70
70
}
71
71
72
- static sycl::queue& get_queue ()
72
+ static sycl::queue & get_queue ()
73
73
{
74
74
auto &be = backend_sycl::get ();
75
75
return *(be.queue_ptr );
76
- }
76
+ }
77
77
78
- static mkl_rng::mt19937& get_rng_engine ()
78
+ static mkl_rng::mt19937 & get_rng_engine ()
79
79
{
80
80
auto &be = backend_sycl::get ();
81
81
return *(be.rng_mt19937_engine_ptr );
82
- }
82
+ }
83
83
84
- static mkl_rng::mcg59& get_rng_mcg59_engine ()
84
+ static mkl_rng::mcg59 & get_rng_mcg59_engine ()
85
85
{
86
86
auto &be = backend_sycl::get ();
87
87
return *(be.rng_mcg59_engine_ptr );
88
88
}
89
89
90
90
template <typename SeedT>
91
- void set_rng_engines_seed (const SeedT &seed)
91
+ void set_rng_engines_seed (const SeedT &seed)
92
92
{
93
- auto rng_eng_mt19937 =
93
+ auto rng_eng_mt19937 =
94
94
std::make_shared<mkl_rng::mt19937>(*queue_ptr, seed);
95
95
if (!rng_eng_mt19937) {
96
96
throw std::runtime_error (
97
- " Could not create MT19937 engine with given seed"
98
- );
97
+ " Could not create MT19937 engine with given seed" );
99
98
}
100
- auto rng_eng_mcg59 =
101
- std::make_shared<mkl_rng::mcg59>(*queue_ptr, seed);
99
+ auto rng_eng_mcg59 = std::make_shared<mkl_rng::mcg59>(*queue_ptr, seed);
102
100
if (!rng_eng_mcg59) {
103
101
throw std::runtime_error (
104
- " Could not create MCG59 engine with given seed"
105
- );
102
+ " Could not create MCG59 engine with given seed" );
106
103
}
107
104
108
105
rng_mt19937_engine_ptr.swap (rng_eng_mt19937);
109
106
rng_mcg59_engine_ptr.swap (rng_eng_mcg59);
110
107
}
111
108
112
- bool backend_sycl_is_cpu () const
109
+ bool backend_sycl_is_cpu () const
113
110
{
114
111
const sycl::queue &q = *queue_ptr;
115
112
return q.get_device ().is_cpu ();
116
113
}
117
114
118
115
private:
119
- backend_sycl ()
120
- : queue_ptr{}, rng_mt19937_engine_ptr{}, rng_mcg59_engine_ptr{}
116
+ backend_sycl ()
117
+ : queue_ptr{}, rng_mt19937_engine_ptr{}, rng_mcg59_engine_ptr{}
121
118
{
122
- const sycl::property_list &prop = (is_verbose_mode ()) ?
123
- sycl::property_list{sycl::property::queue::enable_profiling ()}
124
- : sycl::property_list{};
119
+ const sycl::property_list &prop =
120
+ (is_verbose_mode ())
121
+ ? sycl::property_list{sycl::property::queue::enable_profiling ()}
122
+ : sycl::property_list{};
125
123
queue_ptr = std::make_shared<sycl::queue>(sycl::default_selector_v, prop);
126
124
127
125
if (!queue_ptr) {
128
126
throw std::runtime_error (
129
- " Could not create queue for default-selected device"
130
- );
127
+ " Could not create queue for default-selected device" );
131
128
}
132
129
133
130
constexpr std::size_t default_seed = 1 ;
134
- rng_mt19937_engine_ptr = std::make_shared<mkl_rng::mt19937>(*queue_ptr, default_seed);
131
+ rng_mt19937_engine_ptr =
132
+ std::make_shared<mkl_rng::mt19937>(*queue_ptr, default_seed);
135
133
if (!rng_mt19937_engine_ptr) {
136
134
throw std::runtime_error (
137
- " Could not create MT19937 engine"
138
- );
135
+ " Could not create MT19937 engine" );
139
136
}
140
137
141
- rng_mcg59_engine_ptr = std::make_shared<mkl_rng::mcg59>(*queue_ptr, default_seed);
138
+ rng_mcg59_engine_ptr =
139
+ std::make_shared<mkl_rng::mcg59>(*queue_ptr, default_seed);
142
140
if (!rng_mcg59_engine_ptr) {
143
141
throw std::runtime_error (
144
- " Could not create MCG59 engine"
145
- );
142
+ " Could not create MCG59 engine" );
146
143
}
147
144
}
148
145
0 commit comments