diff options
author | Colm Donelan <colm.donelan@arm.com> | 2021-10-21 23:39:52 +0100 |
---|---|---|
committer | Kevin May <kevin.may@arm.com> | 2021-10-27 10:56:34 +0000 |
commit | 4514228a5ced96fe79bbe1a089f4006f53fd5f29 (patch) | |
tree | 341ac2aa3a1b748ddf1365d7138430bb12682cb5 /delegate/src/armnn_delegate.cpp | |
parent | ec22ad2c54e1706cdd51a3d784f87c7d189120ae (diff) | |
download | armnn-4514228a5ced96fe79bbe1a089f4006f53fd5f29.tar.gz |
IVGCVSW-5879 Fix problems with using internal profiling from delegate.
* Pass through the value of m_EnableProfiling from Executenetwork to
DelegateOptions.
* If internal profiling is enabled print it out from inside the delegate.
* Remove an unnecessary ProfilerImpl instance from WorkingMemhandle.hpp
* Remove an unnecessary parameter from TfLiteDelegateMainImpl in
ExecuteNetwork.
Signed-off-by: Colm Donelan <colm.donelan@arm.com>
Change-Id: Ia1d4b1eb3a05ca5b4d80cc39e138c7fac182d948
Diffstat (limited to 'delegate/src/armnn_delegate.cpp')
-rw-r--r-- | delegate/src/armnn_delegate.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/delegate/src/armnn_delegate.cpp b/delegate/src/armnn_delegate.cpp index 5fbc920a1e..e029e2c420 100644 --- a/delegate/src/armnn_delegate.cpp +++ b/delegate/src/armnn_delegate.cpp @@ -397,7 +397,7 @@ ArmnnSubgraph* ArmnnSubgraph::Create(TfLiteContext* tfLiteContext, networkProperties); if (loadingStatus != armnn::Status::Success) { - // Optimize failed + // Network load failed. throw armnn::Exception("TfLiteArmnnDelegate: Network could not be loaded:" + errorMessage); } } @@ -457,6 +457,12 @@ TfLiteStatus ArmnnSubgraph::Invoke(TfLiteContext* tfLiteContext, TfLiteNode* tfL // Run graph auto status = m_Runtime->EnqueueWorkload(m_NetworkId, inputTensors, outputTensors); + // The delegate holds its own Arm NN runtime so this is our last chance to print internal profiling data. + std::shared_ptr<armnn::IProfiler> profiler = m_Runtime->GetProfiler(m_NetworkId); + if (profiler && profiler->IsProfilingEnabled()) + { + profiler->Print(std::cout); + } return (status == armnn::Status::Success) ? kTfLiteOk : kTfLiteError; } |