ArmNN
 20.02
CounterIdMap.hpp
Go to the documentation of this file.
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 
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 
24 {
25 public:
26  virtual void RegisterMapping(uint16_t globalCounterId,
27  uint16_t backendCounterId,
28  const armnn::BackendId& backendId) = 0;
29  virtual void Reset() = 0;
31 };
32 
34 {
35 
36 public:
37  CounterIdMap() = default;
38  virtual ~CounterIdMap() {}
39  void RegisterMapping(uint16_t globalCounterId,
40  uint16_t backendCounterId,
41  const armnn::BackendId& backendId) override;
42  void Reset() override;
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;
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
51 } // namespace armnn
Copyright (c) 2020 ARM Limited.
virtual const std::pair< uint16_t, armnn::BackendId > & GetBackendId(uint16_t globalCounterId) const =0
virtual uint16_t GetGlobalId(uint16_t backendCounterId, const armnn::BackendId &backendId) const =0