diff options
author | Derek Lamberti <derek.lamberti@arm.com> | 2018-10-02 15:52:46 +0100 |
---|---|---|
committer | Matthew Bentham <matthew.bentham@arm.com> | 2018-10-22 16:57:54 +0100 |
commit | 03614f697396558a652f22c6efac2a3cd1f71460 (patch) | |
tree | 07955162c6031fec3817de65949201b38360bd61 /src/armnn/Runtime.cpp | |
parent | c26ba759fe67bd14829a84b5abac80f51ca61946 (diff) | |
download | armnn-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.cpp | 12 |
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); } |