From 595cdfd51594af7cee4258a1ed92b06c6bf0171d Mon Sep 17 00:00:00 2001 From: "Claudius \"keldu\" Holeksa" Date: Wed, 11 Feb 2026 17:27:59 +0100 Subject: Fixing --- lib/sycl/c++/data.hpp | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) (limited to 'lib/sycl/c++') diff --git a/lib/sycl/c++/data.hpp b/lib/sycl/c++/data.hpp index 10c500d..50adb4f 100644 --- a/lib/sycl/c++/data.hpp +++ b/lib/sycl/c++/data.hpp @@ -80,6 +80,10 @@ public: values_{nullptr} {} + data(data, kel::lbm::encode::Sycl>& values__): + values_{&values__.at({})} + {} + data(data* values__): values_{values__} {} @@ -343,6 +347,36 @@ struct sycl_copy_helper, Encode> final { } }; +template +struct sycl_copy_helper, Encode> final { + using Schema = sch::FixedArray; + + static saw::error_or copy_to_host(saw::data>& sycl_data, saw::data& host_data, sycl::queue& q){ + auto host_ptr = host_data.flat_data(); + auto sycl_ptr = sycl_data.flat_data(); + + static_assert(sizeof(std::decay_t) == sizeof(std::decay_t), "Unequal size"); + + q.submit([&](acpp::sycl::handler& h){ + h.copy(sycl_ptr,host_ptr, saw::ct_multiply::value); + }).wait(); + return saw::make_void(); + } + + static saw::error_or copy_to_device(saw::data& host_data, saw::data>& sycl_data, sycl::queue& q){ + auto host_ptr = host_data.flat_data(); + auto sycl_ptr = sycl_data.flat_data(); + + static_assert(sizeof(std::decay_t) == sizeof(std::decay_t), "Unequal size"); + + q.submit([&](acpp::sycl::handler& h){ + h.copy(host_ptr,sycl_ptr, saw::ct_multiply::value); + }).wait(); + return saw::make_void(); + } +}; + + template struct make_chunk_struct_view_helper; -- cgit v1.2.3