// // Copyright © 2022 Arm Ltd and Contributors. All rights reserved. // SPDX-License-Identifier: MIT // #pragma once #include #include #include namespace arm { namespace pipe { /// The lowest performance data capture interval we support is 10 miliseconds. constexpr unsigned int LOWEST_CAPTURE_PERIOD = 10000u; } // namespace pipe } // namespace arm namespace armnn { namespace profiling { struct ProfilingOptions { ProfilingOptions() : m_EnableProfiling(false), m_TimelineEnabled(false), m_OutgoingCaptureFile(""), m_IncomingCaptureFile(""), m_FileOnly(false), m_CapturePeriod(arm::pipe::LOWEST_CAPTURE_PERIOD), m_FileFormat("binary"), m_LocalPacketHandlers() {} /// Indicates whether external profiling is enabled or not. bool m_EnableProfiling; /// Indicates whether external timeline profiling is enabled or not. bool m_TimelineEnabled; /// Path to a file in which outgoing timeline profiling messages will be stored. std::string m_OutgoingCaptureFile; /// Path to a file in which incoming timeline profiling messages will be stored. std::string m_IncomingCaptureFile; /// Enable profiling output to file only. bool m_FileOnly; /// The duration at which captured profiling messages will be flushed. uint32_t m_CapturePeriod; /// The format of the file used for outputting profiling data. std::string m_FileFormat; std::vector m_LocalPacketHandlers; }; } // namespace profiling } // namespace armnn