38 return queue_.get_device().get_info<sycl::info::device::name>();
45 return queue_.get_device().get_info<sycl::info::device::global_mem_size>();
55 return queue_.get_device().has(sycl::aspect::fp64);
66 void* pointer = sycl::malloc_shared(size_bytes, queue_);
67 if (pointer ==
nullptr) {
68 throw std::runtime_error(
"SYCLGPUDeviceBackendImpl: sycl::malloc_shared failed for " +
69 std::to_string(size_bytes) +
" bytes");
78 sycl::free(pointer, queue_);
88 queue_.wait_and_throw();
101 const sycl::queue&
queue()
const override {
112 return std::make_shared<SYCLGPUDeviceBackendImpl>();
sycl::queue & queue() override
void * allocate_unified(size_t size_bytes) override
size_t total_memory_bytes() const override
const sycl::queue & queue() const override
void deallocate(void *pointer) override
SYCLGPUDeviceBackendImpl()
void synchronize() override
std::string device_name() const override
bool supports_double_precision() const override
std::shared_ptr< GPUDeviceBackend > create_gpu_device_backend()