1 // 2 // Copyright © 2020 Arm Ltd. All rights reserved. 3 // SPDX-License-Identifier: MIT 4 // 5 #pragma once 6 7 #include "IBackendProfiling.hpp" 8 #include <armnn/IRuntime.hpp> 9 #include <vector> 10 11 namespace armnn 12 { 13 namespace profiling 14 { 15 16 class IBackendProfilingContext 17 { 18 public: ~IBackendProfilingContext()19 virtual ~IBackendProfilingContext() 20 {} 21 virtual uint16_t RegisterCounters(uint16_t currentMaxGlobalCounterID) = 0; 22 virtual Optional<std::string> ActivateCounters(uint32_t capturePeriod, const std::vector<uint16_t>& counterIds) = 0; 23 virtual std::vector<Timestamp> ReportCounterValues() = 0; 24 virtual bool EnableProfiling(bool flag) = 0; 25 virtual bool EnableTimelineReporting(bool flag) = 0; 26 }; 27 28 using IBackendProfilingContextUniquePtr = std::unique_ptr<IBackendProfilingContext>; 29 } // namespace profiling 30 } // namespace armnn