ArmNN
 20.11
RegisterBackendCounters.hpp
Go to the documentation of this file.
1 //
2 // Copyright © 2020 Arm Ltd. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
6 #pragma once
7 
9 #include "CounterIdMap.hpp"
10 #include "CounterDirectory.hpp"
11 #include "ProfilingService.hpp"
12 
13 namespace armnn
14 {
15 
16 namespace profiling
17 {
18 
20 {
21 public:
22 
24  uint16_t currentMaxGlobalCounterID, const BackendId& backendId, ProfilingService& profilingService)
25  : m_CurrentMaxGlobalCounterID(currentMaxGlobalCounterID),
26  m_BackendId(backendId),
27  m_ProfilingService(profilingService),
28  m_CounterDirectory(m_ProfilingService.GetCounterRegistry()) {}
29 
30  ~RegisterBackendCounters() = default;
31 
32  void RegisterCategory(const std::string& categoryName) override;
33 
34  uint16_t RegisterDevice(const std::string& deviceName,
35  uint16_t cores = 0,
36  const Optional<std::string>& parentCategoryName = EmptyOptional()) override;
37 
38  uint16_t RegisterCounterSet(const std::string& counterSetName,
39  uint16_t count = 0,
40  const Optional<std::string>& parentCategoryName = EmptyOptional()) override;
41 
42  uint16_t RegisterCounter(const uint16_t uid,
43  const std::string& parentCategoryName,
44  uint16_t counterClass,
45  uint16_t interpolation,
46  double multiplier,
47  const std::string& name,
48  const std::string& description,
49  const Optional<std::string>& units = EmptyOptional(),
50  const Optional<uint16_t>& numberOfCores = EmptyOptional(),
51  const Optional<uint16_t>& deviceUid = EmptyOptional(),
52  const Optional<uint16_t>& counterSetUid = EmptyOptional()) override;
53 
54 private:
55  uint16_t m_CurrentMaxGlobalCounterID;
56  const BackendId& m_BackendId;
57  ProfilingService& m_ProfilingService;
58  ICounterRegistry& m_CounterDirectory;
59 };
60 
61 } // namespace profiling
62 
63 } // namespace armnn
uint16_t RegisterDevice(const std::string &deviceName, uint16_t cores=0, const Optional< std::string > &parentCategoryName=EmptyOptional()) override
Copyright (c) 2020 ARM Limited.
uint16_t RegisterCounterSet(const std::string &counterSetName, uint16_t count=0, const Optional< std::string > &parentCategoryName=EmptyOptional()) override
uint16_t RegisterCounter(const uint16_t uid, const std::string &parentCategoryName, uint16_t counterClass, uint16_t interpolation, double multiplier, const std::string &name, const std::string &description, const Optional< std::string > &units=EmptyOptional(), const Optional< uint16_t > &numberOfCores=EmptyOptional(), const Optional< uint16_t > &deviceUid=EmptyOptional(), const Optional< uint16_t > &counterSetUid=EmptyOptional()) override
void RegisterCategory(const std::string &categoryName) override
EmptyOptional is used to initialize the Optional class in case we want to have default value for an O...
Definition: Optional.hpp:32
RegisterBackendCounters(uint16_t currentMaxGlobalCounterID, const BackendId &backendId, ProfilingService &profilingService)