From 2135015779092e259ad5d5df185eda0c34b56359 Mon Sep 17 00:00:00 2001 From: Matteo Martincigh Date: Wed, 28 Nov 2018 16:22:22 +0000 Subject: IVGCVSW-2264 Move DataLayoutIndexed to armnnUtils * Since DataLayoutIndexed is now required in the TF parser, this changes move it to the armnnUtils library so that it'll be accessible by the armnnTfParser * Modified CMake files and Android.mk files accordingly Change-Id: Ie2620359ef288aeff64cb9e9bec068a466eee0e9 --- src/backends/backendsCommon/CMakeLists.txt | 2 - src/backends/backendsCommon/DataLayoutIndexed.cpp | 22 ---------- src/backends/backendsCommon/DataLayoutIndexed.hpp | 51 ---------------------- src/backends/backendsCommon/WorkloadData.cpp | 4 +- src/backends/backendsCommon/common.mk | 1 - .../backendsCommon/test/BatchNormTestImpl.hpp | 6 ++- .../backendsCommon/test/Conv2dTestImpl.hpp | 17 +++++--- .../backendsCommon/test/Pooling2dTestImpl.hpp | 4 +- 8 files changed, 20 insertions(+), 87 deletions(-) delete mode 100644 src/backends/backendsCommon/DataLayoutIndexed.cpp delete mode 100644 src/backends/backendsCommon/DataLayoutIndexed.hpp (limited to 'src/backends/backendsCommon') diff --git a/src/backends/backendsCommon/CMakeLists.txt b/src/backends/backendsCommon/CMakeLists.txt index f9bded76f4..1fe9888901 100644 --- a/src/backends/backendsCommon/CMakeLists.txt +++ b/src/backends/backendsCommon/CMakeLists.txt @@ -9,8 +9,6 @@ list(APPEND armnnBackendsCommon_sources CpuTensorHandle.cpp CpuTensorHandleFwd.hpp CpuTensorHandle.hpp - DataLayoutIndexed.hpp - DataLayoutIndexed.cpp IBackendInternal.hpp IBackendContext.hpp ILayerSupport.cpp diff --git a/src/backends/backendsCommon/DataLayoutIndexed.cpp b/src/backends/backendsCommon/DataLayoutIndexed.cpp deleted file mode 100644 index b99d52c5b9..0000000000 --- a/src/backends/backendsCommon/DataLayoutIndexed.cpp +++ /dev/null @@ -1,22 +0,0 @@ -// -// Copyright © 2017 Arm Ltd. All rights reserved. -// SPDX-License-Identifier: MIT -// - -#include "DataLayoutIndexed.hpp" - -namespace armnn { - -// Definition in include/armnn/Types.hpp -bool operator==(const DataLayout& dataLayout, const DataLayoutIndexed& indexed) -{ - return dataLayout == indexed.GetDataLayout(); -} - -// Definition in include/armnn/Types.hpp -bool operator==(const DataLayoutIndexed& indexed, const DataLayout& dataLayout) -{ - return indexed.GetDataLayout() == dataLayout; -} - -} diff --git a/src/backends/backendsCommon/DataLayoutIndexed.hpp b/src/backends/backendsCommon/DataLayoutIndexed.hpp deleted file mode 100644 index 8547475706..0000000000 --- a/src/backends/backendsCommon/DataLayoutIndexed.hpp +++ /dev/null @@ -1,51 +0,0 @@ -// -// Copyright © 2017 Arm Ltd. All rights reserved. -// SPDX-License-Identifier: MIT -// -#pragma once -#include - -namespace armnn -{ - -// Provides access to the appropriate indexes for Channels, Height and Width based on DataLayout -class DataLayoutIndexed -{ -public: - DataLayoutIndexed(DataLayout dataLayout) : m_DataLayout(dataLayout) - { - switch (dataLayout) - { - case DataLayout::NHWC: - m_ChannelsIndex = 3; - m_HeightIndex = 1; - m_WidthIndex = 2; - break; - case DataLayout::NCHW: - m_ChannelsIndex = 1; - m_HeightIndex = 2; - m_WidthIndex = 3; - break; - default: - throw InvalidArgumentException("Unknown DataLayout value: " + - std::to_string(static_cast(dataLayout))); - } - } - - DataLayout GetDataLayout() const { return m_DataLayout; } - unsigned int GetChannelsIndex() const { return m_ChannelsIndex; } - unsigned int GetHeightIndex() const { return m_HeightIndex; } - unsigned int GetWidthIndex() const { return m_WidthIndex; } - -private: - DataLayout m_DataLayout; - unsigned int m_ChannelsIndex; - unsigned int m_HeightIndex; - unsigned int m_WidthIndex; -}; - -// Equality methods -bool operator==(const DataLayout& dataLayout, const DataLayoutIndexed& indexed); -bool operator==(const DataLayoutIndexed& indexed, const DataLayout& dataLayout); - -} diff --git a/src/backends/backendsCommon/WorkloadData.cpp b/src/backends/backendsCommon/WorkloadData.cpp index 08f78fffe2..e0ba4a7ef7 100644 --- a/src/backends/backendsCommon/WorkloadData.cpp +++ b/src/backends/backendsCommon/WorkloadData.cpp @@ -6,7 +6,7 @@ #include "CpuTensorHandle.hpp" -#include +#include #include #include @@ -15,6 +15,8 @@ #include +using namespace armnnUtils; + namespace armnn { diff --git a/src/backends/backendsCommon/common.mk b/src/backends/backendsCommon/common.mk index 58de080794..9c3d50795e 100644 --- a/src/backends/backendsCommon/common.mk +++ b/src/backends/backendsCommon/common.mk @@ -9,7 +9,6 @@ COMMON_SOURCES := \ BackendRegistry.cpp \ - DataLayoutIndexed.cpp \ CpuTensorHandle.cpp \ ILayerSupport.cpp \ MemCopyWorkload.cpp \ diff --git a/src/backends/backendsCommon/test/BatchNormTestImpl.hpp b/src/backends/backendsCommon/test/BatchNormTestImpl.hpp index 6325130218..d63f0b5610 100644 --- a/src/backends/backendsCommon/test/BatchNormTestImpl.hpp +++ b/src/backends/backendsCommon/test/BatchNormTestImpl.hpp @@ -16,6 +16,8 @@ #include +#include + template LayerTestResult BatchNormTestImpl( armnn::IWorkloadFactory& workloadFactory, @@ -30,7 +32,7 @@ LayerTestResult BatchNormTestImpl( armnn::TensorInfo inputTensorInfo(inputOutputTensorShape, armnn::GetDataType()); armnn::TensorInfo outputTensorInfo(inputOutputTensorShape, armnn::GetDataType()); - armnn::DataLayoutIndexed dataLayoutIndexed(dataLayout); + armnnUtils::DataLayoutIndexed dataLayoutIndexed(dataLayout); armnn::TensorInfo tensorInfo({ inputOutputTensorShape[dataLayoutIndexed.GetChannelsIndex()] }, armnn::GetDataType()); @@ -188,4 +190,4 @@ LayerTestResult BatchNormTestNhwcImpl( CopyDataFromITensorHandle(&ret.output[0][0][0][0], outputHandle.get()); return ret; -} \ No newline at end of file +} diff --git a/src/backends/backendsCommon/test/Conv2dTestImpl.hpp b/src/backends/backendsCommon/test/Conv2dTestImpl.hpp index d137c8082a..0ba8d7552c 100755 --- a/src/backends/backendsCommon/test/Conv2dTestImpl.hpp +++ b/src/backends/backendsCommon/test/Conv2dTestImpl.hpp @@ -7,21 +7,24 @@ #include "WorkloadTestUtils.hpp" #include "TensorUtils.hpp" -#include +#include +#include + +#include + #include #include #include -#include -#include "QuantizeHelper.hpp" - -#include #include #include #include -#include "Permute.hpp" +#include + #include +#include + // Mapping from input type to bias type for fully connected layers. // float => float, uint8_t => int32_t template @@ -1141,7 +1144,7 @@ LayerTestResult CompareDepthwiseConvolution2dTestImpl( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, armnn::IWorkloadFactory& refWorkloadFactory, - const armnn::DataLayoutIndexed& layout) + const armnnUtils::DataLayoutIndexed& layout) { unsigned int inputHeight = 8; unsigned int inputWidth = 16; diff --git a/src/backends/backendsCommon/test/Pooling2dTestImpl.hpp b/src/backends/backendsCommon/test/Pooling2dTestImpl.hpp index 0f33ac01a5..f5e3386fed 100644 --- a/src/backends/backendsCommon/test/Pooling2dTestImpl.hpp +++ b/src/backends/backendsCommon/test/Pooling2dTestImpl.hpp @@ -20,6 +20,8 @@ #include +#include + #include #include @@ -36,7 +38,7 @@ LayerTestResult SimplePooling2dTestImpl( const boost::multi_array& outputExpected) { const armnn::DataLayout dataLayout = descriptor.m_DataLayout; - const armnn::DataLayoutIndexed dimensionIndices = dataLayout; + const armnnUtils::DataLayoutIndexed dimensionIndices = dataLayout; auto heightIndex = dimensionIndices.GetHeightIndex(); auto widthIndex = dimensionIndices.GetWidthIndex(); auto channelsIndex = dimensionIndices.GetChannelsIndex(); -- cgit v1.2.1