aboutsummaryrefslogtreecommitdiff
path: root/src/backends/test/MemCopyTests.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/backends/test/MemCopyTests.cpp')
-rw-r--r--src/backends/test/MemCopyTests.cpp180
1 files changed, 0 insertions, 180 deletions
diff --git a/src/backends/test/MemCopyTests.cpp b/src/backends/test/MemCopyTests.cpp
deleted file mode 100644
index f66caffd92..0000000000
--- a/src/backends/test/MemCopyTests.cpp
+++ /dev/null
@@ -1,180 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-#include <boost/test/unit_test.hpp>
-#include <boost/multi_array.hpp>
-
-#include <armnn/ArmNN.hpp>
-#include <backends/reference/RefWorkloadFactory.hpp>
-#if ARMCOMPUTECL_ENABLED
-#include <backends/cl/ClWorkloadFactory.hpp>
-#endif
-#if ARMCOMPUTENEON_ENABLED
-#include <backends/neon/NeonWorkloadFactory.hpp>
-#endif
-#include <backends/CpuTensorHandle.hpp>
-#include <test/TensorHelpers.hpp>
-
-#include "TensorCopyUtils.hpp"
-#include "WorkloadTestUtils.hpp"
-
-#if ARMCOMPUTECL_ENABLED || ARMCOMPUTENEON_ENABLED
-#include <backends/aclCommon/ArmComputeTensorUtils.hpp>
-#endif
-
-BOOST_AUTO_TEST_SUITE(MemCopyTestSuite)
-
-void MemCopyTest(armnn::IWorkloadFactory& srcWorkloadFactory, armnn::IWorkloadFactory& dstWorkloadFactory,
- bool withSubtensors)
-{
- const std::array<unsigned int, 4> shapeData = { { 1u, 1u, 6u, 5u } };
- const armnn::TensorShape tensorShape(4, shapeData.data());
- const armnn::TensorInfo tensorInfo(tensorShape, armnn::DataType::Float32);
- boost::multi_array<float, 4> inputData = MakeTensor<float, 4>(tensorInfo, std::vector<float>(
- {
- 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,
- })
- );
-
- boost::multi_array<float, 4> 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());
-
- BOOST_TEST(CompareTensors(inputData, outputData));
-}
-
-template <typename SrcWorkloadFactory, typename DstWorkloadFactory>
-void MemCopyTest(bool withSubtensors)
-{
- SrcWorkloadFactory srcWorkloadFactory;
- DstWorkloadFactory dstWorkloadFactory;
- MemCopyTest(srcWorkloadFactory, dstWorkloadFactory, withSubtensors);
-}
-
-#if ARMCOMPUTECL_ENABLED || ARMCOMPUTENEON_ENABLED
-
-BOOST_AUTO_TEST_CASE(AclTypeConversions)
-{
- arm_compute::Strides strides(1,2,3,4);
- armnn::TensorShape convertedStrides = armnn::armcomputetensorutils::GetStrides(strides);
- BOOST_TEST(convertedStrides[0] == 4);
- BOOST_TEST(convertedStrides[1] == 3);
- BOOST_TEST(convertedStrides[2] == 2);
- BOOST_TEST(convertedStrides[3] == 1);
-
- arm_compute::TensorShape shape(5,6,7,8);
- armnn::TensorShape convertedshape = armnn::armcomputetensorutils::GetShape(shape);
- BOOST_TEST(convertedshape[0] == 8);
- BOOST_TEST(convertedshape[1] == 7);
- BOOST_TEST(convertedshape[2] == 6);
- BOOST_TEST(convertedshape[3] == 5);
-}
-#endif
-
-#if ARMCOMPUTECL_ENABLED
-
-BOOST_AUTO_TEST_CASE(CopyBetweenCpuAndGpu)
-{
- MemCopyTest<armnn::RefWorkloadFactory, armnn::ClWorkloadFactory>(false);
-}
-
-BOOST_AUTO_TEST_CASE(CopyBetweenGpuAndCpu)
-{
- MemCopyTest<armnn::ClWorkloadFactory, armnn::RefWorkloadFactory>(false);
-}
-
-BOOST_AUTO_TEST_CASE(CopyBetweenCpuAndGpuWithSubtensors)
-{
- MemCopyTest<armnn::RefWorkloadFactory, armnn::ClWorkloadFactory>(true);
-}
-
-BOOST_AUTO_TEST_CASE(CopyBetweenGpuAndCpuWithSubtensors)
-{
- MemCopyTest<armnn::ClWorkloadFactory, armnn::RefWorkloadFactory>(true);
-}
-
-#endif // ARMCOMPUTECL_ENABLED
-
-#if ARMCOMPUTENEON_ENABLED
-
-BOOST_AUTO_TEST_CASE(CopyBetweenCpuAndNeon)
-{
- MemCopyTest<armnn::RefWorkloadFactory, armnn::NeonWorkloadFactory>(false);
-}
-
-BOOST_AUTO_TEST_CASE(CopyBetweenNeonAndCpu)
-{
- MemCopyTest<armnn::NeonWorkloadFactory, armnn::RefWorkloadFactory>(false);
-}
-
-BOOST_AUTO_TEST_CASE(CopyBetweenCpuAndNeonWithSubtensors)
-{
- MemCopyTest<armnn::RefWorkloadFactory, armnn::NeonWorkloadFactory>(true);
-}
-
-BOOST_AUTO_TEST_CASE(CopyBetweenNeonAndCpuWithSubtensors)
-{
- MemCopyTest<armnn::NeonWorkloadFactory, armnn::RefWorkloadFactory>(true);
-}
-
-#endif // ARMCOMPUTENEON_ENABLED
-
-#if ARMCOMPUTECL_ENABLED && ARMCOMPUTENEON_ENABLED
-
-BOOST_AUTO_TEST_CASE(CopyBetweenNeonAndGpu)
-{
- MemCopyTest<armnn::NeonWorkloadFactory, armnn::ClWorkloadFactory>(false);
-}
-
-BOOST_AUTO_TEST_CASE(CopyBetweenGpuAndNeon)
-{
- MemCopyTest<armnn::ClWorkloadFactory, armnn::NeonWorkloadFactory>(false);
-}
-
-BOOST_AUTO_TEST_CASE(CopyBetweenNeonAndGpuWithSubtensors)
-{
- MemCopyTest<armnn::NeonWorkloadFactory, armnn::ClWorkloadFactory>(true);
-}
-
-BOOST_AUTO_TEST_CASE(CopyBetweenGpuAndNeonWithSubtensors)
-{
- MemCopyTest<armnn::ClWorkloadFactory, armnn::NeonWorkloadFactory>(true);
-}
-
-#endif
-
-BOOST_AUTO_TEST_SUITE_END()