The SYCL device class encapsulates a single SYCL device on which kernels may be executed. More...
#include <CL/sycl/device.hpp>
Public Member Functions | |
device () | |
Constructs a SYCL device instance as a host device. More... | |
device (const device_selector &DeviceSelector) | |
Constructs a SYCL device instance from an OpenCL cl_device_id in accordance with the requirements described in 4.3.1. More... | |
bool | operator== (const device &rhs) const |
bool | operator!= (const device &rhs) const |
device (const device &rhs)=default | |
device (device &&rhs)=default | |
device & | operator= (const device &rhs)=default |
device & | operator= (device &&rhs)=default |
bool | is_host () const |
Get instance of device. More... | |
bool | is_cpu () const |
Check if device is a CPU device. More... | |
bool | is_gpu () const |
Check if device is a GPU device. More... | |
bool | is_accelerator () const |
Check if device is an accelerator device. More... | |
platform | get_platform () const |
Get associated SYCL platform. More... | |
template<info::partition_property prop> | |
std::vector< device > | create_sub_devices (size_t ComputeUnits) const |
Partition device into sub devices. More... | |
template<info::partition_property prop> | |
std::vector< device > | create_sub_devices (const std::vector< size_t > &Counts) const |
Partition device into sub devices. More... | |
template<info::partition_property prop> | |
std::vector< device > | create_sub_devices (info::partition_affinity_domain AffinityDomain) const |
Partition device into sub devices. More... | |
template<info::device param> | |
info::param_traits< info::device, param >::return_type | get_info () const |
Queries this SYCL device for information requested by the template parameter param. More... | |
bool | has_extension (const std::string &extension_name) const |
Check SYCL extension support by device. More... | |
backend | get_backend () const noexcept |
Returns the backend associated with this device. More... | |
template<backend Backend> | |
backend_return_t< Backend, device > | get_native () const |
Gets the native handle of the SYCL device. More... | |
bool | has (aspect Aspect) const |
Indicates if the SYCL device has the given feature. More... | |
Static Public Member Functions | |
static std::vector< device > | get_devices (info::device_type deviceType=info::device_type::all) |
Query available SYCL devices. More... | |
Friends | |
template<class T > | |
detail::add_pointer_t< typename decltype(T::impl)::element_type > | detail::getRawSyclObjImpl (const T &SyclObject) |
template<class T > | |
T | detail::createSyclObjFromImpl (decltype(T::impl) ImplObj) |
auto | detail::getDeviceComparisonLambda () |
The SYCL device class encapsulates a single SYCL device on which kernels may be executed.
Definition at line 36 of file device.hpp.
cl::sycl::device::device | ( | ) |
Constructs a SYCL device instance as a host device.
Definition at line 32 of file device.cpp.
|
explicit |
Constructs a SYCL device instance from an OpenCL cl_device_id in accordance with the requirements described in 4.3.1.
DeviceId | is OpenCL device represented with cl_device_id Constructs a SYCL device instance using the device selected by the DeviceSelector provided. |
DeviceSelector | SYCL device selector to be used (see 4.6.1.1). |
Definition at line 47 of file device.cpp.
References cl::sycl::device_selector::select_device().
|
default |
|
default |
std::vector< device > cl::sycl::device::create_sub_devices | ( | const std::vector< size_t > & | Counts | ) | const |
Partition device into sub devices.
Available only when prop is info::partition_property::partition_by_counts. If this SYCL device does not support info::partition_property::partition_by_counts a feature_not_supported exception must be thrown.
Counts | is a std::vector of desired compute units in sub devices. |
Definition at line 123 of file device.cpp.
std::vector< device > cl::sycl::device::create_sub_devices | ( | info::partition_affinity_domain | AffinityDomain | ) | const |
Partition device into sub devices.
Available only when prop is info::partition_property::partition_by_affinity_domain. If this SYCL device does not support info::partition_property::partition_by_affinity_domain or the SYCL device does not support info::affinity_domain provided a feature_not_supported exception must be thrown.
AffinityDomain | is one of the values described in Table 4.20 of SYCL Spec |
Definition at line 132 of file device.cpp.
std::vector< device > cl::sycl::device::create_sub_devices | ( | size_t | ComputeUnits | ) | const |
Partition device into sub devices.
Available only when prop is info::partition_property::partition_equally. If this SYCL device does not support info::partition_property::partition_equally a feature_not_supported exception must be thrown.
ComputeUnits | is a desired count of compute units in each sub device. |
Definition at line 113 of file device.cpp.
|
noexcept |
Returns the backend associated with this device.
Definition at line 159 of file device.cpp.
References cl::sycl::detail::getImplBackend().
|
static |
Query available SYCL devices.
The returned std::vector must contain a single SYCL device that is a host device, permitted by the deviceType parameter
deviceType | is one of the values described in A.3 of SYCL Spec |
Definition at line 51 of file device.cpp.
References cl::sycl::info::all, cl::sycl::detail::device_filter_list::backendCompatible(), cl::sycl::detail::device_filter_list::containsHost(), cl::sycl::detail::force_type(), cl::sycl::detail::SYCLConfig< Config >::get(), cl::sycl::detail::get_forced_type(), cl::sycl::platform::get_platforms(), cl::sycl::info::host, and cl::sycl::detail::match_types().
Referenced by cl::sycl::ext::oneapi::detail::filter_selector_impl::filter_selector_impl().
info::param_traits< info::device, param >::return_type cl::sycl::device::get_info |
Queries this SYCL device for information requested by the template parameter param.
Specializations of info::param_traits must be defined in accordance with the info parameters in Table 4.20 of SYCL Spec to facilitate returning the type associated with the param parameter.
Definition at line 147 of file device.cpp.
Referenced by cl::sycl::ext::oneapi::detail::filter_selector_impl::operator()(), cl::sycl::default_selector::operator()(), cl::sycl::ext::oneapi::detail::reduGetMaxNumConcurrentWorkGroups(), cl::sycl::ext::oneapi::detail::reduGetMaxWGSize(), and cl::sycl::device_selector::select_device().
|
inline |
Gets the native handle of the SYCL device.
Definition at line 192 of file device.hpp.
platform cl::sycl::device::get_platform | ( | ) | const |
Get associated SYCL platform.
If this SYCL device is an OpenCL device then the SYCL platform must encapsulate the OpenCL cl_plaform_id associated with the underlying OpenCL cl_device_id of this SYCL device. If this SYCL device is a host device then the SYCL platform must be a host platform. The value returned must be equal to that returned by get_info<info::device::platform>().
Definition at line 110 of file device.cpp.
Referenced by cl::sycl::context::context(), cl::sycl::ext::intel::platform_selector::operator()(), and cl::sycl::platform::platform().
bool cl::sycl::device::has | ( | aspect | Aspect | ) | const |
Indicates if the SYCL device has the given feature.
Aspect | is one of the values in Table 4.20 of the SYCL 2020 Provisional Spec. |
Definition at line 163 of file device.cpp.
Referenced by cl::sycl::handler::parallel_for().
bool cl::sycl::device::has_extension | ( | const std::string & | extension_name | ) | const |
Check SYCL extension support by device.
extension_name | is a name of queried extension. |
Definition at line 141 of file device.cpp.
bool cl::sycl::device::is_accelerator | ( | ) | const |
Check if device is an accelerator device.
Definition at line 108 of file device.cpp.
Referenced by cl::sycl::default_selector::operator()(), and cl::sycl::accelerator_selector::operator()().
bool cl::sycl::device::is_cpu | ( | ) | const |
Check if device is a CPU device.
Definition at line 104 of file device.cpp.
Referenced by cl::sycl::default_selector::operator()(), and cl::sycl::cpu_selector::operator()().
bool cl::sycl::device::is_gpu | ( | ) | const |
Check if device is a GPU device.
Definition at line 106 of file device.cpp.
Referenced by cl::sycl::default_selector::operator()(), cl::sycl::gpu_selector::operator()(), and cl::sycl::ext::oneapi::detail::reduGetMaxNumConcurrentWorkGroups().
bool cl::sycl::device::is_host | ( | ) | const |
Get instance of device.
Definition at line 102 of file device.cpp.
Referenced by cl::sycl::ext::oneapi::detail::filter_selector_impl::operator()(), cl::sycl::default_selector::operator()(), and cl::sycl::host_selector::operator()().
|
inline |
Definition at line 57 of file device.hpp.
|
inline |
Definition at line 55 of file device.hpp.
|
friend |
|
friend |
|
friend |