// // Copyright © 2023 Arm Ltd and Contributors. All rights reserved. // SPDX-License-Identifier: MIT // #pragma once #include #include #include #include #include namespace armnn { class GpuFsaBackendContext : public IBackendContext { public: GpuFsaBackendContext(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; ~GpuFsaBackendContext() override; private: std::mutex m_Mutex; struct GpuFsaContextControlWrapper; std::unique_ptr m_GpuFsaContextControlWrapper; 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