blob: bb575705ed2cbdd91bc8c8aaf55fc917789893f3 [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
Cathal Corbett5aa9fd72022-02-25 15:33:28 +000010namespace arm
David Monahande803072020-01-30 12:44:23 +000011{
Cathal Corbett5aa9fd72022-02-25 15:33:28 +000012namespace pipe
David Monahande803072020-01-30 12:44:23 +000013{
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 Flynn97897022020-02-02 12:52:59 +000024void CounterIdMap::Reset()
25{
26 m_GlobalCounterIdMap.clear();
27 m_BackendCounterIdMap.clear();
28}
29
Jim Flynn8e0c7a62020-01-30 14:10:55 +000030uint16_t CounterIdMap::GetGlobalId(uint16_t backendCounterId, const armnn::BackendId& backendId) const
David Monahande803072020-01-30 12:44:23 +000031{
32 std::pair<uint16_t, armnn::BackendId> backendIdPair(backendCounterId, backendId);
33 auto it = m_BackendCounterIdMap.find(backendIdPair);
34 if (it == m_BackendCounterIdMap.end())
35 {
36 std::stringstream ss;
37 ss << "No Backend Counter [" << backendIdPair.second << ":" << backendIdPair.first << "] registered";
38 throw armnn::Exception(ss.str());
39 }
40 return it->second;
41}
42
Jim Flynn8e0c7a62020-01-30 14:10:55 +000043const std::pair<uint16_t, armnn::BackendId>& CounterIdMap::GetBackendId(uint16_t globalCounterId) const
David Monahande803072020-01-30 12:44:23 +000044{
45 auto it = m_GlobalCounterIdMap.find(globalCounterId);
46 if (it == m_GlobalCounterIdMap.end())
47 {
48 std::stringstream ss;
49 ss << "No Global Counter ID [" << globalCounterId << "] registered";
50 throw armnn::Exception(ss.str());
51 }
52 return it->second;
53}
54
Cathal Corbett5aa9fd72022-02-25 15:33:28 +000055} // namespace pipe
56} // namespace arm