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;
112 template <
typename LastT>
117 template <
typename FirstT,
typename... OtherTs>
127 template <
typename DeviceSelector>
129 std::is_invocable_r_v<int, DeviceSelector &, const device &> &&
130 !std::is_base_of_v<ext::oneapi::filter_selector, DeviceSelector> &&
131 !std::is_base_of_v<device_selector, DeviceSelector>>;
144 const std::vector<aspect> &DenyList = {});
146 template <
typename... AspectListT>
148 std::vector<aspect> RequireList;
149 RequireList.reserve(
sizeof...(AspectList));
156 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.
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)
int default_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)