From a327476ea1d380d437c06eee0385d1d72255b643 Mon Sep 17 00:00:00 2001 From: KulikovNikita Date: Fri, 26 May 2023 10:27:24 +0100 Subject: [PATCH] Revert "Fixed copying performance issues (#2375)" (#2390) This reverts commit 2667f07c395d5152a71707f0f77977f021897cc6. --- cpp/oneapi/dal/backend/memory.hpp | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/cpp/oneapi/dal/backend/memory.hpp b/cpp/oneapi/dal/backend/memory.hpp index 6ba78ee6173..21d38f391eb 100644 --- a/cpp/oneapi/dal/backend/memory.hpp +++ b/cpp/oneapi/dal/backend/memory.hpp @@ -206,6 +206,8 @@ inline sycl::event memcpy(sycl::queue& queue, std::size_t size, const event_vector& deps = {}) { ONEDAL_ASSERT(size > 0); + ONEDAL_ASSERT(is_known_usm(queue, dest)); + ONEDAL_ASSERT(is_known_usm(queue, src)); return queue.submit([&](sycl::handler& cgh) { cgh.depends_on(deps); cgh.memcpy(dest, src, size); @@ -218,7 +220,13 @@ inline sycl::event memcpy_host2usm(sycl::queue& queue, std::size_t size, const event_vector& deps = {}) { ONEDAL_ASSERT(is_known_usm(queue, dest_usm)); - return memcpy(queue, dest_usm, src_host, size, deps); + + // TODO: Remove additional copy to host usm memory once + // bug in `copy` with the host memory is fixed + auto tmp_usm_host = make_unique_usm_host(queue, size); + memcpy(tmp_usm_host.get(), src_host, size); + memcpy(queue, dest_usm, tmp_usm_host.get(), size, deps).wait_and_throw(); + return {}; } inline sycl::event memcpy_usm2host(sycl::queue& queue, @@ -227,7 +235,13 @@ inline sycl::event memcpy_usm2host(sycl::queue& queue, std::size_t size, const event_vector& deps = {}) { ONEDAL_ASSERT(is_known_usm(queue, src_usm)); - return memcpy(queue, dest_host, src_usm, size, deps); + + // TODO: Remove additional copy to host usm memory once + // bug in `copy` with the host memory is fixed + auto tmp_usm_host = make_unique_usm_host(queue, size); + memcpy(queue, tmp_usm_host.get(), src_usm, size, deps).wait_and_throw(); + memcpy(dest_host, tmp_usm_host.get(), size); + return {}; } template