| // |
| // Copyright © 2019 Arm Ltd. All rights reserved. |
| // SPDX-License-Identifier: MIT |
| // |
| |
| #include "TimelineUtilityMethods.hpp" |
| #include "ProfilingService.hpp" |
| #include "LabelsAndEventClasses.hpp" |
| |
| namespace armnn |
| { |
| |
| namespace profiling |
| { |
| |
| void TimelineUtilityMethods::SendWellKnownLabelsAndEventClasses() |
| { |
| // Send the "name" label, this call throws in case of error |
| m_SendTimelinePacket.SendTimelineLabelBinaryPacket(LabelsAndEventClasses::NAME_GUID, |
| LabelsAndEventClasses::NAME_LABEL); |
| |
| // Send the "type" label, this call throws in case of error |
| m_SendTimelinePacket.SendTimelineLabelBinaryPacket(LabelsAndEventClasses::TYPE_GUID, |
| LabelsAndEventClasses::TYPE_LABEL); |
| |
| // Send the "index" label, this call throws in case of error |
| m_SendTimelinePacket.SendTimelineLabelBinaryPacket(LabelsAndEventClasses::INDEX_GUID, |
| LabelsAndEventClasses::INDEX_LABEL); |
| |
| // Send the "start of life" event class, this call throws in case of error |
| m_SendTimelinePacket.SendTimelineEventClassBinaryPacket(LabelsAndEventClasses::ARMNN_PROFILING_SOL_EVENT_CLASS); |
| |
| // Send the "end of life" event class, this call throws in case of error |
| m_SendTimelinePacket.SendTimelineEventClassBinaryPacket(LabelsAndEventClasses::ARMNN_PROFILING_EOL_EVENT_CLASS); |
| } |
| |
| ProfilingStaticGuid TimelineUtilityMethods::DeclareLabel(const std::string& labelName) |
| { |
| // Check that the label name is valid |
| if (labelName.empty()) |
| { |
| // The label name is invalid |
| throw InvalidArgumentException("Invalid label name, the label name cannot be empty"); |
| } |
| |
| // Generate a static GUID for the given label name |
| ProfilingStaticGuid labelGuid = ProfilingService::Instance().GenerateStaticId(labelName); |
| |
| // Send the new label to the external profiling service, this call throws in case of error |
| m_SendTimelinePacket.SendTimelineLabelBinaryPacket(labelGuid, labelName); |
| |
| return labelGuid; |
| } |
| |
| } // namespace profiling |
| |
| } // namespace armnn |