From 4e5fc1fb6c74fa6e4dcb24639db8fafd69a0a065 Mon Sep 17 00:00:00 2001 From: Aron Virginas-Tar Date: Thu, 22 Aug 2019 18:10:52 +0100 Subject: IVGCVSW-3410 Create Counter Directory metadata classes * Created classes Device, Counter, Category, CounterDirectory Signed-off-by: Aron Virginas-Tar Change-Id: Iaec4b0e154d962983c60460714bafcc1fb16f47e --- src/profiling/CounterDirectory.hpp | 104 +++++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 src/profiling/CounterDirectory.hpp (limited to 'src/profiling/CounterDirectory.hpp') diff --git a/src/profiling/CounterDirectory.hpp b/src/profiling/CounterDirectory.hpp new file mode 100644 index 0000000000..bbe7bcf6ef --- /dev/null +++ b/src/profiling/CounterDirectory.hpp @@ -0,0 +1,104 @@ +// +// Copyright © 2017 Arm Ltd. All rights reserved. +// SPDX-License-Identifier: MIT +// + +#pragma once + +#include +#include +#include + +namespace armnn +{ + +namespace profiling +{ + +class Device +{ +public: + uint16_t m_Uid; + std::string m_Name; + uint16_t m_Cores; +}; + +class Counter +{ +public: + uint16_t m_Uid; + uint16_t m_MaxCounterUid; + uint16_t m_Class; + uint16_t m_Interpolation; + float m_Multiplier; + std::string m_Name; + std::string m_Description; + std::string m_Units; +}; + +class Category +{ +public: + std::string m_Name; +}; + +class CounterDirectory final +{ +public: + CounterDirectory(uint16_t uid, + const std::string& name, + uint16_t deviceCount, + uint16_t counterCount, + uint16_t categoryCount); + + ~CounterDirectory() = default; + + uint16_t GetUid() const; + const std::string& GetName() const; + + uint16_t GetDeviceCount() const; + uint16_t GetCounterCount() const; + uint16_t GetCategoryCount() const; + + void GetDeviceValue(uint16_t index, uint32_t& value) const; + void SetDeviceValue(uint16_t index, uint32_t value); + + void GetDeviceObject(uint16_t index, Device* counter) const; + void SetDeviceObject(uint16_t index, Device* counter); + + void GetCounterValue(uint16_t index, uint32_t& value) const; + void SetCounterValue(uint16_t index, uint32_t value); + + void GetCounterObject(uint16_t index, Counter* counter) const; + void SetCounterObject(uint16_t index, Counter* counter); + + void GetCategoryValue(uint16_t index, uint32_t& value) const; + void SetCategoryValue(uint16_t index, uint32_t value); + + void GetCategoryObject(uint16_t index, Category* counter) const; + void SetCategoryObject(uint16_t index, Category* counter); + +private: + uint16_t m_Uid; + std::string m_Name; + + uint16_t m_DeviceCount; + uint16_t m_CounterCount; + uint16_t m_CategoryCount; + + std::vector> m_DeviceIds; + std::vector> m_CounterIds; + std::vector> m_CategoryIds; + + std::vector> m_DeviceObjects; + std::vector> m_CounterObjects; + std::vector> m_CategoryObjects; + + void CheckDeviceIndex(uint16_t index) const; + void CheckCounterIndex(uint16_t index) const; + void CheckCategoryIndex(uint16_t index) const; +}; + +} // namespace profiling + +} // namespace armnn -- cgit v1.2.1