31 template <backend BackendName,
class SyclObjectT>
33 -> backend_return_t<BackendName, SyclObjectT>;
37 namespace ext::oneapi {
39 class filter_selector;
56 #ifdef __SYCL_INTERNAL_API
57 explicit platform(cl_platform_id PlatformId);
68 "use SYCL 2020 device selectors instead.")
75 template <typename DeviceSelector,
78 explicit
platform(const DeviceSelector &deviceSelector)
96 #ifdef __SYCL_INTERNAL_API
97 cl_platform_id
get()
const;
105 "use platform::has() function with aspects APIs instead")
111 __SYCL2020_DEPRECATED(
112 "is_host() is deprecated as the host
device is no longer supported.")
113 bool is_host() const;
129 template <typename Param>
130 typename detail::is_platform_info_desc<Param>::return_type get_info() const;
142 backend get_backend() const noexcept;
152 bool has(aspect Aspect) const;
157 context ext_oneapi_get_default_context() const;
162 std::shared_ptr<detail::platform_impl> impl;
163 platform(
std::shared_ptr<detail::platform_impl> impl) : impl(impl) {}
165 platform(
const device &
Device);
172 template <backend BackendName,
class SyclObjectT>
173 friend auto get_native(
const SyclObjectT &Obj)
180 template <>
struct hash<
sycl::platform> {
182 return hash<std::shared_ptr<sycl::detail::platform_impl>>()(
The context class represents a SYCL context on which kernel functions may be executed.
The SYCL device class encapsulates a single SYCL device on which kernels may be executed.
#define __SYCL_INLINE_VER_NAMESPACE(X)
#define __SYCL2020_DEPRECATED(message)
constexpr tuple_element< I, tuple< Types... > >::type & get(sycl::detail::tuple< Types... > &Arg) noexcept
decltype(Obj::impl) getSyclObjImpl(const Obj &SyclObject)
T createSyclObjFromImpl(decltype(T::impl) ImplObj)
device select_device(const DSelectorInvocableType &DeviceSelectorInvocable)
std::enable_if_t< std::is_invocable_r_v< int, DeviceSelector &, const device & > &&!std::is_base_of_v< ext::oneapi::filter_selector, DeviceSelector > &&!std::is_base_of_v< device_selector, DeviceSelector > > EnableIfSYCL2020DeviceSelectorInvocable
bool has_extension(const sycl::platform &SyclPlatform, const std::string &Extension)
auto get_native(const SyclObjectT &Obj) -> backend_return_t< BackendName, SyclObjectT >
typename backend_traits< Backend >::template return_type< SyclType > backend_return_t
---— Error handling, matching OpenCL plugin semantics.
uintptr_t pi_native_handle