aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorColm Donelan <colm.donelan@arm.com>2022-02-15 14:59:08 +0000
committerColm Donelan <colm.donelan@arm.com>2022-02-15 15:05:43 +0000
commit2048b68cf7caf14e03ceaf84d841bda7bbda8c75 (patch)
tree37e8c5e102f487a67ca51c224f54cccafa527fb6
parent0c65ddb3bdb29850b669fafb00a46cb7f67ee675 (diff)
downloadandroid-nn-driver-2048b68cf7caf14e03ceaf84d841bda7bbda8c75.tar.gz
IVGCVSW-6783 Re-ordering DumpJsonProfilingIfRequired in ArmnnPreparedModel
* In the destructor of ArmnnPreparedModel, DumpJsonProfilingIfRequired was being called with a potentially null profiler. Signed-off-by: Colm Donelan <colm.donelan@arm.com> Change-Id: Id0d3a2403878fedc4e05dc498edb48d574232c71
-rw-r--r--ArmnnPreparedModel.cpp9
-rw-r--r--ArmnnPreparedModel_1_2.cpp9
-rw-r--r--ArmnnPreparedModel_1_3.cpp9
3 files changed, 18 insertions, 9 deletions
diff --git a/ArmnnPreparedModel.cpp b/ArmnnPreparedModel.cpp
index 563abd44..38f1bc20 100644
--- a/ArmnnPreparedModel.cpp
+++ b/ArmnnPreparedModel.cpp
@@ -154,6 +154,12 @@ ArmnnPreparedModel<HalVersion>::~ArmnnPreparedModel()
{
// Get a hold of the profiler used by this model.
std::shared_ptr<armnn::IProfiler> profiler = m_Runtime->GetProfiler(m_NetworkId);
+ if (profiler && m_GpuProfilingEnabled)
+ {
+ // Dump the profiling info to a file if required.
+ DumpJsonProfilingIfRequired(m_GpuProfilingEnabled, m_RequestInputsAndOutputsDumpDir, m_NetworkId,
+ profiler.get());
+ }
// Unload the network associated with this model.
m_Runtime->UnloadNetwork(m_NetworkId);
@@ -163,9 +169,6 @@ ArmnnPreparedModel<HalVersion>::~ArmnnPreparedModel()
{
m_Threadpool->UnloadMemHandles(m_NetworkId);
}
-
- // Dump the profiling info to a file if required.
- DumpJsonProfilingIfRequired(m_GpuProfilingEnabled, m_RequestInputsAndOutputsDumpDir, m_NetworkId, profiler.get());
}
template<typename HalVersion>
diff --git a/ArmnnPreparedModel_1_2.cpp b/ArmnnPreparedModel_1_2.cpp
index 29055a70..7f35e60f 100644
--- a/ArmnnPreparedModel_1_2.cpp
+++ b/ArmnnPreparedModel_1_2.cpp
@@ -230,6 +230,12 @@ ArmnnPreparedModel_1_2<HalVersion>::~ArmnnPreparedModel_1_2()
{
// Get a hold of the profiler used by this model.
std::shared_ptr<armnn::IProfiler> profiler = m_Runtime->GetProfiler(m_NetworkId);
+ if (profiler && m_GpuProfilingEnabled)
+ {
+ // Dump the profiling info to a file if required.
+ DumpJsonProfilingIfRequired(m_GpuProfilingEnabled, m_RequestInputsAndOutputsDumpDir, m_NetworkId,
+ profiler.get());
+ }
// Unload the network associated with this model.
m_Runtime->UnloadNetwork(m_NetworkId);
@@ -239,9 +245,6 @@ ArmnnPreparedModel_1_2<HalVersion>::~ArmnnPreparedModel_1_2()
{
m_Threadpool->UnloadMemHandles(m_NetworkId);
}
-
- // Dump the profiling info to a file if required.
- DumpJsonProfilingIfRequired(m_GpuProfilingEnabled, m_RequestInputsAndOutputsDumpDir, m_NetworkId, profiler.get());
}
template<typename HalVersion>
diff --git a/ArmnnPreparedModel_1_3.cpp b/ArmnnPreparedModel_1_3.cpp
index abd135e8..36575b86 100644
--- a/ArmnnPreparedModel_1_3.cpp
+++ b/ArmnnPreparedModel_1_3.cpp
@@ -254,6 +254,12 @@ ArmnnPreparedModel_1_3<HalVersion>::~ArmnnPreparedModel_1_3()
{
// Get a hold of the profiler used by this model.
std::shared_ptr<armnn::IProfiler> profiler = m_Runtime->GetProfiler(m_NetworkId);
+ if (profiler && m_GpuProfilingEnabled)
+ {
+ // Dump the profiling info to a file if required.
+ DumpJsonProfilingIfRequired(m_GpuProfilingEnabled, m_RequestInputsAndOutputsDumpDir, m_NetworkId,
+ profiler.get());
+ }
// Unload the network associated with this model.
m_Runtime->UnloadNetwork(m_NetworkId);
@@ -263,9 +269,6 @@ ArmnnPreparedModel_1_3<HalVersion>::~ArmnnPreparedModel_1_3()
{
m_Threadpool->UnloadMemHandles(m_NetworkId);
}
-
- // Dump the profiling info to a file if required.
- DumpJsonProfilingIfRequired(m_GpuProfilingEnabled, m_RequestInputsAndOutputsDumpDir, m_NetworkId, profiler.get());
}
template<typename HalVersion>