diff options
author | Aron Virginas-Tar <Aron.Virginas-Tar@arm.com> | 2019-07-02 17:25:47 +0100 |
---|---|---|
committer | Áron Virginás-Tar <aron.virginas-tar@arm.com> | 2019-07-12 14:44:27 +0000 |
commit | cc0cefb6ca2abf22fc0128548b93a492df530705 (patch) | |
tree | 3b87a05e2b83ee432a04b7c43f769e0a572a2a5c /src/backends/cl/test | |
parent | 59c6670cac0aac1fedf426fb19ccd578da6f9f55 (diff) | |
download | armnn-cc0cefb6ca2abf22fc0128548b93a492df530705.tar.gz |
IVGCVSW-3296 Add CL backend support for ResizeNearestNeighbour
Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com>
Change-Id: I7f4c722141837939fd8904c52e75704a15c8a5e3
Diffstat (limited to 'src/backends/cl/test')
-rw-r--r-- | src/backends/cl/test/ClCreateWorkloadTests.cpp | 33 | ||||
-rw-r--r-- | src/backends/cl/test/ClLayerTests.cpp | 140 |
2 files changed, 137 insertions, 36 deletions
diff --git a/src/backends/cl/test/ClCreateWorkloadTests.cpp b/src/backends/cl/test/ClCreateWorkloadTests.cpp index b89abdb473..de13390f87 100644 --- a/src/backends/cl/test/ClCreateWorkloadTests.cpp +++ b/src/backends/cl/test/ClCreateWorkloadTests.cpp @@ -758,16 +758,15 @@ BOOST_AUTO_TEST_CASE(CreateLSTMWorkloadFloatWorkload) ClCreateLstmWorkloadTest<ClLstmFloatWorkload>(); } -template <typename ResizeBilinearWorkloadType, typename armnn::DataType DataType> -static void ClResizeBilinearWorkloadTest(DataLayout dataLayout) +template <typename ResizeWorkloadType, typename armnn::DataType DataType> +static void ClResizeWorkloadTest(DataLayout dataLayout) { Graph graph; ClWorkloadFactory factory = ClWorkloadFactoryHelper::GetFactory(ClWorkloadFactoryHelper::GetMemoryManager()); - auto workload = CreateResizeBilinearWorkloadTest<ResizeBilinearWorkloadType, DataType>(factory, graph, dataLayout); + auto workload = CreateResizeBilinearWorkloadTest<ResizeWorkloadType, DataType>(factory, graph, dataLayout); - // Checks that inputs/outputs are as we expect them (see definition of CreateResizeBilinearWorkloadTest). auto queueDescriptor = workload->GetData(); auto inputHandle = boost::polymorphic_downcast<IClTensorHandle*>(queueDescriptor.m_Inputs[0]); @@ -786,24 +785,34 @@ static void ClResizeBilinearWorkloadTest(DataLayout dataLayout) } } -BOOST_AUTO_TEST_CASE(CreateResizeBilinearFloat32NchwWorkload) +BOOST_AUTO_TEST_CASE(CreateResizeFloat32NchwWorkload) { - ClResizeBilinearWorkloadTest<ClResizeBilinearFloatWorkload, armnn::DataType::Float32>(DataLayout::NCHW); + ClResizeWorkloadTest<ClResizeWorkload, armnn::DataType::Float32>(DataLayout::NCHW); } -BOOST_AUTO_TEST_CASE(CreateResizeBilinearFloat16NchwWorkload) +BOOST_AUTO_TEST_CASE(CreateResizeFloat16NchwWorkload) { - ClResizeBilinearWorkloadTest<ClResizeBilinearFloatWorkload, armnn::DataType::Float16>(DataLayout::NCHW); + ClResizeWorkloadTest<ClResizeWorkload, armnn::DataType::Float16>(DataLayout::NCHW); } -BOOST_AUTO_TEST_CASE(CreateResizeBilinearFloat32NhwcWorkload) +BOOST_AUTO_TEST_CASE(CreateResizeUint8NchwWorkload) { - ClResizeBilinearWorkloadTest<ClResizeBilinearFloatWorkload, armnn::DataType::Float32>(DataLayout::NHWC); + ClResizeWorkloadTest<ClResizeWorkload, armnn::DataType::QuantisedAsymm8>(DataLayout::NCHW); } -BOOST_AUTO_TEST_CASE(CreateResizeBilinearFloat16NhwcWorkload) +BOOST_AUTO_TEST_CASE(CreateResizeFloat32NhwcWorkload) { - ClResizeBilinearWorkloadTest<ClResizeBilinearFloatWorkload, armnn::DataType::Float16>(DataLayout::NHWC); + ClResizeWorkloadTest<ClResizeWorkload, armnn::DataType::Float32>(DataLayout::NHWC); +} + +BOOST_AUTO_TEST_CASE(CreateResizeFloat16NhwcWorkload) +{ + ClResizeWorkloadTest<ClResizeWorkload, armnn::DataType::Float16>(DataLayout::NHWC); +} + +BOOST_AUTO_TEST_CASE(CreateResizeUint8NhwcWorkload) +{ + ClResizeWorkloadTest<ClResizeWorkload, armnn::DataType::QuantisedAsymm8>(DataLayout::NHWC); } template <typename MeanWorkloadType, typename armnn::DataType DataType> diff --git a/src/backends/cl/test/ClLayerTests.cpp b/src/backends/cl/test/ClLayerTests.cpp index c786244ba1..f2ff294e92 100644 --- a/src/backends/cl/test/ClLayerTests.cpp +++ b/src/backends/cl/test/ClLayerTests.cpp @@ -305,30 +305,6 @@ ARMNN_AUTO_TEST_CASE(L2Normalization4dNhwc, L2Normalization4dTest, armnn::DataLa ARMNN_AUTO_TEST_CASE(L2NormalizationDefaultEpsilon, L2NormalizationDefaultEpsilonTest, armnn::DataLayout::NCHW) ARMNN_AUTO_TEST_CASE(L2NormalizationNonDefaultEpsilon, L2NormalizationNonDefaultEpsilonTest, armnn::DataLayout::NCHW) -// Resize Bilinear - NCHW data layout -ARMNN_AUTO_TEST_CASE(SimpleResizeBilinear, SimpleResizeBilinearTest<armnn::DataType::Float32>, armnn::DataLayout::NCHW) -ARMNN_AUTO_TEST_CASE(ResizeBilinearNop, ResizeBilinearNopTest<armnn::DataType::Float32>, armnn::DataLayout::NCHW) -ARMNN_AUTO_TEST_CASE(ResizeBilinearSqMin, ResizeBilinearSqMinTest<armnn::DataType::Float32>, armnn::DataLayout::NCHW) -ARMNN_AUTO_TEST_CASE(ResizeBilinearMin, ResizeBilinearMinTest<armnn::DataType::Float32>, armnn::DataLayout::NCHW) -ARMNN_AUTO_TEST_CASE(ResizeBilinearMag, ResizeBilinearMagTest<armnn::DataType::Float32>, armnn::DataLayout::NCHW) - -// Resize Bilinear - NHWC data layout -ARMNN_AUTO_TEST_CASE(ResizeBilinearNopNhwc, - ResizeBilinearNopTest<armnn::DataType::Float32>, - armnn::DataLayout::NHWC) -ARMNN_AUTO_TEST_CASE(SimpleResizeBilinearNhwc, - SimpleResizeBilinearTest<armnn::DataType::Float32>, - armnn::DataLayout::NHWC) -ARMNN_AUTO_TEST_CASE(ResizeBilinearSqMinNhwc, - ResizeBilinearSqMinTest<armnn::DataType::Float32>, - armnn::DataLayout::NHWC) -ARMNN_AUTO_TEST_CASE(ResizeBilinearMinNhwc, - ResizeBilinearMinTest<armnn::DataType::Float32>, - armnn::DataLayout::NHWC) -ARMNN_AUTO_TEST_CASE(ResizeBilinearMagNhwc, - ResizeBilinearMagTest<armnn::DataType::Float32>, - armnn::DataLayout::NHWC) - // Constant ARMNN_AUTO_TEST_CASE(Constant, ConstantTest) ARMNN_AUTO_TEST_CASE(ConstantUint8, ConstantUint8SimpleQuantizationScaleNoOffsetTest) @@ -539,6 +515,122 @@ ARMNN_AUTO_TEST_CASE(StridedSlice3DReverseUint8, StridedSlice3DReverseUint8Test) ARMNN_AUTO_TEST_CASE(StridedSlice2DUint8, StridedSlice2DUint8Test) ARMNN_AUTO_TEST_CASE(StridedSlice2DReverseUint8, StridedSlice2DReverseUint8Test) +// Resize Bilinear - NCHW +ARMNN_AUTO_TEST_CASE(SimpleResizeBilinear, + SimpleResizeBilinearTest<armnn::DataType::Float32>, + armnn::DataLayout::NCHW) +ARMNN_AUTO_TEST_CASE(SimpleResizeBilinearUint8, + SimpleResizeBilinearTest<armnn::DataType::QuantisedAsymm8>, + armnn::DataLayout::NCHW) +ARMNN_AUTO_TEST_CASE(ResizeBilinearNop, + ResizeBilinearNopTest<armnn::DataType::Float32>, + armnn::DataLayout::NCHW) +ARMNN_AUTO_TEST_CASE(ResizeBilinearNopUint8, + ResizeBilinearNopTest<armnn::DataType::QuantisedAsymm8>, + armnn::DataLayout::NCHW) +ARMNN_AUTO_TEST_CASE(ResizeBilinearSqMin, + ResizeBilinearSqMinTest<armnn::DataType::Float32>, + armnn::DataLayout::NCHW) +ARMNN_AUTO_TEST_CASE(ResizeBilinearSqMinUint8, + ResizeBilinearSqMinTest<armnn::DataType::QuantisedAsymm8>, + armnn::DataLayout::NCHW) +ARMNN_AUTO_TEST_CASE(ResizeBilinearMin, + ResizeBilinearMinTest<armnn::DataType::Float32>, + armnn::DataLayout::NCHW) +ARMNN_AUTO_TEST_CASE(ResizeBilinearMinUint8, + ResizeBilinearMinTest<armnn::DataType::QuantisedAsymm8>, + armnn::DataLayout::NCHW) + +// Resize Bilinear - NHWC +ARMNN_AUTO_TEST_CASE(ResizeBilinearNopNhwc, + ResizeBilinearNopTest<armnn::DataType::Float32>, + armnn::DataLayout::NHWC) +ARMNN_AUTO_TEST_CASE(ResizeBilinearNopUint8Nhwc, + ResizeBilinearNopTest<armnn::DataType::QuantisedAsymm8>, + armnn::DataLayout::NHWC) +ARMNN_AUTO_TEST_CASE(SimpleResizeBilinearNhwc, + SimpleResizeBilinearTest<armnn::DataType::Float32>, + armnn::DataLayout::NHWC) +ARMNN_AUTO_TEST_CASE(SimpleResizeBilinearUint8Nhwc, + SimpleResizeBilinearTest<armnn::DataType::QuantisedAsymm8>, + armnn::DataLayout::NHWC) +ARMNN_AUTO_TEST_CASE(ResizeBilinearSqMinNhwc, + ResizeBilinearSqMinTest<armnn::DataType::Float32>, + armnn::DataLayout::NHWC) +ARMNN_AUTO_TEST_CASE(ResizeBilinearSqMinUint8Nhwc, + ResizeBilinearSqMinTest<armnn::DataType::QuantisedAsymm8>, + armnn::DataLayout::NHWC) +ARMNN_AUTO_TEST_CASE(ResizeBilinearMinNhwc, + ResizeBilinearMinTest<armnn::DataType::Float32>, + armnn::DataLayout::NHWC) +ARMNN_AUTO_TEST_CASE(ResizeBilinearMinUint8Nhwc, + ResizeBilinearMinTest<armnn::DataType::QuantisedAsymm8>, + armnn::DataLayout::NHWC) + +// Resize NearestNeighbor - NCHW +ARMNN_AUTO_TEST_CASE(SimpleResizeNearestNeighbor, + SimpleResizeNearestNeighborTest<armnn::DataType::Float32>, + armnn::DataLayout::NCHW) +ARMNN_AUTO_TEST_CASE(SimpleResizeNearestNeighborUint8, + SimpleResizeNearestNeighborTest<armnn::DataType::QuantisedAsymm8>, + armnn::DataLayout::NCHW) +ARMNN_AUTO_TEST_CASE(ResizeNearestNeighborNop, + ResizeNearestNeighborNopTest<armnn::DataType::Float32>, + armnn::DataLayout::NCHW) +ARMNN_AUTO_TEST_CASE(ResizeNearestNeighborNopUint8, + ResizeNearestNeighborNopTest<armnn::DataType::QuantisedAsymm8>, + armnn::DataLayout::NCHW) +ARMNN_AUTO_TEST_CASE(ResizeNearestNeighborSqMin, + ResizeNearestNeighborSqMinTest<armnn::DataType::Float32>, + armnn::DataLayout::NCHW) +ARMNN_AUTO_TEST_CASE(ResizeNearestNeighborSqMinUint8, + ResizeNearestNeighborSqMinTest<armnn::DataType::QuantisedAsymm8>, + armnn::DataLayout::NCHW) +ARMNN_AUTO_TEST_CASE(ResizeNearestNeighborMin, + ResizeNearestNeighborMinTest<armnn::DataType::Float32>, + armnn::DataLayout::NCHW) +ARMNN_AUTO_TEST_CASE(ResizeNearestNeighborMinUint8, + ResizeNearestNeighborMinTest<armnn::DataType::QuantisedAsymm8>, + armnn::DataLayout::NCHW) +ARMNN_AUTO_TEST_CASE(ResizeNearestNeighborMag, + ResizeNearestNeighborMagTest<armnn::DataType::Float32>, + armnn::DataLayout::NCHW, 0.1f, 50, 0.1f, 50) +ARMNN_AUTO_TEST_CASE(ResizeNearestNeighborMagUint8, + ResizeNearestNeighborMagTest<armnn::DataType::QuantisedAsymm8>, + armnn::DataLayout::NCHW, 0.1f, 50, 0.1f, 50) + +// Resize NearestNeighbor - NHWC +ARMNN_AUTO_TEST_CASE(ResizeNearestNeighborNopNhwc, + ResizeNearestNeighborNopTest<armnn::DataType::Float32>, + armnn::DataLayout::NHWC) +ARMNN_AUTO_TEST_CASE(ResizeNearestNeighborNopUint8Nhwc, + ResizeNearestNeighborNopTest<armnn::DataType::QuantisedAsymm8>, + armnn::DataLayout::NHWC) +ARMNN_AUTO_TEST_CASE(SimpleResizeNearestNeighborNhwc, + SimpleResizeNearestNeighborTest<armnn::DataType::Float32>, + armnn::DataLayout::NHWC) +ARMNN_AUTO_TEST_CASE(SimpleResizeNearestNeighborUint8Nhwc, + SimpleResizeNearestNeighborTest<armnn::DataType::QuantisedAsymm8>, + armnn::DataLayout::NHWC) +ARMNN_AUTO_TEST_CASE(ResizeNearestNeighborSqMinNhwc, + ResizeNearestNeighborSqMinTest<armnn::DataType::Float32>, + armnn::DataLayout::NHWC) +ARMNN_AUTO_TEST_CASE(ResizeNearestNeighborSqMinUint8Nhwc, + ResizeNearestNeighborSqMinTest<armnn::DataType::QuantisedAsymm8>, + armnn::DataLayout::NHWC) +ARMNN_AUTO_TEST_CASE(ResizeNearestNeighborMinNhwc, + ResizeNearestNeighborMinTest<armnn::DataType::Float32>, + armnn::DataLayout::NHWC) +ARMNN_AUTO_TEST_CASE(ResizeNearestNeighborMinUint8Nhwc, + ResizeNearestNeighborMinTest<armnn::DataType::QuantisedAsymm8>, + armnn::DataLayout::NHWC) +ARMNN_AUTO_TEST_CASE(ResizeNearestNeighborMagNhwc, + ResizeNearestNeighborMagTest<armnn::DataType::Float32>, + armnn::DataLayout::NHWC, 0.1f, 50, 0.1f, 50) +ARMNN_AUTO_TEST_CASE(ResizeNearestNeighborMagUint8Nhwc, + ResizeNearestNeighborMagTest<armnn::DataType::QuantisedAsymm8>, + armnn::DataLayout::NHWC, 0.1f, 50, 0.1f, 50) + // Quantize ARMNN_AUTO_TEST_CASE(QuantizeSimpleUint8, QuantizeSimpleUint8Test) ARMNN_AUTO_TEST_CASE(QuantizeClampUint8, QuantizeClampUint8Test) |