// // Copyright © 2017 Arm Ltd. All rights reserved. // SPDX-License-Identifier: MIT // #pragma once #include #include #include #include #include namespace armnn { class ClBackendContext : public IBackendContext { public: ClBackendContext(const IRuntime::CreationOptions& options); bool BeforeLoadNetwork(NetworkId networkId) override; bool AfterLoadNetwork(NetworkId networkId) override; bool BeforeUnloadNetwork(NetworkId networkId) override; bool AfterUnloadNetwork(NetworkId networkId) override; bool AfterEnqueueWorkload(NetworkId networkId) override; ~ClBackendContext() override; private: std::mutex m_Mutex; struct ClContextControlWrapper; std::unique_ptr m_ClContextControlWrapper; std::unordered_set m_NetworkIds; std::unique_ptr m_Tuner; std::string m_TuningFile; protected: arm_compute::CLGEMMHeuristicsHandle m_MLGOTuner; std::string m_MLGOTuningFile; }; } // namespace armnn