From f054fc24ea488b5cc1535fc9b2be34186f7696a7 Mon Sep 17 00:00:00 2001 From: Alexander Batashev Date: Thu, 30 Sep 2021 11:46:13 +0300 Subject: [PATCH 1/2] [SYCL] Make kernel_bundle interop more conformant --- sycl/include/CL/sycl/backend/opencl.hpp | 5 +++-- sycl/include/CL/sycl/kernel_bundle.hpp | 7 +++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/sycl/include/CL/sycl/backend/opencl.hpp b/sycl/include/CL/sycl/backend/opencl.hpp index 6854484cd6e08..7820f0e398102 100644 --- a/sycl/include/CL/sycl/backend/opencl.hpp +++ b/sycl/include/CL/sycl/backend/opencl.hpp @@ -16,6 +16,8 @@ #include #include +#include + __SYCL_INLINE_NAMESPACE(cl) { namespace sycl { @@ -75,8 +77,7 @@ struct BackendInput> { template struct BackendReturn> { - // TODO: Per SYCL 2020 this should be std::vector - using type = cl_program; + using type = std::vector; }; template <> struct BackendInput { diff --git a/sycl/include/CL/sycl/kernel_bundle.hpp b/sycl/include/CL/sycl/kernel_bundle.hpp index 21398c232aa9e..ce429e2d553a8 100644 --- a/sycl/include/CL/sycl/kernel_bundle.hpp +++ b/sycl/include/CL/sycl/kernel_bundle.hpp @@ -311,10 +311,9 @@ class kernel_bundle : public detail::kernel_bundle_plain { template __SYCL_DEPRECATED("Use SYCL 2020 sycl::get_native free function") - std::vector::template return_type< - kernel_bundle>> get_native() { - std::vector::template return_type< - kernel_bundle>> + typename backend_traits::template return_type< + kernel_bundle> get_native() const { + typename backend_traits::template return_type> ReturnValue; ReturnValue.reserve(std::distance(begin(), end())); From b9da8912be0f67a0444bcc9ae335fd62eb0ef2e8 Mon Sep 17 00:00:00 2001 From: Alexander Batashev Date: Thu, 30 Sep 2021 13:06:36 +0300 Subject: [PATCH 2/2] fix tests --- sycl/include/CL/sycl/kernel_bundle.hpp | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/sycl/include/CL/sycl/kernel_bundle.hpp b/sycl/include/CL/sycl/kernel_bundle.hpp index ce429e2d553a8..1a5ac4941e4bc 100644 --- a/sycl/include/CL/sycl/kernel_bundle.hpp +++ b/sycl/include/CL/sycl/kernel_bundle.hpp @@ -311,20 +311,8 @@ class kernel_bundle : public detail::kernel_bundle_plain { template __SYCL_DEPRECATED("Use SYCL 2020 sycl::get_native free function") - typename backend_traits::template return_type< - kernel_bundle> get_native() const { - typename backend_traits::template return_type> - ReturnValue; - ReturnValue.reserve(std::distance(begin(), end())); - - for (const device_image &DevImg : *this) { - ReturnValue.push_back( - detail::pi::cast::template return_type>>( - DevImg.getNative())); - } - - return ReturnValue; + auto get_native() const -> backend_return_t> { + return getNative(); } private: