aboutsummaryrefslogtreecommitdiff
path: root/src/backends/reference/workloads/Stack.cpp
diff options
context:
space:
mode:
authorFinn Williams <Finn.Williams@arm.com>2021-04-26 12:06:34 +0100
committerfinn.williams <finn.williams@arm.com>2021-04-28 11:39:10 +0000
commit01097941ef85073c56cbd1d5f00d7e8ffeb9876d (patch)
tree818686d467b142084e0e49bbd4084670d1d0d50b /src/backends/reference/workloads/Stack.cpp
parentc2b99a8783388ec3bd90dfed2e1b6d4f4d4bd1c8 (diff)
downloadarmnn-01097941ef85073c56cbd1d5f00d7e8ffeb9876d.tar.gz
IVGCVSW-5843 Separate memory managers for WorkingMemHandles
* Add inter layer memory management to WorkingMemHandle * Change Const layers to be executed once in loadedNetworkConstruction and share tensorHandle between all WorkingMemHandles * Fix various reference workloads pointing to memory in the queueDescriptor Signed-off-by: Finn Williams <Finn.Williams@arm.com> Change-Id: I69d4b3c5c84d2f5abe4540c3e624ab4f00d88226
Diffstat (limited to 'src/backends/reference/workloads/Stack.cpp')
-rw-r--r--src/backends/reference/workloads/Stack.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/backends/reference/workloads/Stack.cpp b/src/backends/reference/workloads/Stack.cpp
index 386c8992eb..f2bce54d6a 100644
--- a/src/backends/reference/workloads/Stack.cpp
+++ b/src/backends/reference/workloads/Stack.cpp
@@ -24,6 +24,24 @@ void Stack(const StackQueueDescriptor& data,
unsigned int axis = data.m_Parameters.m_Axis;
+ // Can perform a simple concatenation when axis == 0
+ if (!axis)
+ {
+ unsigned int numInputs = data.m_Parameters.m_NumInputs;
+ unsigned int inputLength = inputInfo.GetNumElements();
+
+ for (unsigned int inputIdx=0; inputIdx<numInputs; ++inputIdx)
+ {
+ for (unsigned int elmt=0; elmt<inputLength; ++elmt)
+ {
+ (*inputs[inputIdx])[elmt];
+ output[(inputIdx * inputLength) + elmt];
+ output.Set(inputs[inputIdx]->Get());
+ }
+ }
+ return;
+ }
+
// Initialise output data
unsigned int numOutputElements = 1;
for (unsigned int i=0; i<outputNumDims; ++i)