From 4cefc4135f7fbf5c2ba532a4f5b14d2811f9ed9e Mon Sep 17 00:00:00 2001 From: Matthew Bentham Date: Tue, 18 Jun 2019 16:14:34 +0100 Subject: IVGCVSW-3307 Introduce RefTensorHandle Use it for intermediate tensors on reference backend. Lays the groundwork for memory management in the reference backend. Change-Id: I7d3ee132cac31bde70ae6e1b815f4f0b03d550a6 Signed-off-by: Matthew Bentham --- src/backends/backendsCommon/CpuTensorHandle.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src/backends/backendsCommon/CpuTensorHandle.cpp') diff --git a/src/backends/backendsCommon/CpuTensorHandle.cpp b/src/backends/backendsCommon/CpuTensorHandle.cpp index 9dcd3f38df..de83048340 100644 --- a/src/backends/backendsCommon/CpuTensorHandle.cpp +++ b/src/backends/backendsCommon/CpuTensorHandle.cpp @@ -11,6 +11,22 @@ namespace armnn { +TensorShape GetUnpaddedTensorStrides(const TensorInfo& tensorInfo) +{ + TensorShape shape(tensorInfo.GetShape()); + auto size = GetDataTypeSize(tensorInfo.GetDataType()); + auto runningSize = size; + std::vector strides(shape.GetNumDimensions()); + auto lastIdx = shape.GetNumDimensions()-1; + for (unsigned int i=0; i < lastIdx ; i++) + { + strides[lastIdx-i] = runningSize; + runningSize *= shape[lastIdx-i]; + } + strides[0] = runningSize; + return TensorShape(shape.GetNumDimensions(), strides.data()); +} + ConstCpuTensorHandle::ConstCpuTensorHandle(const TensorInfo& tensorInfo) : m_TensorInfo(tensorInfo) , m_Memory(nullptr) -- cgit v1.2.1