#pragma once #include "common.hpp" namespace saw { /** * Represents a remote Sycl device. */ template<> class device final { private: cl::sycl::queue cmd_queue_; public: device() = default; SAW_FORBID_COPY(device); SAW_FORBID_MOVE(device); /** * Copy data to device */ template error_or> copy_to_device(const data& host_data){ return data{host_data}; } /** * Copy data to host */ template error_or> copy_to_host(const data& dev_data){ return {}; } /** * Get a reference to the handle */ cl::sycl::queue& get_handle(){ return cmd_queue_; } }; }