aboutsummaryrefslogtreecommitdiff
path: root/src/armnn/LoadedNetwork.hpp
diff options
context:
space:
mode:
authorFinn Williams <finn.williams@arm.com>2022-02-15 20:47:34 +0000
committerFinn Williams <finn.williams@arm.com>2022-02-16 19:30:43 +0000
commit73c547da9b403ff19adb94032db51d8d0f1ee767 (patch)
treeb652d41a2ed99e20b5c4478a646ae0764cf22506 /src/armnn/LoadedNetwork.hpp
parentbb6c6490b43036400e3c2ff90d3beafe074ab0b1 (diff)
downloadarmnn-73c547da9b403ff19adb94032db51d8d0f1ee767.tar.gz
Refactor Forced Import
* Find and replace all workloads associated with imported IO * Only attempt tensorhandle replacement if supported by all workloads * Add new RefBaseWorkload to enable forced input for ref backend * Store imported tensorhandles in preImportedTensorhandles instead of outputHandles * Create pre-imported tensorhandles at network load-time * Front load import workload validation to load network time * Only call ReplaceTensorHandle when needed Change-Id: I3816a71b7f57ae90388bb16462a75d4ef3544fa7 Signed-off-by: Finn Williams <finn.williams@arm.com>
Diffstat (limited to 'src/armnn/LoadedNetwork.hpp')
-rw-r--r--src/armnn/LoadedNetwork.hpp17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/armnn/LoadedNetwork.hpp b/src/armnn/LoadedNetwork.hpp
index f637dec8eb..dc2f4dc10f 100644
--- a/src/armnn/LoadedNetwork.hpp
+++ b/src/armnn/LoadedNetwork.hpp
@@ -204,8 +204,21 @@ private:
// A set of vectors to record the workload queue indexes and their corresponding Input/Output Slot indexes
// which are connected to Inputs and Outputs for the network.
- std::unordered_map<LayerBindingId, std::pair<unsigned int, unsigned int>> m_InputWorkloadSlotPairs;
- std::unordered_map<LayerBindingId, std::pair<unsigned int, unsigned int>> m_OutputWorkloadSlotPairs;
+ struct WorkloadIndices
+ {
+ unsigned int m_WorkloadIndex;
+ unsigned int m_SlotIndex;
+ };
+
+ struct OutputWorkloadIndices
+ {
+ WorkloadIndices m_OutputSlotIndices;
+ std::vector<WorkloadIndices> m_InputSlotIndices;
+ };
+ std::unordered_map<LayerBindingId, std::vector<WorkloadIndices>> m_InputWorkloadSlotPairs;
+ std::unordered_map<LayerBindingId, OutputWorkloadIndices> m_OutputWorkloadSlotPairs;
+ std::vector<bool> m_IsInputImported;
+ std::vector<bool> m_IsOutputImported;
};