blob: 8ee80f913cd756afd3af5cb56db5810713388c59 [file] [log] [blame]
David Monahande803072020-01-30 12:44:23 +00001//
2// Copyright © 2020 Arm Ltd. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5#include "CounterIdMap.hpp"
6#include "armnn/BackendId.hpp"
David Monahande803072020-01-30 12:44:23 +00007#include <armnn/Exceptions.hpp>
Jim Flynn8e0c7a62020-01-30 14:10:55 +00008#include <map>
David Monahande803072020-01-30 12:44:23 +00009
10namespace armnn
11{
12namespace profiling
13{
14
15void CounterIdMap::RegisterMapping(uint16_t globalCounterId,
16 uint16_t backendCounterId,
17 const armnn::BackendId& backendId)
18{
19 std::pair<uint16_t, armnn::BackendId> backendIdPair(backendCounterId, backendId);
20 m_GlobalCounterIdMap[globalCounterId] = backendIdPair;
21 m_BackendCounterIdMap[backendIdPair] = globalCounterId;
22}
23
Jim Flynn8e0c7a62020-01-30 14:10:55 +000024uint16_t CounterIdMap::GetGlobalId(uint16_t backendCounterId, const armnn::BackendId& backendId) const
David Monahande803072020-01-30 12:44:23 +000025{
26 std::pair<uint16_t, armnn::BackendId> backendIdPair(backendCounterId, backendId);
27 auto it = m_BackendCounterIdMap.find(backendIdPair);
28 if (it == m_BackendCounterIdMap.end())
29 {
30 std::stringstream ss;
31 ss << "No Backend Counter [" << backendIdPair.second << ":" << backendIdPair.first << "] registered";
32 throw armnn::Exception(ss.str());
33 }
34 return it->second;
35}
36
Jim Flynn8e0c7a62020-01-30 14:10:55 +000037const std::pair<uint16_t, armnn::BackendId>& CounterIdMap::GetBackendId(uint16_t globalCounterId) const
David Monahande803072020-01-30 12:44:23 +000038{
39 auto it = m_GlobalCounterIdMap.find(globalCounterId);
40 if (it == m_GlobalCounterIdMap.end())
41 {
42 std::stringstream ss;
43 ss << "No Global Counter ID [" << globalCounterId << "] registered";
44 throw armnn::Exception(ss.str());
45 }
46 return it->second;
47}
48
49} // namespace profiling
Jim Flynn8e0c7a62020-01-30 14:10:55 +000050} // namespace armnn