From 58a17e973aaeedfb70ae6f417d956d2b4131715b Mon Sep 17 00:00:00 2001 From: "Agarwal, Udit" Date: Fri, 27 Jun 2025 02:21:32 +0200 Subject: [PATCH 1/3] [SYCL][NFC] Return adapter by ref in KernelProgramCache --- sycl/source/detail/kernel_program_cache.cpp | 5 ++-- sycl/source/detail/kernel_program_cache.hpp | 26 ++++++++++----------- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/sycl/source/detail/kernel_program_cache.cpp b/sycl/source/detail/kernel_program_cache.cpp index 02706f928111d..46b0685c3545b 100644 --- a/sycl/source/detail/kernel_program_cache.cpp +++ b/sycl/source/detail/kernel_program_cache.cpp @@ -6,15 +6,14 @@ // //===----------------------------------------------------------------------===// -#include #include #include namespace sycl { inline namespace _V1 { namespace detail { -const AdapterPtr &KernelProgramCache::getAdapter() { - return MParentContext->getAdapter(); +const adapter_impl &KernelProgramCache::getAdapter() { + return *(MParentContext->getAdapter()); } ur_context_handle_t KernelProgramCache::getURContext() const { diff --git a/sycl/source/detail/kernel_program_cache.hpp b/sycl/source/detail/kernel_program_cache.hpp index 44dc1bd57c17c..f22f8298bfc7e 100644 --- a/sycl/source/detail/kernel_program_cache.hpp +++ b/sycl/source/detail/kernel_program_cache.hpp @@ -112,11 +112,11 @@ class KernelProgramCache { }; struct ProgramBuildResult : public BuildResult { - AdapterPtr MAdapter; - ProgramBuildResult(const AdapterPtr &AAdapter) : MAdapter(AAdapter) { + const adapter_impl &MAdapter; + ProgramBuildResult(const adapter_impl &AAdapter) : MAdapter(AAdapter) { Val = nullptr; } - ProgramBuildResult(const AdapterPtr &AAdapter, BuildState InitialState) + ProgramBuildResult(const adapter_impl &AAdapter, BuildState InitialState) : MAdapter(AAdapter) { Val = nullptr; this->State.store(InitialState); @@ -125,8 +125,8 @@ class KernelProgramCache { try { if (Val) { ur_result_t Err = - MAdapter->call_nocheck(Val); - __SYCL_CHECK_UR_CODE_NO_EXC(Err, MAdapter->getBackend()); + MAdapter.call_nocheck(Val); + __SYCL_CHECK_UR_CODE_NO_EXC(Err, MAdapter.getBackend()); } } catch (std::exception &e) { __SYCL_REPORT_EXCEPTION_TO_STREAM("exception in ~ProgramBuildResult", @@ -198,16 +198,16 @@ class KernelProgramCache { using KernelArgMaskPairT = std::pair; struct KernelBuildResult : public BuildResult { - AdapterPtr MAdapter; - KernelBuildResult(const AdapterPtr &AAdapter) : MAdapter(AAdapter) { + const adapter_impl &MAdapter; + KernelBuildResult(const adapter_impl &AAdapter) : MAdapter(AAdapter) { Val.first = nullptr; } ~KernelBuildResult() { try { if (Val.first) { ur_result_t Err = - MAdapter->call_nocheck(Val.first); - __SYCL_CHECK_UR_CODE_NO_EXC(Err, MAdapter->getBackend()); + MAdapter.call_nocheck(Val.first); + __SYCL_CHECK_UR_CODE_NO_EXC(Err, MAdapter.getBackend()); } } catch (std::exception &e) { __SYCL_REPORT_EXCEPTION_TO_STREAM("exception in ~KernelBuildResult", e); @@ -668,18 +668,18 @@ class KernelProgramCache { // Store size of the program and check if we need to evict some entries. // Get Size of the program. size_t ProgramSize = 0; - auto Adapter = getAdapter(); + const adapter_impl &Adapter = getAdapter(); try { // Get number of devices this program was built for. unsigned int DeviceNum = 0; - Adapter->call( + Adapter.call( Program, UR_PROGRAM_INFO_NUM_DEVICES, sizeof(DeviceNum), &DeviceNum, nullptr); // Get binary sizes for each device. std::vector BinarySizes(DeviceNum); - Adapter->call( + Adapter.call( Program, UR_PROGRAM_INFO_BINARY_SIZES, sizeof(size_t) * BinarySizes.size(), BinarySizes.data(), nullptr); @@ -868,7 +868,7 @@ class KernelProgramCache { friend class ::MockKernelProgramCache; - const AdapterPtr &getAdapter(); + const adapter_impl &getAdapter(); ur_context_handle_t getURContext() const; }; } // namespace detail From 1e89e8f8e3a2c73209eeccdb6abf8e7cd0d49dea Mon Sep 17 00:00:00 2001 From: Udit Kumar Agarwal Date: Fri, 27 Jun 2025 08:49:52 -0700 Subject: [PATCH 2/3] Apply suggestions from code review Co-authored-by: aelovikov-intel --- sycl/source/detail/kernel_program_cache.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sycl/source/detail/kernel_program_cache.hpp b/sycl/source/detail/kernel_program_cache.hpp index f22f8298bfc7e..64ff7fb1f5e26 100644 --- a/sycl/source/detail/kernel_program_cache.hpp +++ b/sycl/source/detail/kernel_program_cache.hpp @@ -113,7 +113,7 @@ class KernelProgramCache { struct ProgramBuildResult : public BuildResult { const adapter_impl &MAdapter; - ProgramBuildResult(const adapter_impl &AAdapter) : MAdapter(AAdapter) { + ProgramBuildResult(const adapter_impl &Adapter) : MAdapter(Adapter) { Val = nullptr; } ProgramBuildResult(const adapter_impl &AAdapter, BuildState InitialState) @@ -199,7 +199,7 @@ class KernelProgramCache { std::pair; struct KernelBuildResult : public BuildResult { const adapter_impl &MAdapter; - KernelBuildResult(const adapter_impl &AAdapter) : MAdapter(AAdapter) { + KernelBuildResult(const adapter_impl &Adapter) : MAdapter(Adapter) { Val.first = nullptr; } ~KernelBuildResult() { From 317028dc82f2e70715f655d9b7627598bf71082b Mon Sep 17 00:00:00 2001 From: Udit Kumar Agarwal Date: Fri, 27 Jun 2025 09:45:31 -0700 Subject: [PATCH 3/3] Update sycl/source/detail/kernel_program_cache.hpp --- sycl/source/detail/kernel_program_cache.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sycl/source/detail/kernel_program_cache.hpp b/sycl/source/detail/kernel_program_cache.hpp index 64ff7fb1f5e26..4c139f99c8211 100644 --- a/sycl/source/detail/kernel_program_cache.hpp +++ b/sycl/source/detail/kernel_program_cache.hpp @@ -116,8 +116,8 @@ class KernelProgramCache { ProgramBuildResult(const adapter_impl &Adapter) : MAdapter(Adapter) { Val = nullptr; } - ProgramBuildResult(const adapter_impl &AAdapter, BuildState InitialState) - : MAdapter(AAdapter) { + ProgramBuildResult(const adapter_impl &Adapter, BuildState InitialState) + : MAdapter(Adapter) { Val = nullptr; this->State.store(InitialState); }