15 #include <type_traits>
21 inline namespace _V1 {
28 namespace ext::oneapi {
29 class filter_selector;
58 int operator()(
const device &dev)
const override;
70 int operator()(
const device &dev)
const override;
82 int operator()(
const device &dev)
const override;
94 int operator()(
const device &dev)
const override;
106 int operator()(
const device &dev)
const override;
124 template <
typename LastT>
129 template <
typename FirstT,
typename... OtherTs>
139 template <
typename DeviceSelector>
141 std::is_invocable_r_v<int, DeviceSelector &, const device &> &&
142 !std::is_base_of_v<ext::oneapi::filter_selector, DeviceSelector> &&
143 !std::is_base_of_v<device_selector, DeviceSelector>>;
156 const std::vector<aspect> &DenyList = {});
158 template <
typename... AspectListT>
160 std::vector<aspect> RequireList;
161 RequireList.reserve(
sizeof...(AspectList));
168 template <aspect... AspectList>
The default selector chooses the first available SYCL device.
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.
class __SYCL2020_DEPRECATED("Host device is no longer supported.") host_selector int default_selector_v(const device &dev)
Selects SYCL host device.
void fill_aspect_vector(std::vector< aspect > &V, LastT L)
std::function< int(const sycl::device &)> DSelectorInvocableType
static constexpr int REJECT_DEVICE_SCORE
device select_device(const DSelectorInvocableType &DeviceSelectorInvocable)
device select_device(const DSelectorInvocableType &DeviceSelectorInvocable, const context &SyclContext)
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
int accelerator_selector_v(const device &dev)
signed char __SYCL2020_DEPRECATED
int cpu_selector_v(const device &dev)
detail::DSelectorInvocableType aspect_selector(const std::vector< aspect > &RequireList, const std::vector< aspect > &DenyList={})
int gpu_selector_v(const device &dev)