diff options
author | David Beck <david.beck@arm.com> | 2018-11-05 13:40:33 +0000 |
---|---|---|
committer | Matthew Bentham <matthew.bentham@arm.com> | 2018-11-05 17:26:57 +0000 |
commit | 9efb57d62197aeb7d868c289bb34166c132f0287 (patch) | |
tree | 047fe9ac08ad90145d4e2d5bf1c6acc24eaad16c /src/backends/cl/ClBackendContext.cpp | |
parent | 9c6f3afdf7686d9804fd5bc04ea68fca4c49a0a8 (diff) | |
download | armnn-9efb57d62197aeb7d868c289bb34166c132f0287.tar.gz |
Revert "IVGCVSW-2056 + IVGCVSW-2064 : move ClContextControl to the ClBackend"
This reverts commit d4dfa684941a21314b70593d01b0fc2167eebad4.
Change-Id: Id61ce69215505c3cf5d30ec2a7ec9127fb2554fc
Diffstat (limited to 'src/backends/cl/ClBackendContext.cpp')
-rw-r--r-- | src/backends/cl/ClBackendContext.cpp | 111 |
1 files changed, 0 insertions, 111 deletions
diff --git a/src/backends/cl/ClBackendContext.cpp b/src/backends/cl/ClBackendContext.cpp deleted file mode 100644 index 7789415f89..0000000000 --- a/src/backends/cl/ClBackendContext.cpp +++ /dev/null @@ -1,111 +0,0 @@ -// -// Copyright © 2017 Arm Ltd. All rights reserved. -// SPDX-License-Identifier: MIT -// - -#include "ClBackendContext.hpp" -#include "ClBackendId.hpp" -#include "ClContextControl.hpp" - -#include <backendsCommon/BackendContextRegistry.hpp> -#include <boost/log/trivial.hpp> - -#include <mutex> - -#ifdef ARMCOMPUTECL_ENABLED -// Needed for the CL scheduler calls -#include <arm_compute/core/CL/OpenCL.h> -#include <arm_compute/core/CL/CLKernelLibrary.h> -#include <arm_compute/runtime/CL/CLScheduler.h> -#endif - -namespace armnn -{ - -namespace -{ - -static StaticRegistryInitializer<BackendContextRegistry> g_RegisterHelper -{ - BackendContextRegistryInstance(), - ClBackendId(), - [](const IRuntime::CreationOptions& options) - { - return IBackendContextUniquePtr(new ClBackendContext{options}); - } -}; - -static std::mutex g_ContextControlMutex; - -std::shared_ptr<ClBackendContext::ContextControlWrapper> -GetContextControlWrapper(const IRuntime::CreationOptions& options) -{ - static std::weak_ptr<ClBackendContext::ContextControlWrapper> contextControlWrapper; - - std::lock_guard<std::mutex> lockGuard(g_ContextControlMutex); - std::shared_ptr<ClBackendContext::ContextControlWrapper> result; - - if (contextControlWrapper.expired()) - { - result = std::make_shared<ClBackendContext::ContextControlWrapper>(options); - contextControlWrapper = result; - } - else - { - result = contextControlWrapper.lock(); - } - - return result; -} - -} // anonymous namespace - - -#ifdef ARMCOMPUTECL_ENABLED -struct ClBackendContext::ContextControlWrapper -{ - ContextControlWrapper(const IRuntime::CreationOptions& options) - : m_ClContextControl{options.m_GpuAccTunedParameters.get(), - options.m_EnableGpuProfiling} - { - } - - ~ContextControlWrapper() - { - if (arm_compute::CLScheduler::get().context()() != NULL) - { - // Waits for all queued CL requests to finish before unloading the network they may be using. - try - { - // Coverity fix: arm_compute::CLScheduler::sync() may throw an exception of type cl::Error. - arm_compute::CLScheduler::get().sync(); - m_ClContextControl.ClearClCache(); - } - catch (const cl::Error&) - { - BOOST_LOG_TRIVIAL(warning) << "WARNING: Runtime::UnloadNetwork(): an error occurred while waiting for " - "the queued CL requests to finish"; - } - } - } - - ClContextControl m_ClContextControl; -}; -#else //ARMCOMPUTECL_ENABLED -struct ClBackendContext::ContextControlWrapper -{ - ContextControlWrapper(const IRuntime::CreationOptions&){} -}; -#endif //ARMCOMPUTECL_ENABLED - -ClBackendContext::ClBackendContext(const IRuntime::CreationOptions& options) -: IBackendContext{options} -, m_ContextControl{GetContextControlWrapper(options)} -{ -} - -ClBackendContext::~ClBackendContext() -{ -} - -} // namespace armnn
\ No newline at end of file |