blob: 459d62435be77cde2f922fba8520811904e86c2a [file] [log] [blame]
Narumol Prangnawaratdf31cfe2019-11-22 11:26:06 +00001//
2// Copyright © 2019 Arm Ltd. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5
6#pragma once
7
8#include "ProfilingUtils.hpp"
9
10#include <armnn/BackendId.hpp>
11#include <armnn/Optional.hpp>
12#include <armnn/Types.hpp>
13#include <BufferManager.hpp>
14#include <ProfilingService.hpp>
15
16using namespace armnn;
17using namespace armnn::profiling;
18
19inline unsigned int OffsetToNextWord(unsigned int numberOfBytes);
20
Keith Davis97da5e22020-03-05 16:25:28 +000021void VerifyTimelineHeaderBinary(const unsigned char* readableData,
22 unsigned int& offset,
23 uint32_t packetDataLength);
Narumol Prangnawaratdf31cfe2019-11-22 11:26:06 +000024
Keith Davis97da5e22020-03-05 16:25:28 +000025void VerifyTimelineLabelBinaryPacketData(Optional<ProfilingGuid> guid,
26 const std::string& label,
27 const unsigned char* readableData,
28 unsigned int& offset);
29
30void VerifyTimelineEventClassBinaryPacketData(ProfilingGuid guid,
31 const unsigned char* readableData,
32 unsigned int& offset);
33
34void VerifyTimelineRelationshipBinaryPacketData(ProfilingRelationshipType relationshipType,
35 Optional<ProfilingGuid> relationshipGuid,
36 Optional<ProfilingGuid> headGuid,
37 Optional<ProfilingGuid> tailGuid,
38 const unsigned char* readableData,
39 unsigned int& offset);
40
41void VerifyTimelineEntityBinaryPacketData(Optional<ProfilingGuid> guid,
Narumol Prangnawaratdf31cfe2019-11-22 11:26:06 +000042 const unsigned char* readableData,
43 unsigned int& offset);
44
Narumol Prangnawaratdf31cfe2019-11-22 11:26:06 +000045void VerifyTimelineEventBinaryPacket(Optional<uint64_t> timestamp,
46 Optional<std::thread::id> threadId,
47 Optional<ProfilingGuid> eventGuid,
48 const unsigned char* readableData,
49 unsigned int& offset);
50
51void VerifyPostOptimisationStructureTestImpl(armnn::BackendId backendId);
52
53namespace armnn
54{
55
56namespace profiling
57{
58
59class ProfilingServiceRuntimeHelper : public ProfilingService
60{
61public:
Sadik Armagan3184c902020-03-18 10:57:30 +000062 ProfilingServiceRuntimeHelper(ProfilingService& profilingService)
63 : m_ProfilingService(profilingService) {}
Narumol Prangnawaratdf31cfe2019-11-22 11:26:06 +000064 ~ProfilingServiceRuntimeHelper() = default;
65
66 BufferManager& GetProfilingBufferManager()
67 {
Sadik Armagan3184c902020-03-18 10:57:30 +000068 return GetBufferManager(m_ProfilingService);
Narumol Prangnawaratdf31cfe2019-11-22 11:26:06 +000069 }
Sadik Armagan3184c902020-03-18 10:57:30 +000070 armnn::profiling::ProfilingService& m_ProfilingService;
Narumol Prangnawaratdf31cfe2019-11-22 11:26:06 +000071};
72
73} // namespace profiling
74
75} // namespace armnn
76