From 19793551a67a5afd4cfb68e5dda7751e3d321a35 Mon Sep 17 00:00:00 2001 From: Cathal Corbett Date: Fri, 4 Mar 2022 10:36:34 +0000 Subject: IVGCVSW-6817 Add IProfilingService& as an argument to the IReportStructure Signed-off-by: Cathal Corbett Change-Id: Ib8e75eea49debe3b1dd8fa72623a55b26cb6ded4 --- src/armnn/LoadedNetwork.cpp | 26 +++++++++++++------------- src/armnn/LoadedNetwork.hpp | 2 +- src/armnn/Runtime.cpp | 20 ++++++++++---------- src/armnn/Runtime.hpp | 2 +- 4 files changed, 25 insertions(+), 25 deletions(-) (limited to 'src/armnn') diff --git a/src/armnn/LoadedNetwork.cpp b/src/armnn/LoadedNetwork.cpp index 1dbd1e3112..46c1ce58aa 100644 --- a/src/armnn/LoadedNetwork.cpp +++ b/src/armnn/LoadedNetwork.cpp @@ -543,14 +543,14 @@ void LoadedNetwork::AllocateAndExecuteConstantWorkloadsAsync() } } -void LoadedNetwork::SendNetworkStructure() +void LoadedNetwork::SendNetworkStructure(arm::pipe::IProfilingService& profilingService) { ARMNN_SCOPED_PROFILING_EVENT(Compute::Undefined, "LoadNetwork_SendNetworkStructure"); Graph& order = m_OptimizedNetwork->pOptimizedNetworkImpl->GetGraph().TopologicalSort(); ProfilingGuid networkGuid = m_OptimizedNetwork->GetGuid(); std::unique_ptr timelineUtils = - TimelineUtilityMethods::GetTimelineUtils(*m_ProfilingService); + TimelineUtilityMethods::GetTimelineUtils(profilingService); timelineUtils->CreateTypedEntity(networkGuid, LabelsAndEventClasses::NETWORK_GUID); @@ -560,19 +560,19 @@ void LoadedNetwork::SendNetworkStructure() 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: + case LayerType::Input: + case LayerType::Output: { - for (auto& workload : m_WorkloadQueue) - { - // Add workload to the post-optimisation network structure - AddWorkloadStructure(timelineUtils, workload, *layer); + // 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; } } diff --git a/src/armnn/LoadedNetwork.hpp b/src/armnn/LoadedNetwork.hpp index 19f2bcf907..85f90c116f 100644 --- a/src/armnn/LoadedNetwork.hpp +++ b/src/armnn/LoadedNetwork.hpp @@ -89,7 +89,7 @@ public: void RegisterDebugCallback(const DebugCallbackFunction& func); - void SendNetworkStructure(); + void SendNetworkStructure(arm::pipe::IProfilingService& profilingService); bool IsAsyncEnabled() { diff --git a/src/armnn/Runtime.cpp b/src/armnn/Runtime.cpp index af257e1be5..57bceddbfd 100644 --- a/src/armnn/Runtime.cpp +++ b/src/armnn/Runtime.cpp @@ -286,18 +286,18 @@ const std::shared_ptr RuntimeImpl::GetProfiler(NetworkId networkId) c return nullptr; } -void RuntimeImpl::ReportStructure() // arm::pipe::IProfilingService& profilingService as param +void RuntimeImpl::ReportStructure(arm::pipe::IProfilingService& profilingService) { - // No-op for the time being, but this may be useful in future to have the profilingService available - // if (profilingService.IsProfilingEnabled()){} - - LoadedNetworks::iterator it = m_LoadedNetworks.begin(); - while (it != m_LoadedNetworks.end()) + if (profilingService.IsProfilingEnabled()) { - auto& loadedNetwork = it->second; - loadedNetwork->SendNetworkStructure(); - // Increment the Iterator to point to next entry - it++; + LoadedNetworks::iterator it = m_LoadedNetworks.begin(); + while (it != m_LoadedNetworks.end()) + { + auto& loadedNetwork = it->second; + loadedNetwork->SendNetworkStructure(profilingService); + // Increment the Iterator to point to next entry + it++; + } } } diff --git a/src/armnn/Runtime.hpp b/src/armnn/Runtime.hpp index f2462b15d2..9a20902291 100644 --- a/src/armnn/Runtime.hpp +++ b/src/armnn/Runtime.hpp @@ -110,7 +110,7 @@ public: //NOTE: we won't need the profiling service reference but it is good to pass the service // in this way to facilitate other implementations down the road - void ReportStructure() override; + void ReportStructure(arm::pipe::IProfilingService& profilingService) override; void InitialiseProfilingService(arm::pipe::IProfilingService& profilingService) override; -- cgit v1.2.1