File tree Expand file tree Collapse file tree 8 files changed +46
-5
lines changed Expand file tree Collapse file tree 8 files changed +46
-5
lines changed Original file line number Diff line number Diff line change @@ -208,6 +208,11 @@ class __SYCL_EXPORT platform : public detail::OwnerLessBase<platform> {
208208
209209 std::vector<device> ext_oneapi_get_composite_devices () const ;
210210
211+ // / Returns a copy of the default context object for this platform.
212+ // /
213+ // / \return the default context
214+ context khr_get_default_context () const ;
215+
211216private:
212217 ur_native_handle_t getNative () const ;
213218
Original file line number Diff line number Diff line change @@ -85,7 +85,7 @@ class queue_impl {
8585 context{createSyclObjFromImpl<device>(Device), {}, {}});
8686
8787 ContextImplPtr DefaultContext = detail::getSyclObjImpl (
88- Device->get_platform ().ext_oneapi_get_default_context ());
88+ Device->get_platform ().khr_get_default_context ());
8989 if (DefaultContext->isDeviceValid (Device))
9090 return DefaultContext;
9191 return detail::getSyclObjImpl (
Original file line number Diff line number Diff line change @@ -117,6 +117,7 @@ inline namespace _V1 {
117117#define SYCL_KHR_FREE_FUNCTION_COMMANDS 1
118118// In progress yet
119119#define SYCL_EXT_ONEAPI_ATOMIC16 0
120+ #define SYCL_KHR_DEFAULT_CONTEXT 1
120121
121122#ifndef __has_include
122123#define __has_include (x ) 0
Original file line number Diff line number Diff line change @@ -87,10 +87,7 @@ platform::get_backend_info() const {
8787
8888#undef __SYCL_PARAM_TRAITS_SPEC
8989
90- context platform::ext_oneapi_get_default_context () const {
91- if (!detail::SYCLConfig<detail::SYCL_ENABLE_DEFAULT_CONTEXTS>::get ())
92- throw std::runtime_error (" SYCL default contexts are not enabled" );
93-
90+ context platform::khr_get_default_context () const {
9491 // Keeping the default context for platforms in the global cache to avoid
9592 // shared_ptr based circular dependency between platform and context classes
9693 std::unordered_map<detail::PlatformImplPtr, detail::ContextImplPtr>
@@ -109,6 +106,13 @@ context platform::ext_oneapi_get_default_context() const {
109106 return detail::createSyclObjFromImpl<context>(It->second );
110107}
111108
109+ context platform::ext_oneapi_get_default_context () const {
110+ if (!detail::SYCLConfig<detail::SYCL_ENABLE_DEFAULT_CONTEXTS>::get ())
111+ throw std::runtime_error (" SYCL default contexts are not enabled" );
112+
113+ return khr_get_default_context ();
114+ }
115+
112116std::vector<device> platform::ext_oneapi_get_composite_devices () const {
113117 // Only GPU architectures can be composite devices.
114118 auto GPUDevices = get_devices (info::device_type::gpu);
Original file line number Diff line number Diff line change 1+ // RUN: %{build} -o %t.out
2+ // RUN: %{run} %t.out
3+
4+ // Test checks that the default context contains all of the root devices that
5+ // are associated with this platform.
6+
7+ #include < algorithm>
8+ #include < sycl/detail/core.hpp>
9+
10+ using namespace sycl ;
11+
12+ int main () {
13+ auto platforms = platform::get_platforms ();
14+
15+ for (const auto &plt : platforms) {
16+ auto def_ctx_devs = plt.khr_get_default_context ().get_devices ();
17+ auto root_devs = plt.get_devices ();
18+
19+ for (const auto &dev : root_devs)
20+ if (std::find (def_ctx_devs.begin (), def_ctx_devs.end (), dev) ==
21+ def_ctx_devs.end ())
22+ return 1 ;
23+ }
24+
25+ return 0 ;
26+ }
Original file line number Diff line number Diff line change @@ -4025,6 +4025,7 @@ _ZNK4sycl3_V18platform13has_extensionENS0_6detail11string_viewE
40254025_ZNK4sycl3_V18platform16get_backend_infoINS0_4info6device15backend_versionEEENS0_6detail20is_backend_info_descIT_E11return_typeEv
40264026_ZNK4sycl3_V18platform16get_backend_infoINS0_4info6device7versionEEENS0_6detail20is_backend_info_descIT_E11return_typeEv
40274027_ZNK4sycl3_V18platform16get_backend_infoINS0_4info8platform7versionEEENS0_6detail20is_backend_info_descIT_E11return_typeEv
4028+ _ZNK4sycl3_V18platform23khr_get_default_contextEv
40284029_ZNK4sycl3_V18platform30ext_oneapi_get_default_contextEv
40294030_ZNK4sycl3_V18platform32ext_oneapi_get_composite_devicesEv
40304031_ZNK4sycl3_V18platform3getEv
Original file line number Diff line number Diff line change 38723872?ext_oneapi_get_backend_content_view_impl@device_image_plain@detail@_V1@sycl@@IEBA?AU?$pair@PEBW4byte@std@@PEBW412@@std@@XZ
38733873?ext_oneapi_get_composite_devices@platform@_V1@sycl@@QEBA?AV?$vector@Vdevice@_V1@sycl@@V?$allocator@Vdevice@_V1@sycl@@@std@@@std@@XZ
38743874?ext_oneapi_get_default_context@platform@_V1@sycl@@QEBA?AVcontext@23@XZ
3875+ ?khr_get_default_context@platform@_V1@sycl@@QEBA?AVcontext@23@XZ
38753876?ext_oneapi_get_graph@queue@_V1@sycl@@QEBA?AV?$command_graph@$0A@@experimental@oneapi@ext@23@XZ
38763877?ext_oneapi_get_kernel@kernel_bundle_plain@detail@_V1@sycl@@AEAA?AVkernel@34@Vstring_view@234@@Z
38773878?ext_oneapi_get_kernel@kernel_bundle_plain@detail@_V1@sycl@@QEAA?AVkernel@34@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z
Original file line number Diff line number Diff line change @@ -36,6 +36,9 @@ void test_default_context_enabled() {
3636
3737 ASSERT_EQ (Dev1.get_platform ().ext_oneapi_get_default_context (),
3838 Dev2.get_platform ().ext_oneapi_get_default_context ());
39+
40+ ASSERT_EQ (Dev1.get_platform ().khr_get_default_context (),
41+ Dev2.get_platform ().khr_get_default_context ());
3942}
4043
4144void test_default_context_disabled () {
You can’t perform that action at this time.
0 commit comments