blob: a366898377ba5e6fe275fc9d293369c04fb7395a [file] [log] [blame]
Francis Murtagh68f78d82019-09-04 16:42:29 +01001//
2// Copyright © 2017 Arm Ltd. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5
Finn Williams032bc742020-02-12 11:02:34 +00006#include <armnn/BackendId.hpp>
Francis Murtagh68f78d82019-09-04 16:42:29 +01007#include "Holder.hpp"
8
9namespace armnn
10{
11
12namespace profiling
13{
14
Matteo Martincighe8485382019-10-10 14:08:21 +010015CaptureData& CaptureData::operator=(const CaptureData& other)
Francis Murtagh68f78d82019-09-04 16:42:29 +010016{
Finn Williams032bc742020-02-12 11:02:34 +000017 m_CapturePeriod = other.m_CapturePeriod;
18 m_CounterIds = other.m_CounterIds;
19 m_ActiveBackends = other.m_ActiveBackends;
Francis Murtagh68f78d82019-09-04 16:42:29 +010020
21 return *this;
22}
23
Finn Williams032bc742020-02-12 11:02:34 +000024void CaptureData::SetActiveBackends(const std::set<armnn::BackendId>& activeBackends)
25{
26 m_ActiveBackends = activeBackends;
27}
28
Francis Murtagh68f78d82019-09-04 16:42:29 +010029void CaptureData::SetCapturePeriod(uint32_t capturePeriod)
30{
31 m_CapturePeriod = capturePeriod;
32}
33
Jim Flynn8355ec92019-09-17 12:29:50 +010034void CaptureData::SetCounterIds(const std::vector<uint16_t>& counterIds)
Francis Murtagh68f78d82019-09-04 16:42:29 +010035{
36 m_CounterIds = counterIds;
37}
38
Finn Williams032bc742020-02-12 11:02:34 +000039const std::set<armnn::BackendId>& CaptureData::GetActiveBackends() const
40{
41 return m_ActiveBackends;
42}
43
Matteo Martincighe8485382019-10-10 14:08:21 +010044uint32_t CaptureData::GetCapturePeriod() const
Francis Murtagh68f78d82019-09-04 16:42:29 +010045{
46 return m_CapturePeriod;
47}
48
Matteo Martincighe8485382019-10-10 14:08:21 +010049const std::vector<uint16_t>& CaptureData::GetCounterIds() const
Francis Murtagh68f78d82019-09-04 16:42:29 +010050{
51 return m_CounterIds;
52}
53
54CaptureData Holder::GetCaptureData() const
55{
56 std::lock_guard<std::mutex> lockGuard(m_CaptureThreadMutex);
Matteo Martincighe8485382019-10-10 14:08:21 +010057
Francis Murtagh68f78d82019-09-04 16:42:29 +010058 return m_CaptureData;
59}
60
James Conroy2dcd3fe2020-02-06 18:34:52 +000061bool CaptureData::IsCounterIdInCaptureData(uint16_t counterId)
62{
63 for (auto m_CounterId : m_CounterIds) {
64 if (m_CounterId == counterId)
65 {
66 return true;
67 }
68 }
69
70 // Return false by default unless counterId is found
71 return false;
72}
73
Finn Williams032bc742020-02-12 11:02:34 +000074void Holder::SetCaptureData(uint32_t capturePeriod,
75 const std::vector<uint16_t>& counterIds,
76 const std::set<armnn::BackendId>& activeBackends)
Francis Murtagh68f78d82019-09-04 16:42:29 +010077{
78 std::lock_guard<std::mutex> lockGuard(m_CaptureThreadMutex);
Matteo Martincighe8485382019-10-10 14:08:21 +010079
Francis Murtagh68f78d82019-09-04 16:42:29 +010080 m_CaptureData.SetCapturePeriod(capturePeriod);
81 m_CaptureData.SetCounterIds(counterIds);
Finn Williams032bc742020-02-12 11:02:34 +000082 m_CaptureData.SetActiveBackends(activeBackends);
83
Francis Murtagh68f78d82019-09-04 16:42:29 +010084}
85
86} // namespace profiling
87
Jim Flynn8355ec92019-09-17 12:29:50 +010088} // namespace armnn