From 39fedf04d226360a8c77ca1ca3e2528a709101b5 Mon Sep 17 00:00:00 2001 From: David Beck Date: Tue, 16 Oct 2018 12:58:49 +0100 Subject: IVGCVSW-2022 : fix for backend cmake files to respect BUILD_UNIT_TESTS variable Change-Id: I8d34419742152edd50f1ec438e32d3ccc4f38351 --- src/backends/aclCommon/CMakeLists.txt | 4 +- src/backends/aclCommon/test/CMakeLists.txt | 3 +- src/backends/aclCommon/test/MemCopyTestImpl.hpp | 84 +++++++++++++++++++++++++ src/backends/aclCommon/test/MemCopyTests.cpp | 5 +- src/backends/cl/CMakeLists.txt | 5 +- src/backends/cl/backend.cmake | 8 +-- src/backends/cl/test/ClMemCopyTests.cpp | 3 +- src/backends/neon/CMakeLists.txt | 6 +- src/backends/neon/backend.cmake | 8 +-- src/backends/neon/test/NeonMemCopyTests.cpp | 3 +- src/backends/reference/CMakeLists.txt | 5 +- src/backends/test/MemCopyTestImpl.hpp | 84 ------------------------- 12 files changed, 116 insertions(+), 102 deletions(-) create mode 100644 src/backends/aclCommon/test/MemCopyTestImpl.hpp delete mode 100644 src/backends/test/MemCopyTestImpl.hpp diff --git a/src/backends/aclCommon/CMakeLists.txt b/src/backends/aclCommon/CMakeLists.txt index 2bfd024e10..9282e1056a 100644 --- a/src/backends/aclCommon/CMakeLists.txt +++ b/src/backends/aclCommon/CMakeLists.txt @@ -23,7 +23,9 @@ list(APPEND armnnAclCommon_sources memory/PoolManager.hpp ) -add_subdirectory(test) +if(BUILD_UNIT_TESTS) + add_subdirectory(test) +endif() add_library(armnnAclCommon OBJECT ${armnnAclCommon_sources}) target_include_directories(armnnAclCommon PRIVATE ${PROJECT_SOURCE_DIR}/src) diff --git a/src/backends/aclCommon/test/CMakeLists.txt b/src/backends/aclCommon/test/CMakeLists.txt index 98008edeb5..4378276961 100644 --- a/src/backends/aclCommon/test/CMakeLists.txt +++ b/src/backends/aclCommon/test/CMakeLists.txt @@ -6,9 +6,10 @@ list(APPEND armnnAclCommonUnitTests_sources CreateWorkloadClNeon.hpp MemCopyTests.cpp + MemCopyTestImpl.hpp ) add_library(armnnAclCommonUnitTests OBJECT ${armnnAclCommonUnitTests_sources}) target_include_directories(armnnAclCommonUnitTests PRIVATE ${PROJECT_SOURCE_DIR}/src) target_include_directories(armnnAclCommonUnitTests PRIVATE ${PROJECT_SOURCE_DIR}/src/armnn) -target_include_directories(armnnAclCommonUnitTests PRIVATE ${PROJECT_SOURCE_DIR}/src/armnnUtils) \ No newline at end of file +target_include_directories(armnnAclCommonUnitTests PRIVATE ${PROJECT_SOURCE_DIR}/src/armnnUtils) diff --git a/src/backends/aclCommon/test/MemCopyTestImpl.hpp b/src/backends/aclCommon/test/MemCopyTestImpl.hpp new file mode 100644 index 0000000000..322cb07c1a --- /dev/null +++ b/src/backends/aclCommon/test/MemCopyTestImpl.hpp @@ -0,0 +1,84 @@ +// +// Copyright © 2017 Arm Ltd. All rights reserved. +// SPDX-License-Identifier: MIT +// +#pragma once + +#include +#include +#include + +#include + +#include + +namespace +{ + +LayerTestResult MemCopyTest(armnn::IWorkloadFactory& srcWorkloadFactory, + armnn::IWorkloadFactory& dstWorkloadFactory, + bool withSubtensors) +{ + const std::array shapeData = { { 1u, 1u, 6u, 5u } }; + const armnn::TensorShape tensorShape(4, shapeData.data()); + const armnn::TensorInfo tensorInfo(tensorShape, armnn::DataType::Float32); + boost::multi_array inputData = MakeTensor(tensorInfo, std::vector( + { + 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, + + 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, + + 11.0f, 12.0f, 13.0f, 14.0f, 15.0f, + + 16.0f, 17.0f, 18.0f, 19.0f, 20.0f, + + 21.0f, 22.0f, 23.0f, 24.0f, 25.0f, + + 26.0f, 27.0f, 28.0f, 29.0f, 30.0f, + }) + ); + + LayerTestResult ret(tensorInfo); + ret.outputExpected = inputData; + + boost::multi_array outputData(shapeData); + + auto inputTensorHandle = srcWorkloadFactory.CreateTensorHandle(tensorInfo); + auto outputTensorHandle = dstWorkloadFactory.CreateTensorHandle(tensorInfo); + + AllocateAndCopyDataToITensorHandle(inputTensorHandle.get(), inputData.data()); + outputTensorHandle->Allocate(); + + armnn::MemCopyQueueDescriptor memCopyQueueDesc; + armnn::WorkloadInfo workloadInfo; + + const unsigned int origin[4] = {}; + + auto workloadInput = (withSubtensors && srcWorkloadFactory.SupportsSubTensors()) + ? srcWorkloadFactory.CreateSubTensorHandle(*inputTensorHandle, tensorShape, origin) + : std::move(inputTensorHandle); + auto workloadOutput = (withSubtensors && dstWorkloadFactory.SupportsSubTensors()) + ? dstWorkloadFactory.CreateSubTensorHandle(*outputTensorHandle, tensorShape, origin) + : std::move(outputTensorHandle); + + AddInputToWorkload(memCopyQueueDesc, workloadInfo, tensorInfo, workloadInput.get()); + AddOutputToWorkload(memCopyQueueDesc, workloadInfo, tensorInfo, workloadOutput.get()); + + dstWorkloadFactory.CreateMemCopy(memCopyQueueDesc, workloadInfo)->Execute(); + + CopyDataFromITensorHandle(outputData.data(), workloadOutput.get()); + ret.output = outputData; + + return ret; +} + +template +LayerTestResult MemCopyTest(bool withSubtensors) +{ + SrcWorkloadFactory srcWorkloadFactory; + DstWorkloadFactory dstWorkloadFactory; + + return MemCopyTest(srcWorkloadFactory, dstWorkloadFactory, withSubtensors); +} + +} // anonymous namespace diff --git a/src/backends/aclCommon/test/MemCopyTests.cpp b/src/backends/aclCommon/test/MemCopyTests.cpp index 8ecdb1014d..7e503b1cdb 100644 --- a/src/backends/aclCommon/test/MemCopyTests.cpp +++ b/src/backends/aclCommon/test/MemCopyTests.cpp @@ -6,7 +6,10 @@ #include #include #include -#include + +#if ARMCOMPUTECL_ENABLED && ARMCOMPUTENEON_ENABLED +#include +#endif #include diff --git a/src/backends/cl/CMakeLists.txt b/src/backends/cl/CMakeLists.txt index 5704e0e8ab..d38fb68a0f 100644 --- a/src/backends/cl/CMakeLists.txt +++ b/src/backends/cl/CMakeLists.txt @@ -21,7 +21,10 @@ if(ARMCOMPUTECL) ) add_subdirectory(workloads) - add_subdirectory(test) + + if(BUILD_UNIT_TESTS) + add_subdirectory(test) + endif() endif() add_library(armnnClBackend OBJECT ${armnnClBackend_sources}) diff --git a/src/backends/cl/backend.cmake b/src/backends/cl/backend.cmake index f8a1c1c62a..eb62147335 100644 --- a/src/backends/cl/backend.cmake +++ b/src/backends/cl/backend.cmake @@ -3,12 +3,12 @@ # SPDX-License-Identifier: MIT # +add_subdirectory(${PROJECT_SOURCE_DIR}/src/backends/cl) +list(APPEND armnnLibraries armnnClBackend) + if(ARMCOMPUTECL) - add_subdirectory(${PROJECT_SOURCE_DIR}/src/backends/cl) - list(APPEND armnnLibraries armnnClBackend armnnClBackendWorkloads) + list(APPEND armnnLibraries armnnClBackendWorkloads) list(APPEND armnnUnitTestLibraries armnnClBackendUnitTests) else() message("CL backend is disabled") - add_subdirectory(${PROJECT_SOURCE_DIR}/src/backends/cl) - list(APPEND armnnLibraries armnnClBackend) endif() diff --git a/src/backends/cl/test/ClMemCopyTests.cpp b/src/backends/cl/test/ClMemCopyTests.cpp index af8a36d6c0..2635495e46 100644 --- a/src/backends/cl/test/ClMemCopyTests.cpp +++ b/src/backends/cl/test/ClMemCopyTests.cpp @@ -5,8 +5,7 @@ #include #include - -#include +#include #include diff --git a/src/backends/neon/CMakeLists.txt b/src/backends/neon/CMakeLists.txt index c44dcc1075..e294ff7319 100644 --- a/src/backends/neon/CMakeLists.txt +++ b/src/backends/neon/CMakeLists.txt @@ -19,7 +19,11 @@ if(ARMCOMPUTENEON) ) add_subdirectory(workloads) - add_subdirectory(test) + + if(BUILD_UNIT_TESTS) + add_subdirectory(test) + endif() + else() list(APPEND armnnNeonBackend_sources NeonLayerSupport.cpp diff --git a/src/backends/neon/backend.cmake b/src/backends/neon/backend.cmake index 0240d527b3..c8ff4880b0 100644 --- a/src/backends/neon/backend.cmake +++ b/src/backends/neon/backend.cmake @@ -3,12 +3,12 @@ # SPDX-License-Identifier: MIT # +add_subdirectory(${PROJECT_SOURCE_DIR}/src/backends/neon) +list(APPEND armnnLibraries armnnNeonBackend) + if(ARMCOMPUTENEON) - add_subdirectory(${PROJECT_SOURCE_DIR}/src/backends/neon) - list(APPEND armnnLibraries armnnNeonBackend armnnNeonBackendWorkloads) + list(APPEND armnnLibraries armnnNeonBackendWorkloads) list(APPEND armnnUnitTestLibraries armnnNeonBackendUnitTests) else() message("NEON backend is disabled") - add_subdirectory(${PROJECT_SOURCE_DIR}/src/backends/neon) - list(APPEND armnnLibraries armnnNeonBackend) endif() diff --git a/src/backends/neon/test/NeonMemCopyTests.cpp b/src/backends/neon/test/NeonMemCopyTests.cpp index ddb47343a1..2b96d7c578 100644 --- a/src/backends/neon/test/NeonMemCopyTests.cpp +++ b/src/backends/neon/test/NeonMemCopyTests.cpp @@ -5,8 +5,7 @@ #include #include - -#include +#include #include diff --git a/src/backends/reference/CMakeLists.txt b/src/backends/reference/CMakeLists.txt index 05ef7d5a8f..a0d27cc387 100644 --- a/src/backends/reference/CMakeLists.txt +++ b/src/backends/reference/CMakeLists.txt @@ -18,4 +18,7 @@ target_include_directories(armnnRefBackend PRIVATE ${PROJECT_SOURCE_DIR}/src/arm target_include_directories(armnnRefBackend PRIVATE ${PROJECT_SOURCE_DIR}/src/armnnUtils) add_subdirectory(workloads) -add_subdirectory(test) + +if(BUILD_UNIT_TESTS) + add_subdirectory(test) +endif() diff --git a/src/backends/test/MemCopyTestImpl.hpp b/src/backends/test/MemCopyTestImpl.hpp deleted file mode 100644 index dab7f47915..0000000000 --- a/src/backends/test/MemCopyTestImpl.hpp +++ /dev/null @@ -1,84 +0,0 @@ -// -// Copyright © 2017 Arm Ltd. All rights reserved. -// SPDX-License-Identifier: MIT -// -#pragma once - -#include "LayerTests.hpp" -#include "TensorCopyUtils.hpp" -#include "WorkloadTestUtils.hpp" - -#include - -#include - -namespace -{ - -LayerTestResult MemCopyTest(armnn::IWorkloadFactory& srcWorkloadFactory, - armnn::IWorkloadFactory& dstWorkloadFactory, - bool withSubtensors) -{ - const std::array shapeData = { { 1u, 1u, 6u, 5u } }; - const armnn::TensorShape tensorShape(4, shapeData.data()); - const armnn::TensorInfo tensorInfo(tensorShape, armnn::DataType::Float32); - boost::multi_array inputData = MakeTensor(tensorInfo, std::vector( - { - 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, - - 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, - - 11.0f, 12.0f, 13.0f, 14.0f, 15.0f, - - 16.0f, 17.0f, 18.0f, 19.0f, 20.0f, - - 21.0f, 22.0f, 23.0f, 24.0f, 25.0f, - - 26.0f, 27.0f, 28.0f, 29.0f, 30.0f, - }) - ); - - LayerTestResult ret(tensorInfo); - ret.outputExpected = inputData; - - boost::multi_array outputData(shapeData); - - auto inputTensorHandle = srcWorkloadFactory.CreateTensorHandle(tensorInfo); - auto outputTensorHandle = dstWorkloadFactory.CreateTensorHandle(tensorInfo); - - AllocateAndCopyDataToITensorHandle(inputTensorHandle.get(), inputData.data()); - outputTensorHandle->Allocate(); - - armnn::MemCopyQueueDescriptor memCopyQueueDesc; - armnn::WorkloadInfo workloadInfo; - - const unsigned int origin[4] = {}; - - auto workloadInput = (withSubtensors && srcWorkloadFactory.SupportsSubTensors()) - ? srcWorkloadFactory.CreateSubTensorHandle(*inputTensorHandle, tensorShape, origin) - : std::move(inputTensorHandle); - auto workloadOutput = (withSubtensors && dstWorkloadFactory.SupportsSubTensors()) - ? dstWorkloadFactory.CreateSubTensorHandle(*outputTensorHandle, tensorShape, origin) - : std::move(outputTensorHandle); - - AddInputToWorkload(memCopyQueueDesc, workloadInfo, tensorInfo, workloadInput.get()); - AddOutputToWorkload(memCopyQueueDesc, workloadInfo, tensorInfo, workloadOutput.get()); - - dstWorkloadFactory.CreateMemCopy(memCopyQueueDesc, workloadInfo)->Execute(); - - CopyDataFromITensorHandle(outputData.data(), workloadOutput.get()); - ret.output = outputData; - - return ret; -} - -template -LayerTestResult MemCopyTest(bool withSubtensors) -{ - SrcWorkloadFactory srcWorkloadFactory; - DstWorkloadFactory dstWorkloadFactory; - - return MemCopyTest(srcWorkloadFactory, dstWorkloadFactory, withSubtensors); -} - -} // anonymous namespace -- cgit v1.2.1