diff options
author | Sadik Armagan <sadik.armagan@arm.com> | 2022-07-01 14:32:05 +0100 |
---|---|---|
committer | Nikhil Raj <nikhil.raj@arm.com> | 2022-07-08 15:23:07 +0100 |
commit | a045ac07f8613edc4e0027b226eadd72e7a423ec (patch) | |
tree | 7eec878e05d762f86febea2195eee2a3a2f1a687 /src/armnn/LoadedNetwork.cpp | |
parent | 93b650cb6c602aea3436725439d28ab0806142ca (diff) | |
download | armnn-a045ac07f8613edc4e0027b226eadd72e7a423ec.tar.gz |
IVGCVSW-6957 'Import Host Memory in SL'
* Enabled import host memory in SL as default
* Updated import host memory functionality in GpuAcc
Signed-off-by: Sadik Armagan <sadik.armagan@arm.com>
Change-Id: I22132b1e1008159b0e7247219762e3e9ae5eba10
Diffstat (limited to 'src/armnn/LoadedNetwork.cpp')
-rw-r--r-- | src/armnn/LoadedNetwork.cpp | 37 |
1 files changed, 26 insertions, 11 deletions
diff --git a/src/armnn/LoadedNetwork.cpp b/src/armnn/LoadedNetwork.cpp index a27add921e..8e664e699d 100644 --- a/src/armnn/LoadedNetwork.cpp +++ b/src/armnn/LoadedNetwork.cpp @@ -1,5 +1,5 @@ // -// Copyright © 2017 Arm Ltd and Contributors. All rights reserved. +// Copyright © 2022 Arm Ltd and Contributors. All rights reserved. // SPDX-License-Identifier: MIT // @@ -1466,13 +1466,21 @@ std::vector<ImportedInputId> LoadedNetwork::ImportInputs(const InputTensors& inp std::make_unique<ConstPassthroughTensorHandle>(inputTensor.second.GetInfo(), inputTensor.second.GetMemoryArea()); - if (outputTensorHandle->CanBeImported(passThroughTensorHandle->Map(), forceImportMemorySource) - && (outputTensorHandle->Import(passThroughTensorHandle->Map(), forceImportMemorySource))) + try { - importedInputs.push_back(inputIndex); + if (outputTensorHandle->CanBeImported(passThroughTensorHandle->Map(), forceImportMemorySource) + && (outputTensorHandle->Import(passThroughTensorHandle->Map(), forceImportMemorySource))) + { + importedInputs.push_back(inputIndex); + } + passThroughTensorHandle->Unmap(); + } + catch(const MemoryImportException& exception) + { + ARMNN_LOG(error) << "An error occurred attempting to import input_" + << inputIndex << " : " << exception.what(); + passThroughTensorHandle->Unmap(); } - passThroughTensorHandle->Unmap(); - inputIndex++; } @@ -1576,7 +1584,6 @@ std::vector<ImportedOutputId> LoadedNetwork::ImportOutputs(const OutputTensors& for (const BindableLayer* const outputLayer : graph.GetOutputLayers()) { auto inputTensorHandle = m_PreImportedOutputHandles[outputIndex].m_TensorHandle.get(); - if (!inputTensorHandle) { outputIndex++; @@ -1596,11 +1603,19 @@ std::vector<ImportedOutputId> LoadedNetwork::ImportOutputs(const OutputTensors& } const auto outputTensor = *it; - // Check if the output memory can be imported - if (inputTensorHandle->CanBeImported(outputTensor.second.GetMemoryArea(), forceImportMemorySource) - && inputTensorHandle->Import(outputTensor.second.GetMemoryArea(), forceImportMemorySource)) + try + { + // Check if the output memory can be imported + if (inputTensorHandle->CanBeImported(outputTensor.second.GetMemoryArea(), forceImportMemorySource) + && inputTensorHandle->Import(outputTensor.second.GetMemoryArea(), forceImportMemorySource)) + { + importedOutputs.push_back(outputIndex); + } + } + catch(const MemoryImportException& exception) { - importedOutputs.push_back(outputIndex); + ARMNN_LOG(error) << "An error occurred attempting to import output_" + << outputIndex << " : " << exception.what(); } outputIndex++; } |