summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--modules/remote-sycl/benchmarks/kernel_mixed_precision.cpp8
-rw-r--r--modules/remote-sycl/benchmarks/mixed_precision.hpp3
-rw-r--r--modules/remote-sycl/c++/transfer.hpp8
-rw-r--r--modules/remote-sycl/tests/data.cpp7
-rw-r--r--modules/remote-sycl/tests/mixed_precision.cpp18
5 files changed, 24 insertions, 20 deletions
diff --git a/modules/remote-sycl/benchmarks/kernel_mixed_precision.cpp b/modules/remote-sycl/benchmarks/kernel_mixed_precision.cpp
index e99de53..83705f6 100644
--- a/modules/remote-sycl/benchmarks/kernel_mixed_precision.cpp
+++ b/modules/remote-sycl/benchmarks/kernel_mixed_precision.cpp
@@ -1,11 +1,11 @@
#include "mixed_precision.hpp"
-saw::interface<sch::MixedPrecisionBenchmarkInterface, saw::encode::Native, saw::rmt::Sycl, cl::sycl::queue*> listen_mixed_precision(cl::sycl::event& mixed_ev, cl::sycl::event& float64_ev, cl::sycl::event& float32_ev, uint64_t& arithmetic_intensity){
+saw::interface<sch::MixedPrecisionBenchmarkInterface, saw::encode::Sycl<saw::encode::Native>, cl::sycl::queue*> listen_mixed_precision(cl::sycl::event& mixed_ev, cl::sycl::event& float64_ev, cl::sycl::event& float32_ev, uint64_t& arithmetic_intensity){
return {
/**
* Mixed
*/
- [&](saw::data<sch::MixedArray, saw::encode::Native, saw::rmt::Sycl>& in, cl::sycl::queue* cmd) -> saw::error_or<void> {
+ [&](saw::data<sch::MixedArray, saw::encode::Sycl<saw::encode::Native>>& in, cl::sycl::queue* cmd) -> saw::error_or<void> {
uint64_t in_size = in.size();
mixed_ev = cmd->submit([&](cl::sycl::handler& h){
@@ -25,7 +25,7 @@ saw::interface<sch::MixedPrecisionBenchmarkInterface, saw::encode::Native, saw::
});
return saw::void_t{};
},
- [&](saw::data<sch::Float64Array, saw::encode::Native, saw::rmt::Sycl>& in, cl::sycl::queue* cmd) -> saw::error_or<void> {
+ [&](saw::data<sch::Float64Array, saw::encode::Sycl<saw::encode::Native>>& in, cl::sycl::queue* cmd) -> saw::error_or<void> {
uint64_t in_size = in.size();
float64_ev = cmd->submit([&](cl::sycl::handler& h){
auto acc_buff = in.template access<cl::sycl::access::mode::read_write>(h);
@@ -43,7 +43,7 @@ saw::interface<sch::MixedPrecisionBenchmarkInterface, saw::encode::Native, saw::
});
return saw::void_t{};
},
- [&](saw::data<sch::Float32Array, saw::encode::Native, saw::rmt::Sycl>& in, cl::sycl::queue* cmd) -> saw::error_or<void> {
+ [&](saw::data<sch::Float32Array, saw::encode::Sycl<saw::encode::Native>>& in, cl::sycl::queue* cmd) -> saw::error_or<void> {
uint64_t in_size = in.size();
float32_ev = cmd->submit([&](cl::sycl::handler& h){
auto acc_buff = in.template access<cl::sycl::access::mode::read_write>(h);
diff --git a/modules/remote-sycl/benchmarks/mixed_precision.hpp b/modules/remote-sycl/benchmarks/mixed_precision.hpp
index cd8f9ec..fc3fc46 100644
--- a/modules/remote-sycl/benchmarks/mixed_precision.hpp
+++ b/modules/remote-sycl/benchmarks/mixed_precision.hpp
@@ -1,5 +1,6 @@
#pragma once
+#include "../c++/data.hpp"
#include "../c++/device.hpp"
#include "../c++/remote.hpp"
@@ -25,4 +26,4 @@ using MixedPrecisionBenchmarkInterface = Interface<
>;
}
-saw::interface<sch::MixedPrecisionBenchmarkInterface, saw::encode::Native, saw::rmt::Sycl, cl::sycl::queue*> listen_mixed_precision(cl::sycl::event& mixed_ev, cl::sycl::event& float64_ev, cl::sycl::event& float32_ev, uint64_t& arithmetic_intensity);
+saw::interface<sch::MixedPrecisionBenchmarkInterface, saw::encode::Sycl<saw::encode::Native>, cl::sycl::queue*> listen_mixed_precision(cl::sycl::event& mixed_ev, cl::sycl::event& float64_ev, cl::sycl::event& float32_ev, uint64_t& arithmetic_intensity);
diff --git a/modules/remote-sycl/c++/transfer.hpp b/modules/remote-sycl/c++/transfer.hpp
index b6a21f0..bc24447 100644
--- a/modules/remote-sycl/c++/transfer.hpp
+++ b/modules/remote-sycl/c++/transfer.hpp
@@ -21,10 +21,10 @@ public:
device_{std::move(device__)}
{}
- error_or<void> send(const data<Sch,Encoding>& dat, id<Schema> store_id){
+ error_or<void> send(const data<Schema,Encoding>& dat, id<Schema> store_id){
auto eo_val = device_->template copy_to_device(dat);
if(eo_val.is_error()){
- auto& err = eoval.get_error();
+ auto& err = eo_val.get_error();
return std::move(err);
}
auto& val = eo_val.get_value();
@@ -75,7 +75,7 @@ private:
/**
* Store for the data the server manages.
*/
- typename impl::data_server_redux<Encoding, rmt::Sycl, typename tmpl_reduce<tmpl_group<Schema...>>::type >::type values_;
+ typename impl::data_server_redux<encode::Sycl<Encoding>, typename tmpl_reduce<tmpl_group<Schema...>>::type >::type values_;
public:
/**
* Main constructor
@@ -89,7 +89,7 @@ public:
*/
template<typename Sch>
error_or<void> send(const data<Sch, Encoding>& dat, id<Sch> store_id){
- auto& vals = std::get<std::unordered_map<uint64_t, data<Sch,Encoding,rmt::Sycl>>>(values_);
+ auto& vals = std::get<std::unordered_map<uint64_t, data<Sch,encode::Sycl<Encoding>>>>(values_);
auto eoval = device_->template copy_to_device<Sch, Encoding>(dat);
if(eoval.is_error()){
auto& err = eoval.get_error();
diff --git a/modules/remote-sycl/tests/data.cpp b/modules/remote-sycl/tests/data.cpp
index de09c92..027f277 100644
--- a/modules/remote-sycl/tests/data.cpp
+++ b/modules/remote-sycl/tests/data.cpp
@@ -1,5 +1,6 @@
#include <forstio/test/suite.hpp>
+#include "../c++/transfer.hpp"
#include "../c++/remote.hpp"
namespace {
@@ -41,10 +42,10 @@ SAW_TEST("SYCL Data Management"){
wait.poll();
SAW_EXPECT(rmt_addr, "Remote address hasn't been filled");
- auto device = rmt_addr->copy_device_reference();
-
- auto data_srv = data_server<tmpl_group<schema::TestStruct>, encode::Native, rmt::Sycl>{device};
+ auto our_device = share<device<rmt::Sycl>>();
+ auto& device = *our_device;
+ auto data_srv = data_server<tmpl_group<schema::TestStruct>, encode::Native, rmt::Sycl>{our_device};
auto data_cl = data_client<tmpl_group<schema::TestStruct>, encode::Native, rmt::Sycl>{data_srv};
auto eov = data_cl.send(host_data);
diff --git a/modules/remote-sycl/tests/mixed_precision.cpp b/modules/remote-sycl/tests/mixed_precision.cpp
index 5b4b86e..7f5a78d 100644
--- a/modules/remote-sycl/tests/mixed_precision.cpp
+++ b/modules/remote-sycl/tests/mixed_precision.cpp
@@ -1,5 +1,6 @@
#include <forstio/test/suite.hpp>
+#include "../c++/data.hpp"
#include "../c++/remote.hpp"
#include <random>
@@ -62,12 +63,12 @@ SAW_TEST("SYCL Mixed Test"){
wait.poll();
SAW_EXPECT(rmt_addr, "Remote address hasn't been filled");
- data<schema::TestMixedArray, encode::Native, rmt::Sycl> device_data{host_data};
+ data<schema::TestMixedArray, encode::Sycl<encode::Native>> device_data{host_data};
cl::sycl::event ev;
- interface<schema::MixedFoo, encode::Native,rmt::Sycl, cl::sycl::queue*> cl_iface {
-[&](data<schema::TestMixedArray, encode::Native, rmt::Sycl>& in, cl::sycl::queue* cmd) -> error_or<void> {
+ interface<schema::MixedFoo, encode::Sycl<encode::Native>, cl::sycl::queue*> cl_iface {
+[&](data<schema::TestMixedArray, encode::Sycl<encode::Native>>& in, cl::sycl::queue* cmd) -> error_or<void> {
ev = cmd->submit([&](cl::sycl::handler& h){
@@ -80,7 +81,8 @@ SAW_TEST("SYCL Mixed Test"){
return saw::void_t{};
}
};
- auto& device = rmt_addr->get_device();
+ auto our_device = share<device<rmt::Sycl>>();
+ auto& device = *our_device;
cl_iface.template call <"foo">(device_data, &(device.get_handle()));
device.get_handle().wait();
@@ -120,12 +122,12 @@ SAW_TEST("SYCL Float Test"){
wait.poll();
SAW_EXPECT(rmt_addr, "Remote address hasn't been filled");
- data<schema::TestFloatArray, encode::Native, rmt::Sycl> device_data{host_data};
+ data<schema::TestFloatArray, encode::Sycl<encode::Native>> device_data{host_data};
cl::sycl::event ev;
interface<schema::FloatFoo, encode::Native,rmt::Sycl, cl::sycl::queue*> cl_iface {
-[&](data<schema::TestFloatArray, encode::Native, rmt::Sycl>& in, cl::sycl::queue* cmd) -> error_or<void> {
+[&](data<schema::TestFloatArray, encode::Sycl<encode::Native>>& in, cl::sycl::queue* cmd) -> error_or<void> {
ev = cmd->submit([&](cl::sycl::handler& h){
@@ -178,12 +180,12 @@ SAW_TEST("SYCL Double Test"){
wait.poll();
SAW_EXPECT(rmt_addr, "Remote address hasn't been filled");
- data<schema::TestDoubleArray, encode::Native, rmt::Sycl> device_data{host_data};
+ data<schema::TestDoubleArray, encode::Sycl<encode::Native>> device_data{host_data};
cl::sycl::event ev;
interface<schema::DoubleFoo, encode::Native,rmt::Sycl, cl::sycl::queue*> cl_iface {
-[&](data<schema::TestDoubleArray, encode::Native, rmt::Sycl>& in, cl::sycl::queue* cmd) -> error_or<void> {
+[&](data<schema::TestDoubleArray, encode::Sycl<encode::Native>>& in, cl::sycl::queue* cmd) -> error_or<void> {
ev = cmd->submit([&](cl::sycl::handler& h){