diff options
author | Keith Davis <keith.davis@arm.com> | 2020-03-30 10:43:41 +0100 |
---|---|---|
committer | Finn Williams <Finn.Williams@arm.com> | 2020-04-02 16:56:24 +0100 |
commit | 33ed221e2e8e3a77b5f543061e0cce07b259fc64 (patch) | |
tree | 8467f2e4ce019bfa2837ae1030c321509414780c /src/armnn/LoadedNetwork.cpp | |
parent | 0fe279bbf22fd2116b283b9df61076d526f115e4 (diff) | |
download | armnn-33ed221e2e8e3a77b5f543061e0cce07b259fc64.tar.gz |
IVGCVSW-4455 Add an Activate and Deactivate control packet to the protocol
* Add Activate/Deactivate command handlers
* Add IReportStructure, INotifyBackends single function interfaces
* Add overrided mechanism to report structure in Runtime.cpp
* Add overrided mechanism to notify backends in ProfilingService.cpp
* Add optional IReportStructure argument to ProfilingService constructor
for use in ActivateTimelineReportingCommandHandler
* Refactoring and tidying up indentation
* Removal of unused code in ProfilingUtils.cpp and ProfilingService.cpp
* Added GatordMock end to end test
* Fixed an issue with SendCounterPacket sending duplicate packets
* Fixed an issue with DirectoryCaptureCommandHandler handling of Optional
Signed-off-by: Keith Davis <keith.davis@arm.com>
Signed-off-by: Finn Williams <Finn.Williams@arm.com>
Change-Id: I5ef1b74171459bfc649861dedf99921d22c9e63f
Diffstat (limited to 'src/armnn/LoadedNetwork.cpp')
-rw-r--r-- | src/armnn/LoadedNetwork.cpp | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/armnn/LoadedNetwork.cpp b/src/armnn/LoadedNetwork.cpp index f3d742c515..9d181e535a 100644 --- a/src/armnn/LoadedNetwork.cpp +++ b/src/armnn/LoadedNetwork.cpp @@ -263,6 +263,43 @@ LoadedNetwork::LoadedNetwork(std::unique_ptr<OptimizedNetwork> net, } } +void LoadedNetwork::SendNetworkStructure() +{ + Graph& order = m_OptimizedNetwork->GetGraph().TopologicalSort(); + ProfilingGuid networkGuid = m_OptimizedNetwork->GetGuid(); + + std::unique_ptr<TimelineUtilityMethods> timelineUtils = + TimelineUtilityMethods::GetTimelineUtils(m_ProfilingService); + + timelineUtils->CreateTypedEntity(networkGuid, LabelsAndEventClasses::NETWORK_GUID); + + for (auto&& layer : order) + { + // Add layer to the post-optimisation network structure + AddLayerStructure(timelineUtils, *layer, networkGuid); + switch (layer->GetType()) + { + case LayerType::Input: + case LayerType::Output: + { + // Inputs and outputs are treated in a special way - see EnqueueInput() and EnqueueOutput(). + break; + } + default: + { + for (auto& workload : m_WorkloadQueue) + { + // Add workload to the post-optimisation network structure + AddWorkloadStructure(timelineUtils, workload, *layer); + } + break; + } + } + } + // Commit to send the post-optimisation network structure + timelineUtils->Commit(); +} + TensorInfo LoadedNetwork::GetInputTensorInfo(LayerBindingId layerId) const { for (auto&& inputLayer : m_OptimizedNetwork->GetGraph().GetInputLayers()) |