aboutsummaryrefslogtreecommitdiff
path: root/src/backends/backendsCommon/test/layerTests/ElementwiseTestImpl.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/backends/backendsCommon/test/layerTests/ElementwiseTestImpl.hpp')
-rw-r--r--src/backends/backendsCommon/test/layerTests/ElementwiseTestImpl.hpp260
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