From 6d6452b24e15e6291ba5790ede485f59d4ca28b8 Mon Sep 17 00:00:00 2001 From: "Claudius \"keldu\" Holeksa" Date: Fri, 23 Jan 2026 16:39:27 +0100 Subject: Fixed Address boundary issues with different copy approach --- lib/sycl/c++/data.hpp | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'lib/sycl/c++/data.hpp') diff --git a/lib/sycl/c++/data.hpp b/lib/sycl/c++/data.hpp index c6ea281..cffeb38 100644 --- a/lib/sycl/c++/data.hpp +++ b/lib/sycl/c++/data.hpp @@ -33,15 +33,19 @@ public: q_{&q__}, values_{nullptr} { - values_ = acpp::sycl::malloc_device>(ct_multiply::value,*q_); + std::cout<<"Hey: "<::value<>(ct_multiply::value,*q_); + SAW_ASSERT(values_ and q_); } ~data(){ if(not values_){ return; } + SAW_ASSERT(q_); acpp::sycl::free(values_,*q_); + values_ = nullptr; } static constexpr data> get_dims() { @@ -169,7 +173,13 @@ struct sycl_copy_helper, Encode> final { auto host_ptr = host_member_data.flat_data(); auto sycl_ptr = sycl_member_data.flat_data(); - q.memcpy(host_ptr, sycl_ptr, sizeof(std::decay_t) * host_member_data.flat_size().get() ); + static_assert(sizeof(std::decay_t) == sizeof(std::decay_t), "Unequal size"); + + std::cout<(host_data,sycl_data,q); } @@ -192,7 +202,9 @@ struct sycl_copy_helper, Encode> final { auto host_ptr = host_member_data.flat_data(); auto sycl_ptr = sycl_member_data.flat_data(); - q.memcpy(sycl_ptr, host_ptr, sizeof(std::decay_t) * host_member_data.flat_size().get() ); + q.submit([&](acpp::sycl::handler& h){ + h.copy(sycl_ptr,host_ptr, host_member_data.flat_size().get()); + }).wait(); return copy_to_host_member(sycl_data,host_data,q); } -- cgit v1.2.3