diff options
author | Matteo Martincigh <matteo.martincigh@arm.com> | 2019-01-11 13:25:59 +0000 |
---|---|---|
committer | Matteo Martincigh <matteo.martincigh@arm.com> | 2019-01-15 08:59:50 +0000 |
commit | 4912402497a51c6afe0898b3900f87feefa006a6 (patch) | |
tree | 4e9b5161781d2b0be041aec17227193da5977443 /src/backends/aclCommon/test | |
parent | d0a1608e2c41639d8f3e3f9305d79c5f92c9cff8 (diff) | |
download | armnn-4912402497a51c6afe0898b3900f87feefa006a6.tar.gz |
IVGCVSW-2454 Merge together the pluggable backends work (was in a
separate branch) and master
* Brings in all the changes done for the pluggable backends
* Added sub-graph support and tests
* Added precompiled layer support and tests
* Moved BackendSettings to a separate file
* Removed the backend-specific code
* Ported DebugLayer and associated functionality
* Included fixes to make those changes work with master
Change-Id: Id7028fa7917527b844628d5aff5732e3d94c0488
Diffstat (limited to 'src/backends/aclCommon/test')
-rw-r--r-- | src/backends/aclCommon/test/MemCopyTestImpl.hpp | 43 | ||||
-rw-r--r-- | src/backends/aclCommon/test/MemCopyTests.cpp | 12 |
2 files changed, 30 insertions, 25 deletions
diff --git a/src/backends/aclCommon/test/MemCopyTestImpl.hpp b/src/backends/aclCommon/test/MemCopyTestImpl.hpp index 4247cc5ef4..4e0bfa85de 100644 --- a/src/backends/aclCommon/test/MemCopyTestImpl.hpp +++ b/src/backends/aclCommon/test/MemCopyTestImpl.hpp @@ -4,6 +4,8 @@ // #pragma once +#include <TypeUtils.hpp> + #include <backendsCommon/IBackendInternal.hpp> #include <backendsCommon/test/LayerTests.hpp> @@ -18,33 +20,29 @@ namespace { -LayerTestResult<float, 4> MemCopyTest(armnn::IWorkloadFactory& srcWorkloadFactory, - armnn::IWorkloadFactory& dstWorkloadFactory, - bool withSubtensors) +template<armnn::DataType dataType, typename T = armnn::ResolveType<dataType>> +LayerTestResult<T, 4> 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>( + const armnn::TensorInfo tensorInfo(tensorShape, dataType); + boost::multi_array<T, 4> inputData = MakeTensor<T, 4>(tensorInfo, std::vector<T>( { - 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, + 1, 2, 3, 4, 5, + 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, }) ); - LayerTestResult<float, 4> ret(tensorInfo); + LayerTestResult<T, 4> ret(tensorInfo); ret.outputExpected = inputData; - boost::multi_array<float, 4> outputData(shapeData); + boost::multi_array<T, 4> outputData(shapeData); auto inputTensorHandle = srcWorkloadFactory.CreateTensorHandle(tensorInfo); auto outputTensorHandle = dstWorkloadFactory.CreateTensorHandle(tensorInfo); @@ -75,8 +73,11 @@ LayerTestResult<float, 4> MemCopyTest(armnn::IWorkloadFactory& srcWorkloadFactor return ret; } -template<typename SrcWorkloadFactory, typename DstWorkloadFactory> -LayerTestResult<float, 4> MemCopyTest(bool withSubtensors) +template<typename SrcWorkloadFactory, + typename DstWorkloadFactory, + armnn::DataType dataType, + typename T = armnn::ResolveType<dataType>> +LayerTestResult<T, 4> MemCopyTest(bool withSubtensors) { armnn::IBackendInternal::IMemoryManagerSharedPtr srcMemoryManager = WorkloadFactoryHelper<SrcWorkloadFactory>::GetMemoryManager(); @@ -87,7 +88,7 @@ LayerTestResult<float, 4> MemCopyTest(bool withSubtensors) SrcWorkloadFactory srcWorkloadFactory = WorkloadFactoryHelper<SrcWorkloadFactory>::GetFactory(srcMemoryManager); DstWorkloadFactory dstWorkloadFactory = WorkloadFactoryHelper<DstWorkloadFactory>::GetFactory(dstMemoryManager); - return MemCopyTest(srcWorkloadFactory, dstWorkloadFactory, withSubtensors); + return MemCopyTest<dataType>(srcWorkloadFactory, dstWorkloadFactory, withSubtensors); } } // anonymous namespace diff --git a/src/backends/aclCommon/test/MemCopyTests.cpp b/src/backends/aclCommon/test/MemCopyTests.cpp index 7099a70bc7..78cd95b21d 100644 --- a/src/backends/aclCommon/test/MemCopyTests.cpp +++ b/src/backends/aclCommon/test/MemCopyTests.cpp @@ -47,25 +47,29 @@ BOOST_FIXTURE_TEST_SUITE(MemCopyClNeon, ClContextControlFixture) BOOST_AUTO_TEST_CASE(CopyBetweenNeonAndGpu) { - LayerTestResult<float, 4> result = MemCopyTest<armnn::NeonWorkloadFactory, armnn::ClWorkloadFactory>(false); + LayerTestResult<float, 4> result = + MemCopyTest<armnn::NeonWorkloadFactory, armnn::ClWorkloadFactory, armnn::DataType::Float32>(false); BOOST_TEST(CompareTensors(result.output, result.outputExpected)); } BOOST_AUTO_TEST_CASE(CopyBetweenGpuAndNeon) { - LayerTestResult<float, 4> result = MemCopyTest<armnn::ClWorkloadFactory, armnn::NeonWorkloadFactory>(false); + LayerTestResult<float, 4> result = + MemCopyTest<armnn::ClWorkloadFactory, armnn::NeonWorkloadFactory, armnn::DataType::Float32>(false); BOOST_TEST(CompareTensors(result.output, result.outputExpected)); } BOOST_AUTO_TEST_CASE(CopyBetweenNeonAndGpuWithSubtensors) { - LayerTestResult<float, 4> result = MemCopyTest<armnn::NeonWorkloadFactory, armnn::ClWorkloadFactory>(true); + LayerTestResult<float, 4> result = + MemCopyTest<armnn::NeonWorkloadFactory, armnn::ClWorkloadFactory, armnn::DataType::Float32>(true); BOOST_TEST(CompareTensors(result.output, result.outputExpected)); } BOOST_AUTO_TEST_CASE(CopyBetweenGpuAndNeonWithSubtensors) { - LayerTestResult<float, 4> result = MemCopyTest<armnn::ClWorkloadFactory, armnn::NeonWorkloadFactory>(true); + LayerTestResult<float, 4> result = + MemCopyTest<armnn::ClWorkloadFactory, armnn::NeonWorkloadFactory, armnn::DataType::Float32>(true); BOOST_TEST(CompareTensors(result.output, result.outputExpected)); } |