From 21a9f33338c60ae1cd955df220ce329918adcb8f Mon Sep 17 00:00:00 2001 From: Tianle Cheng Date: Thu, 9 Nov 2023 13:56:53 +0000 Subject: IVGCVSW-7835 Add ReverseV2 CL and Neon Workloads * Added ReverseV2 to CL and Neon backends * Added Cl and Neon ReverseV2 Layer unit tests Signed-off-by: Tianle Cheng Change-Id: I646275c629caf17dac1950b0cd7083f23f87f387 --- delegate/test/ReverseV2Test.cpp | 278 ++++++++++++++++++++-------------------- 1 file changed, 136 insertions(+), 142 deletions(-) (limited to 'delegate/test') diff --git a/delegate/test/ReverseV2Test.cpp b/delegate/test/ReverseV2Test.cpp index b261474e99..430cf2c7c7 100644 --- a/delegate/test/ReverseV2Test.cpp +++ b/delegate/test/ReverseV2Test.cpp @@ -19,165 +19,159 @@ namespace armnnDelegate { - void ReverseV2Float32Test(std::vector& backends) +void ReverseV2Float32Test(std::vector& backends) +{ + // Set input data + std::vector inputValues = { - // Set input data - std::vector inputValues = - { - 1.0f, 2.0f, 3.0f, - 4.0f, 5.0f, 6.0f, - 7.0f, 8.0f, 9.0f, - - 11.0f, 12.0f, 13.0f, - 14.0f, 15.0f, 16.0f, - 17.0f, 18.0f, 19.0f, - - 21.0f, 22.0f, 23.0f, - 24.0f, 25.0f, 26.0f, - 27.0f, 28.0f, 29.0f - }; - - // The output data - std::vector expectedOutputValues = - { - 3.0f, 2.0f, 1.0f, - 6.0f, 5.0f, 4.0f, - 9.0f, 8.0f, 7.0f, - - 13.0f, 12.0f, 11.0f, - 16.0f, 15.0f, 14.0f, - 19.0f, 18.0f, 17.0f, - - 23.0f, 22.0f, 21.0f, - 26.0f, 25.0f, 24.0f, - 29.0f, 28.0f, 27.0f - }; - - // The axis to reverse - const std::vector axisValues = {2}; - - // Shapes - const std::vector inputShape = {3, 3, 3}; - const std::vector axisShapeDims = {1}; - const std::vector expectedOutputShape = {3, 3, 3}; - - ReverseV2FP32TestImpl(tflite::BuiltinOperator_REVERSE_V2, - backends, - inputValues, - inputShape, - axisValues, - axisShapeDims, - expectedOutputValues, - expectedOutputShape); - } + 1.0f, 2.0f, 3.0f, + 4.0f, 5.0f, 6.0f, + 7.0f, 8.0f, 9.0f, - void ReverseV2NegativeAxisFloat32Test(std::vector& backends) - { - // Set input data - std::vector inputValues = - { - 1.0f, 2.0f, 3.0f, - 4.0f, 5.0f, 6.0f, - 7.0f, 8.0f, 9.0f, - - 11.0f, 12.0f, 13.0f, - 14.0f, 15.0f, 16.0f, - 17.0f, 18.0f, 19.0f, - - 21.0f, 22.0f, 23.0f, - 24.0f, 25.0f, 26.0f, - 27.0f, 28.0f, 29.0f - }; - - // The output data - std::vector expectedOutputValues = - { - 7.0f, 8.0f, 9.0f, - 4.0f, 5.0f, 6.0f, - 1.0f, 2.0f, 3.0f, - - 17.0f, 18.0f, 19.0f, - 14.0f, 15.0f, 16.0f, - 11.0f, 12.0f, 13.0f, - - 27.0f, 28.0f, 29.0f, - 24.0f, 25.0f, 26.0f, - 21.0f, 22.0f, 23.0f - }; - - // The axis to reverse - const std::vector axisValues = {-2}; - - // Shapes - const std::vector inputShape = {3, 3, 3}; - const std::vector axisShapeDims = {1}; - const std::vector expectedOutputShape = {3, 3, 3}; - - ReverseV2FP32TestImpl(tflite::BuiltinOperator_REVERSE_V2, - backends, - inputValues, - inputShape, - axisValues, - axisShapeDims, - expectedOutputValues, - expectedOutputShape); - } + 11.0f, 12.0f, 13.0f, + 14.0f, 15.0f, 16.0f, + 17.0f, 18.0f, 19.0f, -#if defined(REVERSEV2_GPUACC) - TEST_SUITE("ReverseV2Tests_GpuAccTests") - { + 21.0f, 22.0f, 23.0f, + 24.0f, 25.0f, 26.0f, + 27.0f, 28.0f, 29.0f + }; - TEST_CASE ("ReverseV2_Float32_GpuAcc_Test") - { - std::vector backends = { armnn::Compute::GpuAcc }; - ReverseV2Float32Test(backends); - } + // The output data + std::vector expectedOutputValues = + { + 3.0f, 2.0f, 1.0f, + 6.0f, 5.0f, 4.0f, + 9.0f, 8.0f, 7.0f, + + 13.0f, 12.0f, 11.0f, + 16.0f, 15.0f, 14.0f, + 19.0f, 18.0f, 17.0f, + + 23.0f, 22.0f, 21.0f, + 26.0f, 25.0f, 24.0f, + 29.0f, 28.0f, 27.0f + }; + + // The axis to reverse + const std::vector axisValues = {2}; + + // Shapes + const std::vector inputShape = {3, 3, 3}; + const std::vector axisShapeDims = {1}; + const std::vector expectedOutputShape = {3, 3, 3}; + + ReverseV2FP32TestImpl(tflite::BuiltinOperator_REVERSE_V2, + backends, + inputValues, + inputShape, + axisValues, + axisShapeDims, + expectedOutputValues, + expectedOutputShape); +} + +void ReverseV2NegativeAxisFloat32Test(std::vector& backends) +{ + // Set input data + std::vector inputValues = + { + 1.0f, 2.0f, 3.0f, + 4.0f, 5.0f, 6.0f, + 7.0f, 8.0f, 9.0f, - TEST_CASE ("ReverseV2_NegativeAxis_Float32_GpuAcc_Test") - { - std::vector backends = { armnn::Compute::GpuAcc }; - ReverseV2NegativeAxisFloat32Test(backends); - } + 11.0f, 12.0f, 13.0f, + 14.0f, 15.0f, 16.0f, + 17.0f, 18.0f, 19.0f, - } // TEST_SUITE("ReverseV2Tests_GpuAccTests") -#endif + 21.0f, 22.0f, 23.0f, + 24.0f, 25.0f, 26.0f, + 27.0f, 28.0f, 29.0f + }; + // The output data + std::vector expectedOutputValues = + { + 7.0f, 8.0f, 9.0f, + 4.0f, 5.0f, 6.0f, + 1.0f, 2.0f, 3.0f, + + 17.0f, 18.0f, 19.0f, + 14.0f, 15.0f, 16.0f, + 11.0f, 12.0f, 13.0f, + + 27.0f, 28.0f, 29.0f, + 24.0f, 25.0f, 26.0f, + 21.0f, 22.0f, 23.0f + }; + + // The axis to reverse + const std::vector axisValues = {-2}; + + // Shapes + const std::vector inputShape = {3, 3, 3}; + const std::vector axisShapeDims = {1}; + const std::vector expectedOutputShape = {3, 3, 3}; + + ReverseV2FP32TestImpl(tflite::BuiltinOperator_REVERSE_V2, + backends, + inputValues, + inputShape, + axisValues, + axisShapeDims, + expectedOutputValues, + expectedOutputShape); +} + +TEST_SUITE("ReverseV2Tests_GpuAccTests") +{ -#if defined(REVERSEV2_CPUACC) - TEST_SUITE("ReverseV2Tests_CpuAccTests") + TEST_CASE ("ReverseV2_Float32_GpuAcc_Test") { + std::vector backends = { armnn::Compute::GpuAcc }; + ReverseV2Float32Test(backends); + } - TEST_CASE ("ReverseV2_Float32_CpuAcc_Test") - { - std::vector backends = { armnn::Compute::CpuAcc }; - ReverseV2Float32Test(backends); - } + TEST_CASE ("ReverseV2_NegativeAxis_Float32_GpuAcc_Test") + { + std::vector backends = { armnn::Compute::GpuAcc }; + ReverseV2NegativeAxisFloat32Test(backends); + } - TEST_CASE ("ReverseV2_NegativeAxis_Float32_CpuAcc_Test") - { - std::vector backends = { armnn::Compute::CpuAcc }; - ReverseV2NegativeAxisFloat32Test(backends); - } +} // TEST_SUITE("ReverseV2Tests_GpuAccTests") - } // TEST_SUITE("ReverseV2Tests_CpuAccTests") -#endif +TEST_SUITE("ReverseV2Tests_CpuAccTests") +{ + TEST_CASE ("ReverseV2_Float32_CpuAcc_Test") + { + std::vector backends = { armnn::Compute::CpuAcc }; + ReverseV2Float32Test(backends); + } - TEST_SUITE("ReverseV2Tests_CpuRefTests") + TEST_CASE ("ReverseV2_NegativeAxis_Float32_CpuAcc_Test") { + std::vector backends = { armnn::Compute::CpuAcc }; + ReverseV2NegativeAxisFloat32Test(backends); + } + +} // TEST_SUITE("ReverseV2Tests_CpuAccTests") - TEST_CASE ("ReverseV2_Float32_CpuRef_Test") - { - std::vector backends = { armnn::Compute::CpuRef }; - ReverseV2Float32Test(backends); - } +TEST_SUITE("ReverseV2Tests_CpuRefTests") +{ + + TEST_CASE ("ReverseV2_Float32_CpuRef_Test") + { + std::vector backends = { armnn::Compute::CpuRef }; + ReverseV2Float32Test(backends); + } - TEST_CASE ("ReverseV2_NegativeAxis_Float32_CpuRef_Test") - { - std::vector backends = { armnn::Compute::CpuRef }; - ReverseV2NegativeAxisFloat32Test(backends); - } + TEST_CASE ("ReverseV2_NegativeAxis_Float32_CpuRef_Test") + { + std::vector backends = { armnn::Compute::CpuRef }; + ReverseV2NegativeAxisFloat32Test(backends); + } - } // TEST_SUITE("ReverseV2Tests_CpuRefTests") +} // TEST_SUITE("ReverseV2Tests_CpuRefTests") } // namespace armnnDelegate -- cgit v1.2.1