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 /shim/sl/canonical/ArmnnPreparedModel.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 'shim/sl/canonical/ArmnnPreparedModel.cpp')
-rw-r--r-- | shim/sl/canonical/ArmnnPreparedModel.cpp | 43 |
1 files changed, 17 insertions, 26 deletions
diff --git a/shim/sl/canonical/ArmnnPreparedModel.cpp b/shim/sl/canonical/ArmnnPreparedModel.cpp index c0ce3e41a1..54a019004c 100644 --- a/shim/sl/canonical/ArmnnPreparedModel.cpp +++ b/shim/sl/canonical/ArmnnPreparedModel.cpp @@ -93,21 +93,21 @@ bool IsPointerTypeMemory(const Request& request) { for (auto& input : request.inputs) { - if (input.lifetime == Request::Argument::LifeTime::POINTER) + if (input.lifetime != Request::Argument::LifeTime::POINTER) { - return true; + return false; } } for (auto& output: request.outputs) { - if (output.lifetime == Request::Argument::LifeTime::POINTER) + if (output.lifetime != Request::Argument::LifeTime::POINTER) { - return true; + return false; } } - return false; + return true; } } // anonymous namespace @@ -318,7 +318,8 @@ ExecutionResult<std::pair<std::vector<OutputShape>, Timing>> ArmnnPreparedModel: } VLOG(DRIVER) << "ArmnnPreparedModel::execute(): " << GetModelSummary(m_Model).c_str(); } - if (hasDeadlinePassed(deadline)) { + if (hasDeadlinePassed(deadline)) + { return NN_ERROR(ErrorStatus::MISSED_DEADLINE_PERSISTENT); } @@ -381,7 +382,8 @@ ErrorStatus ArmnnPreparedModel::ExecuteGraph( VLOG(DRIVER) << "ArmnnPreparedModel::ExecuteGraph(...)"; DumpTensorsIfRequired("Input", inputTensors); - + std::vector<armnn::ImportedInputId> importedInputIds; + std::vector<armnn::ImportedOutputId> importedOutputIds; try { if (ctx.measureTimings == MeasureTiming::YES) @@ -390,24 +392,13 @@ ErrorStatus ArmnnPreparedModel::ExecuteGraph( } armnn::Status status; VLOG(DRIVER) << "ArmnnPreparedModel::ExecuteGraph m_AsyncModelExecutionEnabled false"; - - if (pointerMemory) - { - std::vector<armnn::ImportedInputId> importedInputIds; - importedInputIds = m_Runtime->ImportInputs(m_NetworkId, inputTensors, armnn::MemorySource::Malloc); - - std::vector<armnn::ImportedOutputId> importedOutputIds; - importedOutputIds = m_Runtime->ImportOutputs(m_NetworkId, outputTensors, armnn::MemorySource::Malloc); - status = m_Runtime->EnqueueWorkload(m_NetworkId, - inputTensors, - outputTensors, - importedInputIds, - importedOutputIds); - } - else - { - status = m_Runtime->EnqueueWorkload(m_NetworkId, inputTensors, outputTensors); - } + importedInputIds = m_Runtime->ImportInputs(m_NetworkId, inputTensors, armnn::MemorySource::Malloc); + importedOutputIds = m_Runtime->ImportOutputs(m_NetworkId, outputTensors, armnn::MemorySource::Malloc); + status = m_Runtime->EnqueueWorkload(m_NetworkId, + inputTensors, + outputTensors, + importedInputIds, + importedOutputIds); if (ctx.measureTimings == MeasureTiming::YES) { @@ -430,7 +421,7 @@ ErrorStatus ArmnnPreparedModel::ExecuteGraph( return ErrorStatus::GENERAL_FAILURE; } - if (!pointerMemory) + if (!pointerMemory && (!importedInputIds.empty() || !importedOutputIds.empty())) { CommitPools(*pMemPools); } |