aboutsummaryrefslogtreecommitdiff
path: root/src/armnn/Runtime.cpp
diff options
context:
space:
mode:
authorDerek Lamberti <derek.lamberti@arm.com>2018-10-02 15:52:46 +0100
committerMatthew Bentham <matthew.bentham@arm.com>2018-10-22 16:57:54 +0100
commit03614f697396558a652f22c6efac2a3cd1f71460 (patch)
tree07955162c6031fec3817de65949201b38360bd61 /src/armnn/Runtime.cpp
parentc26ba759fe67bd14829a84b5abac80f51ca61946 (diff)
downloadarmnn-03614f697396558a652f22c6efac2a3cd1f71460.tar.gz
IVGCVSW-1823 *Free working mem only when network changes
Change-Id: I62b34713f8ebd96b9d4369f25cc8ba474aad8bb4
Diffstat (limited to 'src/armnn/Runtime.cpp')
-rw-r--r--src/armnn/Runtime.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/armnn/Runtime.cpp b/src/armnn/Runtime.cpp
index 8a7023ed76..e84cbe0a60 100644
--- a/src/armnn/Runtime.cpp
+++ b/src/armnn/Runtime.cpp
@@ -195,11 +195,23 @@ TensorInfo Runtime::GetOutputTensorInfo(NetworkId networkId, LayerBindingId laye
return GetLoadedNetworkPtr(networkId)->GetOutputTensorInfo(layerId);
}
+
Status Runtime::EnqueueWorkload(NetworkId networkId,
const InputTensors& inputTensors,
const OutputTensors& outputTensors)
{
LoadedNetwork* loadedNetwork = GetLoadedNetworkPtr(networkId);
+
+ static thread_local NetworkId lastId = networkId;
+ if (lastId != networkId)
+ {
+ LoadedNetworkFuncSafe(lastId, [](LoadedNetwork* network)
+ {
+ network->FreeWorkingMemory();
+ });
+ }
+ lastId=networkId;
+
return loadedNetwork->EnqueueWorkload(inputTensors, outputTensors);
}