diff options
author | Francis Murtagh <francis.murtagh@arm.com> | 2021-04-20 16:37:55 +0100 |
---|---|---|
committer | Francis Murtagh <francis.murtagh@arm.com> | 2021-04-20 16:38:04 +0100 |
commit | 4af561666b0ce5c12164447a5f7eb9722abb85f8 (patch) | |
tree | 8fc485d875aa91d6920c9104505541fb94b832b6 /src/armnn/layers/ConstantLayer.cpp | |
parent | ec8b333001808f532d17a7ca2efd563f4181ff40 (diff) | |
download | armnn-4af561666b0ce5c12164447a5f7eb9722abb85f8.tar.gz |
IVGCVSW-5816 Constant memory access
* Add new class ManagedConstTensorHandle to Unmap when out of scope
* Integrate into existing layers that have constants
* Add unit tests
Signed-off-by: Francis Murtagh <francis.murtagh@arm.com>
Change-Id: I0a05e14e438804b37e9862e76b5ca329483f6b45
Diffstat (limited to 'src/armnn/layers/ConstantLayer.cpp')
-rw-r--r-- | src/armnn/layers/ConstantLayer.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/armnn/layers/ConstantLayer.cpp b/src/armnn/layers/ConstantLayer.cpp index 8ae34b6709..eb28187d25 100644 --- a/src/armnn/layers/ConstantLayer.cpp +++ b/src/armnn/layers/ConstantLayer.cpp @@ -64,14 +64,16 @@ void ConstantLayer::ValidateTensorShapesFromInputs() void ConstantLayer::Accept(ILayerVisitor& visitor) const { - ConstTensor layerOutputTensor(m_LayerOutput->GetTensorInfo(), m_LayerOutput->Map(true)) ; + ManagedConstTensorHandle managedLayerOutput(m_LayerOutput); + ConstTensor layerOutputTensor(managedLayerOutput.GetTensorInfo(), managedLayerOutput.Map()); visitor.VisitConstantLayer(this, layerOutputTensor, GetName()); } void ConstantLayer::ExecuteStrategy(IStrategy& strategy) const { - std::vector<armnn::ConstTensor> constTensors { {m_LayerOutput->GetTensorInfo(), m_LayerOutput->Map(true)} }; - strategy.ExecuteStrategy(this, BaseDescriptor(), constTensors, GetName()); + ManagedConstTensorHandle managedLayerOutput(m_LayerOutput); + ConstTensor layerOutputTensor(managedLayerOutput.GetTensorInfo(), managedLayerOutput.Map()); + strategy.ExecuteStrategy(this, BaseDescriptor(), { layerOutputTensor }, GetName()); } } // namespace armnn |