From 25e05907f0292310eaae27a032db0ee274413874 Mon Sep 17 00:00:00 2001 From: "Claudius \"keldu\" Holeksa" Date: Tue, 2 Jul 2024 19:46:02 +0200 Subject: Preparing benchmark work --- .../benchmarks/kernel_mixed_precision.cpp | 42 ++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 modules/remote-sycl/benchmarks/kernel_mixed_precision.cpp (limited to 'modules/remote-sycl/benchmarks/kernel_mixed_precision.cpp') diff --git a/modules/remote-sycl/benchmarks/kernel_mixed_precision.cpp b/modules/remote-sycl/benchmarks/kernel_mixed_precision.cpp new file mode 100644 index 0000000..0ac9756 --- /dev/null +++ b/modules/remote-sycl/benchmarks/kernel_mixed_precision.cpp @@ -0,0 +1,42 @@ +#include "mixed_precision.hpp" + +saw::interface listen_mixed_precision(cl::sycl::event& mixed_ev, cl::sycl::event& float64_ev, cl::sycl::event& float32_ev){ + return { + /** + * Mixed + */ + [&](saw::data& in, cl::sycl::queue* cmd) -> saw::error_or { + + mixed_ev = cmd->submit([&](cl::sycl::handler& h){ + auto acc_buff = in.template access(h); + + h.parallel_for(cl::sycl::range<1>(in.size()), [=] (cl::sycl::id<1> it){ + acc_buff[0u].at(it[0u]) = acc_buff[0u].at(it[0u]) * saw::data{2.0}; + }); + }); + return saw::void_t{}; + }, + [&](saw::data& in, cl::sycl::queue* cmd) -> saw::error_or { + + float64_ev = cmd->submit([&](cl::sycl::handler& h){ + auto acc_buff = in.template access(h); + + h.parallel_for(cl::sycl::range<1>(in.size()), [=] (cl::sycl::id<1> it){ + acc_buff[0u].at(it[0u]) = acc_buff[0u].at(it[0u]) * saw::data{2.0}; + }); + }); + return saw::void_t{}; + }, + [&](saw::data& in, cl::sycl::queue* cmd) -> saw::error_or { + + float32_ev = cmd->submit([&](cl::sycl::handler& h){ + auto acc_buff = in.template access(h); + + h.parallel_for(cl::sycl::range<1>(in.size()), [=] (cl::sycl::id<1> it){ + acc_buff[0u].at(it[0u]) = acc_buff[0u].at(it[0u]) * saw::data{2.0f}; + }); + }); + return saw::void_t{}; + } + }; +} -- cgit v1.2.3