Skip to content

Commit b32dd41

Browse files
[SYCL] Make device and platform default to default_selector_v (#6624)
SYCL2020 changes default constructors of device and platform to pick the objects associated with the device returned by default_selector_v rather than the host device. This commit changes these default constructors to adhere to this behaviour. Signed-off-by: Larsen, Steffen <[email protected]>
1 parent c786894 commit b32dd41

16 files changed

+21
-17
lines changed

sycl/include/sycl/device.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ class filter_selector;
4646
/// \ingroup sycl_api
4747
class __SYCL_EXPORT device {
4848
public:
49-
/// Constructs a SYCL device instance as a host device.
49+
/// Constructs a SYCL device instance using the default device.
5050
device();
5151

5252
/// Constructs a SYCL device instance from an OpenCL cl_device_id

sycl/include/sycl/platform.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ class filter_selector;
4444
/// \ingroup sycl_api
4545
class __SYCL_EXPORT platform {
4646
public:
47-
/// Constructs a SYCL platform as a host platform.
47+
/// Constructs a SYCL platform using the default device.
4848
platform();
4949

5050
/// Constructs a SYCL platform instance from an OpenCL cl_platform_id.

sycl/source/detail/context_impl.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,8 @@ uint32_t context_impl::get_info<info::context::reference_count>() const {
140140
}
141141
template <> platform context_impl::get_info<info::context::platform>() const {
142142
if (is_host())
143-
return platform();
143+
return createSyclObjFromImpl<platform>(
144+
platform_impl::getHostPlatformImpl());
144145
return createSyclObjFromImpl<platform>(MPlatform);
145146
}
146147
template <>

sycl/source/detail/device_info.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1135,7 +1135,7 @@ get_device_info_host<info::device::built_in_kernels>() {
11351135
}
11361136

11371137
template <> inline platform get_device_info_host<info::device::platform>() {
1138-
return platform();
1138+
return createSyclObjFromImpl<platform>(platform_impl::getHostPlatformImpl());
11391139
}
11401140

11411141
template <> inline std::string get_device_info_host<info::device::name>() {

sycl/source/detail/platform_impl.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,8 @@ std::vector<platform> platform_impl::get_platforms() {
142142
detail::device_filter_list *FilterList =
143143
detail::SYCLConfig<detail::SYCL_DEVICE_FILTER>::get();
144144
if (!FilterList || FilterList->backendCompatible(backend::host))
145-
Platforms.emplace_back(platform());
145+
Platforms.emplace_back(
146+
createSyclObjFromImpl<platform>(platform_impl::getHostPlatformImpl()));
146147

147148
return Platforms;
148149
}
@@ -240,7 +241,8 @@ platform_impl::get_devices(info::device_type DeviceType) const {
240241
// If SYCL_DEVICE_FILTER is set, check if filter contains host.
241242
device_filter_list *FilterList = SYCLConfig<SYCL_DEVICE_FILTER>::get();
242243
if (!FilterList || FilterList->containsHost()) {
243-
Res.push_back(device());
244+
Res.push_back(
245+
createSyclObjFromImpl<device>(device_impl::getHostDeviceImpl()));
244246
}
245247
}
246248

sycl/source/detail/scheduler/scheduler.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -391,7 +391,8 @@ void Scheduler::deallocateStreamBuffers(stream_impl *Impl) {
391391
}
392392

393393
Scheduler::Scheduler() {
394-
sycl::device HostDevice;
394+
sycl::device HostDevice =
395+
createSyclObjFromImpl<device>(device_impl::getHostDeviceImpl());
395396
sycl::context HostContext{HostDevice};
396397
DefaultHostQueue = QueueImplPtr(
397398
new queue_impl(detail::getSyclObjImpl(HostDevice),

sycl/source/device.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ void force_type(info::device_type &t, const info::device_type &ft) {
2929
}
3030
} // namespace detail
3131

32-
device::device() : impl(detail::device_impl::getHostDeviceImpl()) {}
32+
device::device() : device(default_selector_v) {}
3333

3434
device::device(cl_device_id DeviceId) {
3535
// The implementation constructor takes ownership of the native handle so we

sycl/source/platform.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
namespace sycl {
2020
__SYCL_INLINE_VER_NAMESPACE(_V1) {
2121

22-
platform::platform() : impl(detail::platform_impl::getHostPlatformImpl()) {}
22+
platform::platform() : platform(default_selector_v) {}
2323

2424
platform::platform(cl_platform_id PlatformId) {
2525
impl = detail::platform_impl::getOrMakePlatformImpl(

sycl/unittests/scheduler/CommandsWaitForEvents.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ TEST_F(SchedulerTest, CommandsWaitForEvents) {
9191
std::shared_ptr<detail::event_impl> E2(
9292
new detail::event_impl(TestContext->EventCtx2, Q2.get_context()));
9393

94-
sycl::device HostDevice;
94+
sycl::device HostDevice{host_selector{}};
9595
std::shared_ptr<detail::queue_impl> DefaultHostQueue(new detail::queue_impl(
9696
detail::getSyclObjImpl(HostDevice), /*AsyncHandler=*/{},
9797
/*PropList=*/{}));

sycl/unittests/scheduler/InOrderQueueDeps.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ TEST_F(SchedulerTest, InOrderQueueDeps) {
102102
sycl::detail::QueueImplPtr InOrderQueueImpl =
103103
detail::getSyclObjImpl(InOrderQueue);
104104

105-
device HostDevice;
105+
device HostDevice{host_selector{}};
106106
std::shared_ptr<detail::queue_impl> DefaultHostQueue{
107107
new detail::queue_impl(detail::getSyclObjImpl(HostDevice), {}, {})};
108108

0 commit comments

Comments
 (0)