David Monahan | de80307 | 2020-01-30 12:44:23 +0000 | [diff] [blame] | 1 | // |
| 2 | // Copyright © 2020 Arm Ltd. All rights reserved. |
| 3 | // SPDX-License-Identifier: MIT |
| 4 | // |
| 5 | #pragma once |
| 6 | |
| 7 | #include "armnn/BackendId.hpp" |
| 8 | #include <map> |
| 9 | |
| 10 | namespace armnn |
| 11 | { |
| 12 | namespace profiling |
| 13 | { |
| 14 | |
Jim Flynn | 8e0c7a6 | 2020-01-30 14:10:55 +0000 | [diff] [blame] | 15 | class ICounterMappings |
| 16 | { |
| 17 | public: |
| 18 | virtual uint16_t GetGlobalId(uint16_t backendCounterId, const armnn::BackendId& backendId) const = 0; |
| 19 | virtual const std::pair<uint16_t, armnn::BackendId>& GetBackendId(uint16_t globalCounterId) const = 0; |
| 20 | virtual ~ICounterMappings() {} |
| 21 | }; |
| 22 | |
| 23 | class IRegisterCounterMapping |
| 24 | { |
| 25 | public: |
| 26 | virtual void RegisterMapping(uint16_t globalCounterId, |
| 27 | uint16_t backendCounterId, |
| 28 | const armnn::BackendId& backendId) = 0; |
Jim Flynn | 9789702 | 2020-02-02 12:52:59 +0000 | [diff] [blame] | 29 | virtual void Reset() = 0; |
Jim Flynn | 8e0c7a6 | 2020-01-30 14:10:55 +0000 | [diff] [blame] | 30 | virtual ~IRegisterCounterMapping() {} |
| 31 | }; |
| 32 | |
| 33 | class CounterIdMap : public ICounterMappings, public IRegisterCounterMapping |
David Monahan | de80307 | 2020-01-30 12:44:23 +0000 | [diff] [blame] | 34 | { |
| 35 | |
| 36 | public: |
Jim Flynn | 8e0c7a6 | 2020-01-30 14:10:55 +0000 | [diff] [blame] | 37 | CounterIdMap() = default; |
| 38 | virtual ~CounterIdMap() {} |
| 39 | void RegisterMapping(uint16_t globalCounterId, |
| 40 | uint16_t backendCounterId, |
| 41 | const armnn::BackendId& backendId) override; |
Jim Flynn | 9789702 | 2020-02-02 12:52:59 +0000 | [diff] [blame] | 42 | void Reset() override; |
Jim Flynn | 8e0c7a6 | 2020-01-30 14:10:55 +0000 | [diff] [blame] | 43 | uint16_t GetGlobalId(uint16_t backendCounterId, const armnn::BackendId& backendId) const override; |
| 44 | const std::pair<uint16_t, armnn::BackendId>& GetBackendId(uint16_t globalCounterId) const override; |
David Monahan | de80307 | 2020-01-30 12:44:23 +0000 | [diff] [blame] | 45 | private: |
| 46 | std::map<uint16_t, std::pair<uint16_t, armnn::BackendId>> m_GlobalCounterIdMap; |
| 47 | std::map<std::pair<uint16_t, armnn::BackendId>, uint16_t> m_BackendCounterIdMap; |
| 48 | }; |
| 49 | |
| 50 | } // namespace profiling |
Jim Flynn | 8e0c7a6 | 2020-01-30 14:10:55 +0000 | [diff] [blame] | 51 | } // namespace armnn |