28#ifdef BUILD_SYCL_MODULE
30#if defined(SYCL_LANGUAGE_VERSION)
31#include <sycl/sycl.hpp>
75#ifdef BUILD_SYCL_MODULE
82 SYCLContext(SYCLContext
const&) =
delete;
83 void operator=(SYCLContext
const&) =
delete;
87 static SYCLContext& GetInstance();
99 sycl::queue GetDefaultQueue(
const Device& device);
103 SYCLDevice GetDeviceProperties(
const Device& device);
110#if defined(SYCL_LANGUAGE_VERSION)
116 size_t GetComputeUnits(
const sycl::device&
sycl_device);
124 std::unique_ptr<Impl> impl_;
127#if defined(SYCL_LANGUAGE_VERSION)
135sycl::queue
GetQueue(
const Device& device);
149class SYCLScopedQueue {
151 SYCLScopedQueue(
const Device& device, sycl::queue
queue);
154 SYCLScopedQueue(
const SYCLScopedQueue&) =
delete;
155 SYCLScopedQueue& operator=(
const SYCLScopedQueue&) =
delete;
162 std::optional<sycl::queue> prev_queue_;
sycl::device sycl_device
Definition SYCLContext.cpp:87
sycl::queue queue
Definition SYCLContext.cpp:88
std::vector< Device > GetAvailableSYCLDevices()
Return a list of available SYCL devices.
Definition SYCLUtils.cpp:179
sycl::queue GetQueue(const Device &device)
Definition SYCLContext.cpp:183
bool IsAvailable()
Returns true if there is at least one SYCL device available.
Definition SYCLUtils.cpp:148
bool IsDeviceAvailable(const Device &device)
Returns true if the specified SYCL device is available.
Definition SYCLUtils.cpp:156
Definition PinholeCameraIntrinsic.cpp:16
Cached SYCL device properties (no SYCL runtime types in this struct).
Definition SYCLContext.h:44
uint64_t global_mem_size
Definition SYCLContext.h:54
std::string device_type
cpu, gpu, host, acc, custom, unknown.
Definition SYCLContext.h:46
std::vector< size_t > sub_group_sizes
Definition SYCLContext.h:65
size_t compute_units
Definition SYCLContext.h:61
bool SupportsSubgroupSize(size_t size) const
Definition SYCLContext.h:69
std::string name
Friendly / descriptive name of the device.
Definition SYCLContext.h:45
bool discrete_gpu
Definition SYCLContext.h:53
bool usm_device_allocations
Definition SYCLContext.h:49
uint64_t local_mem_size
Local (SLM/shared) memory size in bytes available per work-group.
Definition SYCLContext.h:56
size_t max_work_group_size
Device max work-group size.
Definition SYCLContext.h:47
bool fp64
Native fp64; else may need emulation on some GPUs.
Definition SYCLContext.h:48