Skip to content

Commit 46d10cc

Browse files
committed
Switch to the implementation with queue factories
1 parent a7a26b3 commit 46d10cc

File tree

1 file changed

+19
-8
lines changed

1 file changed

+19
-8
lines changed

include/oneapi/dpl/pstl/hetero/dpcpp/execution_sycl_defs.h

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,20 @@ __get_default_queue()
127127
return __q;
128128
}
129129

130+
inline sycl::queue
131+
__get_gpu_queue()
132+
{
133+
static sycl::queue __q{sycl::gpu_selector_v};
134+
return __q;
135+
}
136+
137+
inline sycl::queue
138+
__get_cpu_queue()
139+
{
140+
static sycl::queue __q{sycl::cpu_selector_v};
141+
return __q;
142+
}
143+
130144
#if _ONEDPL_FPGA_DEVICE
131145
inline sycl::queue
132146
__get_fpga_default_queue()
@@ -171,11 +185,8 @@ class device_policy
171185
}
172186

173187
#if _ONEDPL_PREDEFINED_POLICIES
174-
explicit device_policy(__internal::__global_instance_tag __t)
175-
: __qh(__t, /*factory*/__internal::__get_default_queue) {}
176-
177-
protected:
178-
device_policy(__internal::__global_instance_tag __t, __internal::__queue_factory __f) : __qh(__t, __f) {}
188+
explicit device_policy(__internal::__global_instance_tag __t,
189+
__internal::__queue_factory __f = __internal::__get_default_queue) : __qh(__t, __f) {}
179190
#endif
180191

181192
private:
@@ -226,13 +237,13 @@ inline const fpga_policy<> dpcpp_fpga{__internal::__global_instance_tag{}};
226237
#endif // _ONEDPL_PREDEFINED_POLICIES
227238

228239
template <typename KernelName = DefaultKernelName>
229-
const device_policy<KernelName> dpdefault {sycl::queue{sycl::default_selector_v}};
240+
const device_policy<KernelName> dpdefault {__internal::__global_instance_tag{}};
230241

231242
template <typename KernelName = DefaultKernelName>
232-
const device_policy<KernelName> dpgpu {sycl::queue{sycl::gpu_selector_v}};
243+
const device_policy<KernelName> dpgpu {__internal::__global_instance_tag{}, __internal::__get_gpu_queue};
233244

234245
template <typename KernelName = DefaultKernelName>
235-
const device_policy<KernelName> dpcpu {sycl::queue{sycl::cpu_selector_v}};
246+
const device_policy<KernelName> dpcpu {__internal::__global_instance_tag{}, __internal::__get_cpu_queue};
236247

237248
// make_policy functions
238249
template <typename KernelName = DefaultKernelName>

0 commit comments

Comments
 (0)