From d2c1c0d73a602b77ae2eac1570e9f95141c0c666 Mon Sep 17 00:00:00 2001 From: Claudius 'keldu' Holeksa Date: Tue, 17 Sep 2024 11:58:24 +0200 Subject: wip --- modules/remote-hip/c++/device.tmpl.hpp | 9 +++------ modules/remote-hip/examples/hip_transfer_data.cpp | 6 ++++++ 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/modules/remote-hip/c++/device.tmpl.hpp b/modules/remote-hip/c++/device.tmpl.hpp index ce8b4ed..2ee991d 100644 --- a/modules/remote-hip/c++/device.tmpl.hpp +++ b/modules/remote-hip/c++/device.tmpl.hpp @@ -32,12 +32,9 @@ struct hip_copy_to_device, Encoding> { static error_or apply(data& from, data** to){ typename native_data_type::type* dat{}; - hipError_t data_malloc_err = hipMalloc(&dat,sizeof(typename native_data_type::type) * from.size()); - hipError_t data_copy_err = hipMemcpy(dat, (from.get_raw_data()),sizeof(typename native_data_type::type) * from.size(), hipMemcpyHostToDevice); - - if(from.size() == 0u){ - // Everything is fine. We just don't want to allocate data which doesn't exist. - return make_void(); + if(from.size() > 0u){ + hipError_t data_malloc_err = hipMalloc(&dat,sizeof(typename native_data_type::type) * from.size()); + hipError_t data_copy_err = hipMemcpy(dat, (from.get_raw_data()),sizeof(typename native_data_type::type) * from.size(), hipMemcpyHostToDevice); } // auto from_dat = &from.at(0); diff --git a/modules/remote-hip/examples/hip_transfer_data.cpp b/modules/remote-hip/examples/hip_transfer_data.cpp index f112c68..2742715 100644 --- a/modules/remote-hip/examples/hip_transfer_data.cpp +++ b/modules/remote-hip/examples/hip_transfer_data.cpp @@ -19,6 +19,12 @@ __global__ void print_array_vals(saw::dataat(i).get(); printf("%d ", v); } + + auto raw_d = val->get_raw_data(); + + for(uint64_t i = 0; i < orig_len; ++i){ + printf("%d ", raw_d[i]); + } printf("\n"); } -- cgit v1.2.3