diff options
author | Sadik Armagan <sadik.armagan@arm.com> | 2021-06-01 09:24:52 +0100 |
---|---|---|
committer | Sadik Armagan <sadik.armagan@arm.com> | 2021-06-02 13:00:56 +0000 |
commit | 483c811ea6fd0e7801aac1afd979ed02a649064b (patch) | |
tree | a0969c8786528334b62043b40983fa21d54d524e /src/backends/backendsCommon/test/layerTests/ElementwiseTestImpl.hpp | |
parent | 31f86bfeb311ccc0c6ed94c35a78a51551148ea4 (diff) | |
download | armnn-483c811ea6fd0e7801aac1afd979ed02a649064b.tar.gz |
IVGCVSW-5962 Remove boost::multi_array
* Replaced all instances of boost::multi_array with flat vectors.
* Updated LayerTestResult struct with new member variables.
* Updated CompareTensor function to compare flat vectors and the shape.
* Removed MakeTensor function from TensorHelpers.hpp.
* Removed GetTensorShapeAsArray function from LayerTestResult.hpp.
* Removed boost::array usage.
* Removed boost::extents usages.
* Removed boost::random usages.
Signed-off-by: Matthew Sloyan <matthew.sloyan@arm.com>
Signed-off-by: Sadik Armagan <sadik.armagan@arm.com>
Change-Id: Iccde9d6640b534940292ff048fb80c00b38c4743
Diffstat (limited to 'src/backends/backendsCommon/test/layerTests/ElementwiseTestImpl.hpp')
-rw-r--r-- | src/backends/backendsCommon/test/layerTests/ElementwiseTestImpl.hpp | 260 |
1 files changed, 128 insertions, 132 deletions
diff --git a/src/backends/backendsCommon/test/layerTests/ElementwiseTestImpl.hpp b/src/backends/backendsCommon/test/layerTests/ElementwiseTestImpl.hpp index ec5bfb0396..88f34f6add 100644 --- a/src/backends/backendsCommon/test/layerTests/ElementwiseTestImpl.hpp +++ b/src/backends/backendsCommon/test/layerTests/ElementwiseTestImpl.hpp @@ -25,43 +25,38 @@ template<typename DescriptorType> std::unique_ptr<armnn::IWorkload> CreateWorkload( - const armnn::IWorkloadFactory& workloadFactory, - const armnn::WorkloadInfo& info, - const DescriptorType& descriptor) -{ + const armnn::IWorkloadFactory& workloadFactory, + const armnn::WorkloadInfo& info, + const DescriptorType& descriptor) { return CreateWorkload(workloadFactory, info, descriptor); } -template <std::size_t NumDims, - typename Descriptor, - armnn::DataType ArmnnTypeInput, - armnn::DataType ArmnnTypeOutput, - typename TInput = armnn::ResolveType<ArmnnTypeInput>, - typename TOutput = armnn::ResolveType<ArmnnTypeOutput>> +template<std::size_t NumDims, + typename Descriptor, + armnn::DataType ArmnnTypeInput, + armnn::DataType ArmnnTypeOutput, + typename TInput = armnn::ResolveType<ArmnnTypeInput>, + typename TOutput = armnn::ResolveType<ArmnnTypeOutput>> LayerTestResult<TOutput, NumDims> ElementwiseTestHelper( - armnn::IWorkloadFactory & workloadFactory, - const armnn::IBackendInternal::IMemoryManagerSharedPtr & memoryManager, - const unsigned int shape0[NumDims], - std::vector<TInput> values0, - float quantScale0, - int quantOffset0, - const unsigned int shape1[NumDims], - std::vector<TInput> values1, - float quantScale1, - int quantOffset1, - const unsigned int outShape[NumDims], - std::vector<TOutput> outValues, - const armnn::ITensorHandleFactory& tensorHandleFactory, - float outQuantScale, - int outQuantOffset) -{ + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + const unsigned int shape0[NumDims], + std::vector<TInput> values0, + float quantScale0, + int quantOffset0, + const unsigned int shape1[NumDims], + std::vector<TInput> values1, + float quantScale1, + int quantOffset1, + const unsigned int outShape[NumDims], + std::vector<TOutput> outValues, + const armnn::ITensorHandleFactory& tensorHandleFactory, + float outQuantScale, + int outQuantOffset) { armnn::TensorInfo inputTensorInfo0{NumDims, shape0, ArmnnTypeInput}; armnn::TensorInfo inputTensorInfo1{NumDims, shape1, ArmnnTypeInput}; armnn::TensorInfo outputTensorInfo{NumDims, outShape, ArmnnTypeOutput}; - auto input0 = MakeTensor<TInput, NumDims>(inputTensorInfo0, values0); - auto input1 = MakeTensor<TInput, NumDims>(inputTensorInfo1, values1); - inputTensorInfo0.SetQuantizationScale(quantScale0); inputTensorInfo0.SetQuantizationOffset(quantOffset0); @@ -71,11 +66,12 @@ LayerTestResult<TOutput, NumDims> ElementwiseTestHelper( outputTensorInfo.SetQuantizationScale(outQuantScale); outputTensorInfo.SetQuantizationOffset(outQuantOffset); - LayerTestResult<TOutput, NumDims> ret(outputTensorInfo); + std::vector<TOutput> actualOutput(outputTensorInfo.GetNumElements()); - if(ArmnnTypeOutput == armnn::DataType::Boolean) + bool isBoolean = false; + if (ArmnnTypeOutput == armnn::DataType::Boolean) { - ret.compareBoolean = true; + isBoolean = true; } std::unique_ptr<armnn::ITensorHandle> inputHandle0 = tensorHandleFactory.CreateTensorHandle(inputTensorInfo0); @@ -93,121 +89,121 @@ LayerTestResult<TOutput, NumDims> ElementwiseTestHelper( inputHandle1->Allocate(); outputHandle->Allocate(); - CopyDataToITensorHandle(inputHandle0.get(), input0.origin()); - CopyDataToITensorHandle(inputHandle1.get(), input1.origin()); + CopyDataToITensorHandle(inputHandle0.get(), values0.data()); + CopyDataToITensorHandle(inputHandle1.get(), values1.data()); workload->PostAllocationConfigure(); ExecuteWorkload(*workload, memoryManager); - CopyDataFromITensorHandle(ret.output.origin(), outputHandle.get()); + CopyDataFromITensorHandle(actualOutput.data(), outputHandle.get()); - ret.outputExpected = MakeTensor<TOutput, NumDims>(outputTensorInfo, outValues); - return ret; + return LayerTestResult<TOutput, NumDims>(actualOutput, + outValues, + outputHandle->GetShape(), + outputTensorInfo.GetShape(), + isBoolean); } -template <std::size_t NumDims, - typename Descriptor, - armnn::DataType ArmnnType, - typename T = armnn::ResolveType<ArmnnType>> +template<std::size_t NumDims, + typename Descriptor, + armnn::DataType ArmnnType, + typename T = armnn::ResolveType<ArmnnType>> LayerTestResult<T, NumDims> ElementwiseTestHelper( - armnn::IWorkloadFactory & workloadFactory, - const armnn::IBackendInternal::IMemoryManagerSharedPtr & memoryManager, - const unsigned int shape0[NumDims], - std::vector<T> values0, - float quantScale0, - int quantOffset0, - const unsigned int shape1[NumDims], - std::vector<T> values1, - float quantScale1, - int quantOffset1, - const unsigned int outShape[NumDims], - std::vector<T> outValues, - const armnn::ITensorHandleFactory& tensorHandleFactory, - float outQuantScale, - int outQuantOffset) -{ + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + const unsigned int shape0[NumDims], + std::vector<T> values0, + float quantScale0, + int quantOffset0, + const unsigned int shape1[NumDims], + std::vector<T> values1, + float quantScale1, + int quantOffset1, + const unsigned int outShape[NumDims], + std::vector<T> outValues, + const armnn::ITensorHandleFactory& tensorHandleFactory, + float outQuantScale, + int outQuantOffset) { return ElementwiseTestHelper<NumDims, Descriptor, ArmnnType, ArmnnType>( - workloadFactory, - memoryManager, - shape0, - values0, - quantScale0, - quantOffset0, - shape1, - values1, - quantScale1, - quantOffset1, - outShape, - outValues, - tensorHandleFactory, - outQuantScale, - outQuantOffset); + workloadFactory, + memoryManager, + shape0, + values0, + quantScale0, + quantOffset0, + shape1, + values1, + quantScale1, + quantOffset1, + outShape, + outValues, + tensorHandleFactory, + outQuantScale, + outQuantOffset); } -template <std::size_t NumDims, - typename Descriptor, - armnn::DataType ArmnnTypeInput, - armnn::DataType ArmnnTypeOutput, - typename TInput = armnn::ResolveType<ArmnnTypeInput>, - typename TOutput = armnn::ResolveType<ArmnnTypeOutput>> +template<std::size_t NumDims, + typename Descriptor, + armnn::DataType ArmnnTypeInput, + armnn::DataType ArmnnTypeOutput, + typename TInput = armnn::ResolveType<ArmnnTypeInput>, + typename TOutput = armnn::ResolveType<ArmnnTypeOutput>> LayerTestResult<TOutput, NumDims> ElementwiseTestHelper( - armnn::IWorkloadFactory & workloadFactory, - const armnn::IBackendInternal::IMemoryManagerSharedPtr & memoryManager, - const unsigned int shape0[NumDims], - std::vector<TInput> values0, - const unsigned int shape1[NumDims], - std::vector<TInput> values1, - const unsigned int outShape[NumDims], - std::vector<TOutput> outValues, - const armnn::ITensorHandleFactory& tensorHandleFactory, - float quantScale = 1.0f, - int quantOffset = 0) -{ + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + const unsigned int shape0[NumDims], + std::vector<TInput> values0, + const unsigned int shape1[NumDims], + std::vector<TInput> values1, + const unsigned int outShape[NumDims], + std::vector<TOutput> outValues, + const armnn::ITensorHandleFactory& tensorHandleFactory, + float quantScale = 1.0f, + int quantOffset = 0) { return ElementwiseTestHelper<NumDims, Descriptor, ArmnnTypeInput, ArmnnTypeOutput>( - workloadFactory, - memoryManager, - shape0, - values0, - quantScale, - quantOffset, - shape1, - values1, - quantScale, - quantOffset, - outShape, - outValues, - tensorHandleFactory, - quantScale, - quantOffset); + workloadFactory, + memoryManager, + shape0, + values0, + quantScale, + quantOffset, + shape1, + values1, + quantScale, + quantOffset, + outShape, + outValues, + tensorHandleFactory, + quantScale, + quantOffset); } -template <std::size_t NumDims, - typename Descriptor, - armnn::DataType ArmnnType, - typename T = armnn::ResolveType<ArmnnType>> +template<std::size_t NumDims, + typename Descriptor, + armnn::DataType ArmnnType, + typename T = armnn::ResolveType<ArmnnType>> LayerTestResult<T, NumDims> ElementwiseTestHelper( - armnn::IWorkloadFactory & workloadFactory, - const armnn::IBackendInternal::IMemoryManagerSharedPtr & memoryManager, - const unsigned int shape0[NumDims], - std::vector<T> values0, - const unsigned int shape1[NumDims], - std::vector<T> values1, - const unsigned int outShape[NumDims], - std::vector<T> outValues, - const armnn::ITensorHandleFactory& tensorHandleFactory, - float quantScale = 1.0f, - int quantOffset = 0) -{ + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + const unsigned int shape0[NumDims], + std::vector<T> values0, + const unsigned int shape1[NumDims], + std::vector<T> values1, + const unsigned int outShape[NumDims], + std::vector<T> outValues, + const armnn::ITensorHandleFactory& tensorHandleFactory, + float quantScale = 1.0f, + int quantOffset = 0) { return ElementwiseTestHelper<NumDims, Descriptor, ArmnnType, ArmnnType>( - workloadFactory, - memoryManager, - shape0, - values0, - shape1, - values1, - outShape, - outValues, - tensorHandleFactory, - quantScale, - quantOffset); + workloadFactory, + memoryManager, + shape0, + values0, + shape1, + values1, + outShape, + outValues, + tensorHandleFactory, + quantScale, + quantOffset); }
\ No newline at end of file |