From 1d578450dc82843bd4b24f3a6aad2c1a82bbda5e Mon Sep 17 00:00:00 2001 From: Claudius 'keldu' Holeksa Date: Tue, 17 Sep 2024 11:21:05 +0200 Subject: Managed to get hip to compile --- modules/remote-hip/examples/hip_transfer_data.cpp | 75 ++++++++++++++++------- 1 file changed, 54 insertions(+), 21 deletions(-) (limited to 'modules/remote-hip/examples/hip_transfer_data.cpp') diff --git a/modules/remote-hip/examples/hip_transfer_data.cpp b/modules/remote-hip/examples/hip_transfer_data.cpp index 18c82df..3f02d87 100644 --- a/modules/remote-hip/examples/hip_transfer_data.cpp +++ b/modules/remote-hip/examples/hip_transfer_data.cpp @@ -1,20 +1,22 @@ +#include + #include "../c++/remote.hpp" #include "../c++/transfer.hpp" #include -__global__ void print_value(saw::data* val){ +__global__ void print_value(saw::data* val){ int v = val->get(); printf("Hello world: %d\n", v); } -__global__ void print_array_vals(saw::data* val){ +__global__ void print_array_vals(saw::data, saw::encode::NativeRaw>* val){ uint64_t orig_len = val->size(); long len = (long) orig_len; printf("Array size: %ld\n", len); - for(uint64_t i = 0; i < orig_len; +i){ - int v = val->at(i); + for(uint64_t i = 0; i < orig_len; ++i){ + int v = val->at(i).get(); printf("%d ", v); } printf("\n"); @@ -35,28 +37,59 @@ saw::error_or real_main(){ } auto& addr = eo_addr.get_value(); - auto eo_dat_srv = rmt.data_listen(*addr); - if(eo_dat_srv.is_error()){ - return std::move(eo_dat_srv.get_error()); - } - auto& dat_srv = eo_dat_srv.get_value(); + { + auto eo_dat_srv = rmt.data_listen(*addr); + if(eo_dat_srv.is_error()){ + return std::move(eo_dat_srv.get_error()); + } + auto& dat_srv = eo_dat_srv.get_value(); - data val{42}; - id id_val{0u}; - auto eo_send = dat_srv->send(val, id_val); - if(eo_send.is_error()){ - return std::move(eo_send.get_error()); - } + data val{42}; + id id_val{0u}; + auto eo_send = dat_srv->send(val, id_val); + if(eo_send.is_error()){ + return std::move(eo_send.get_error()); + } + + auto eo_dfind = dat_srv->find(id_val); + if(eo_dfind.is_error()){ + return std::move(eo_dfind.get_error()); + } + auto dfind = eo_dfind.get_value(); - auto eo_dfind = dat_srv->find(id_val); - if(eo_dfind.is_error()){ - return std::move(eo_dfind.get_error()); + auto& v = dfind(); + + print_value<<>>(*(v.get_device_data())); } - auto dfind = eo_dfind.get_value(); - auto& v = dfind(); + { + auto eo_dat_srv = rmt.data_listen, encode::NativeRaw>(*addr); + if(eo_dat_srv.is_error()){ + return std::move(eo_dat_srv.get_error()); + } + auto& dat_srv = eo_dat_srv.get_value(); + + data,encode::NativeRaw> val{4}; + val.at(0u).set(5); + val.at(1u).set(3); + val.at(2u).set(-6); + val.at(3u).set(1); + id> id_val{0u}; + auto eo_send = dat_srv->send(val, id_val); + if(eo_send.is_error()){ + return std::move(eo_send.get_error()); + } - print_value<<>>(*(v.get_device_data())); + auto eo_dfind = dat_srv->find(id_val); + if(eo_dfind.is_error()){ + return std::move(eo_dfind.get_error()); + } + auto dfind = eo_dfind.get_value(); + + auto& v = dfind(); + + print_array_vals<<>>(*(v.get_device_data())); + } return make_void(); } -- cgit v1.2.3