From 5caf907efc31e774f8afde54b17a5596477772f6 Mon Sep 17 00:00:00 2001 From: Aron Virginas-Tar Date: Wed, 14 Nov 2018 18:35:18 +0000 Subject: IVGCVSW-2136: Remove memory management methods from workload factories Change-Id: Idc0f94590566ac362f7e1d1999361d025cc2f67a --- .../backendsCommon/test/ActivationTestImpl.hpp | 173 +++++++++++++-------- 1 file changed, 112 insertions(+), 61 deletions(-) (limited to 'src/backends/backendsCommon/test/ActivationTestImpl.hpp') diff --git a/src/backends/backendsCommon/test/ActivationTestImpl.hpp b/src/backends/backendsCommon/test/ActivationTestImpl.hpp index 3b3ee9361c..46c700ce02 100644 --- a/src/backends/backendsCommon/test/ActivationTestImpl.hpp +++ b/src/backends/backendsCommon/test/ActivationTestImpl.hpp @@ -12,6 +12,7 @@ #include #include +#include #include #include @@ -19,12 +20,21 @@ #include template -LayerTestResult BoundedReLuTestCommon(armnn::IWorkloadFactory& workloadFactory, - float upperBound, float lowerBound, - float inputScale, int32_t inputOffset, float outputScale, int32_t outputOffset, - const std::vector& inputData, const std::vector& outputExpectedData, - unsigned int inputWidth, unsigned int inputHeight, - unsigned int inputChannels, unsigned int inputBatchSize) +LayerTestResult BoundedReLuTestCommon( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + float upperBound, + float lowerBound, + float inputScale, + int32_t inputOffset, + float outputScale, + int32_t outputOffset, + const std::vector& inputData, + const std::vector& outputExpectedData, + unsigned int inputWidth, + unsigned int inputHeight, + unsigned int inputChannels, + unsigned int inputBatchSize) { unsigned int outputWidth = inputWidth; unsigned int outputHeight = inputHeight; @@ -79,7 +89,9 @@ LayerTestResult BoundedReLuTestCommon(armnn::IWorkloadFactory& workloadFac return result; } -LayerTestResult BoundedReLuUpperAndLowerBoundTest(armnn::IWorkloadFactory& workloadFactory) +LayerTestResult BoundedReLuUpperAndLowerBoundTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) { unsigned int inputWidth = 4u; unsigned int inputHeight = 5u; @@ -103,11 +115,14 @@ LayerTestResult BoundedReLuUpperAndLowerBoundTest(armnn::IWorkloadFact 0.999f, 1.0f, 0.89f, 1.0f, }; - return BoundedReLuTestCommon(workloadFactory, 1.0f, -1.0f, 1.0f, 0, 1.0f, 0, input, output, - inputWidth, inputHeight, inputChannels, inputBatchSize); + return BoundedReLuTestCommon( + workloadFactory, memoryManager, 1.0f, -1.0f, 1.0f, 0, 1.0f, 0, input, output, + inputWidth, inputHeight, inputChannels, inputBatchSize); } -LayerTestResult BoundedReLuUpperBoundOnlyTest(armnn::IWorkloadFactory& workloadFactory) +LayerTestResult BoundedReLuUpperBoundOnlyTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) { unsigned int inputWidth = 4u; unsigned int inputHeight = 5u; @@ -131,11 +146,14 @@ LayerTestResult BoundedReLuUpperBoundOnlyTest(armnn::IWorkloadFactory& 0.999f, 1.2f, 0.89f, 6.0f, }; - return BoundedReLuTestCommon(workloadFactory, 6.0f, 0.0f, 1.0f, 0, 1.0f, 0, input, output, - inputWidth, inputHeight, inputChannels, inputBatchSize); + return BoundedReLuTestCommon( + workloadFactory, memoryManager, 6.0f, 0.0f, 1.0f, 0, 1.0f, 0, input, output, + inputWidth, inputHeight, inputChannels, inputBatchSize); } -LayerTestResult BoundedReLuUint8UpperBoundOnlyTest(armnn::IWorkloadFactory& workloadFactory) +LayerTestResult BoundedReLuUint8UpperBoundOnlyTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) { unsigned int inputWidth = 3u; unsigned int inputHeight = 2u; @@ -158,13 +176,15 @@ LayerTestResult BoundedReLuUint8UpperBoundOnlyTest(armnn::IWorkloadF float outputScale = 6.0f / 255.0f; int32_t outputOffset = 0; - return BoundedReLuTestCommon(workloadFactory, 6.0f, 0.0f, + return BoundedReLuTestCommon(workloadFactory, memoryManager, 6.0f, 0.0f, inputScale, inputOffset, outputScale, outputOffset, input, output, inputWidth, inputHeight, inputChannels, inputBatchSize); } -LayerTestResult BoundedReLuUint8UpperAndLowerBoundTest(armnn::IWorkloadFactory& workloadFactory) +LayerTestResult BoundedReLuUint8UpperAndLowerBoundTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) { unsigned int inputWidth = 3u; unsigned int inputHeight = 2u; @@ -185,7 +205,7 @@ LayerTestResult BoundedReLuUint8UpperAndLowerBoundTest(armnn::IWorkl int32_t inputOffset = 112; float inputScale = 0.0125f; - return BoundedReLuTestCommon(workloadFactory, 1.0f, -1.0f, + return BoundedReLuTestCommon(workloadFactory, memoryManager, 1.0f, -1.0f, inputScale, inputOffset, inputScale, inputOffset, // Input/output scale & offset same. input, output, inputWidth, inputHeight, inputChannels, inputBatchSize); @@ -219,10 +239,12 @@ struct BoundedReLuRandomInputTestTraits } }; -boost::multi_array BoundedReLuRandomInputTest(armnn::IWorkloadFactory& workloadFactory, - float lowerBound, - float upperBound, - const armnn::ActivationDescriptor& activationDescriptor) +boost::multi_array BoundedReLuRandomInputTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + float lowerBound, + float upperBound, + const armnn::ActivationDescriptor& activationDescriptor) { const armnn::TensorInfo inputTensorInfo = BoundedReLuRandomInputTestTraits::GetInputTensorInfo(); const armnn::TensorInfo outputTensorInfo = BoundedReLuRandomInputTestTraits::GetOutputTensorInfo(); @@ -259,10 +281,12 @@ boost::multi_array BoundedReLuRandomInputTest(armnn::IWorkloadFactory& } // namespace -LayerTestResult CompareBoundedReLuTest(armnn::IWorkloadFactory& workloadFactory, - armnn::IWorkloadFactory& otherWorkloadFactory, - float upperBound, - float lowerBound) +LayerTestResult CompareBoundedReLuTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + armnn::IWorkloadFactory& refWorkloadFactory, + float upperBound, + float lowerBound) { LayerTestResult result(BoundedReLuRandomInputTestTraits::GetOutputTensorInfo()); @@ -271,16 +295,20 @@ LayerTestResult CompareBoundedReLuTest(armnn::IWorkloadFactory& worklo activationDescriptor.m_A = upperBound; activationDescriptor.m_B = lowerBound; - result.output = BoundedReLuRandomInputTest(workloadFactory, 0.0f, upperBound, activationDescriptor); - result.outputExpected = BoundedReLuRandomInputTest(otherWorkloadFactory, 0.0f, upperBound, activationDescriptor); + result.output = BoundedReLuRandomInputTest( + workloadFactory, memoryManager, 0.0f, upperBound, activationDescriptor); + result.outputExpected = BoundedReLuRandomInputTest( + refWorkloadFactory, nullptr, 0.0f, upperBound, activationDescriptor); return result; } template -LayerTestResult ConstantLinearActivationTestCommon(armnn::IWorkloadFactory& workloadFactory, - float qScale = 0.0f, - int32_t qOffset = 0) +LayerTestResult ConstantLinearActivationTestCommon( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + float qScale = 0.0f, + int32_t qOffset = 0) { unsigned int inputHeight = 20; unsigned int inputWidth = 17; @@ -336,25 +364,31 @@ LayerTestResult ConstantLinearActivationTestCommon(armnn::IWorkloadFactory& return ret; } -LayerTestResult ConstantLinearActivationTest(armnn::IWorkloadFactory& workloadFactory) +LayerTestResult ConstantLinearActivationTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) { - return ConstantLinearActivationTestCommon(workloadFactory); + return ConstantLinearActivationTestCommon(workloadFactory, memoryManager); } -LayerTestResult ConstantLinearActivationUint8Test(armnn::IWorkloadFactory& workloadFactory) +LayerTestResult ConstantLinearActivationUint8Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) { - return ConstantLinearActivationTestCommon(workloadFactory, 4.0f, 3); + return ConstantLinearActivationTestCommon(workloadFactory, memoryManager, 4.0f, 3); } template -LayerTestResult SimpleActivationTest(armnn::IWorkloadFactory& workloadFactory, - armnn::ActivationFunction activationFunction, - float activationParameterA, - float activationParameterB, - float qScale, - int32_t qOffset, - const std::vector& inputData, - const std::vector& outputExpectedData) +LayerTestResult SimpleActivationTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + armnn::ActivationFunction activationFunction, + float activationParameterA, + float activationParameterB, + float qScale, + int32_t qOffset, + const std::vector& inputData, + const std::vector& outputExpectedData) { constexpr static unsigned int inputWidth = 16u; constexpr static unsigned int inputHeight = 1u; @@ -415,7 +449,11 @@ LayerTestResult SimpleActivationTest(armnn::IWorkloadFactory& workloadFact } template -LayerTestResult SimpleSigmoidTestCommon(armnn::IWorkloadFactory& workloadFactory, float qScale, int32_t qOffset) +LayerTestResult SimpleSigmoidTestCommon( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + float qScale, + int32_t qOffset) { std::vector inputData = { -0.1f, -0.2f, -0.3f, -0.4f, @@ -433,6 +471,7 @@ LayerTestResult SimpleSigmoidTestCommon(armnn::IWorkloadFactory& workloadF std::transform(inputData.begin(), inputData.end(), outputExpectedData.begin(), f); return SimpleActivationTest(workloadFactory, + memoryManager, armnn::ActivationFunction::Sigmoid, 0.f, 0.f, @@ -442,23 +481,29 @@ LayerTestResult SimpleSigmoidTestCommon(armnn::IWorkloadFactory& workloadF outputExpectedData); } -LayerTestResult SimpleSigmoidTest(armnn::IWorkloadFactory& workloadFactory) +LayerTestResult SimpleSigmoidTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) { - return SimpleSigmoidTestCommon(workloadFactory, 0.0f, 0); + return SimpleSigmoidTestCommon(workloadFactory, memoryManager, 0.0f, 0); } -LayerTestResult SimpleSigmoidUint8Test(armnn::IWorkloadFactory& workloadFactory) +LayerTestResult SimpleSigmoidUint8Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) { - return SimpleSigmoidTestCommon(workloadFactory, 0.1f, 50); + return SimpleSigmoidTestCommon(workloadFactory, memoryManager, 0.1f, 50); } template -LayerTestResult CompareActivationTestImpl(armnn::IWorkloadFactory& workloadFactory, - armnn::IWorkloadFactory& refWorkloadFactory, - armnn::ActivationFunction f, - unsigned int batchSize = 5, - float qScale = 0.0f, - int32_t qOffset = 0) +LayerTestResult CompareActivationTestImpl( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + armnn::IWorkloadFactory& refWorkloadFactory, + armnn::ActivationFunction f, + unsigned int batchSize = 5, + float qScale = 0.0f, + int32_t qOffset = 0) { unsigned int width = 17; unsigned int height = 29; @@ -544,17 +589,23 @@ LayerTestResult CompareActivationTestImpl(armnn::IWorkloadFactory& workload return ret; } -LayerTestResult CompareActivationTest(armnn::IWorkloadFactory& workloadFactory, - armnn::IWorkloadFactory& refWorkloadFactory, - armnn::ActivationFunction f, - unsigned int batchSize) +LayerTestResult CompareActivationTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + armnn::IWorkloadFactory& refWorkloadFactory, + armnn::ActivationFunction f, + unsigned int batchSize) { - return CompareActivationTestImpl(workloadFactory, refWorkloadFactory, f, batchSize); + return CompareActivationTestImpl( + workloadFactory, memoryManager, refWorkloadFactory, f, batchSize); } -LayerTestResult CompareActivationUint8Test(armnn::IWorkloadFactory& workloadFactory, - armnn::IWorkloadFactory& refWorkloadFactory, - armnn::ActivationFunction f) +LayerTestResult CompareActivationUint8Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + armnn::IWorkloadFactory& refWorkloadFactory, + armnn::ActivationFunction f) { - return CompareActivationTestImpl(workloadFactory, refWorkloadFactory, f, 5, 0.1f, 50); + return CompareActivationTestImpl( + workloadFactory, memoryManager, refWorkloadFactory, f, 5, 0.1f, 50); } -- cgit v1.2.1