// // Copyright © 2022-2024 Arm Ltd and Contributors. All rights reserved. // SPDX-License-Identifier: MIT // #include "backendsCommon/test/EndToEndTestImpl.hpp" #include "backendsCommon/test/ActivationEndToEndTestImpl.hpp" #include "backendsCommon/test/AdditionEndToEndTestImpl.hpp" #include "backendsCommon/test/Convolution2dEndToEndTestImpl.hpp" #include "backendsCommon/test/ConcatEndToEndTestImpl.hpp" #include "backendsCommon/test/ElementwiseBinaryEndToEndTestImpl.hpp" #include "backendsCommon/test/ElementwiseUnaryEndToEndTestImpl.hpp" #include "backendsCommon/test/MultiplicationEndToEndTestImpl.hpp" #include "backendsCommon/test/Pooling2dEndToEndTestImpl.hpp" #include "backendsCommon/test/QuantizationEndToEndTestImpl.hpp" #include "backendsCommon/test/ReshapeEndToEndTestImpl.hpp" #include "backendsCommon/test/ResizeEndToEndTestImpl.hpp" #include "backendsCommon/test/SliceEndToEndTestImpl.hpp" #include "backendsCommon/test/SplitterEndToEndTestImpl.hpp" #include "backendsCommon/test/SubtractionEndToEndTestImpl.hpp" #include "backendsCommon/test/TransposeConvolution2dEndToEndTestImpl.hpp" #include "backendsCommon/test/TransposeEndToEndTestImpl.hpp" #include TEST_SUITE("TosaRefEndToEnd") { static std::vector tosaDefaultBackends = { "TosaRef" }; // Activation //LeakyRelu TEST_CASE("TosaRefLeakyReluActivationFloat32") { ActivationEndToEndTest(tosaDefaultBackends, ActivationFunction::LeakyReLu, 1.f, 0, 0.01f); } TEST_CASE("TosaRefLeakyReluActivationFloat16") { ActivationEndToEndTest(tosaDefaultBackends, ActivationFunction::LeakyReLu, 0.3f, 5, 0.01f); } TEST_CASE("TosaRefLeakyReluActivationInt8") { ActivationEndToEndTest(tosaDefaultBackends, ActivationFunction::LeakyReLu, 0.6f, 7, 0.01f); } TEST_CASE("TosaRefLeakyReluActivationInt16") { ActivationEndToEndTest(tosaDefaultBackends, ActivationFunction::LeakyReLu, 0.15f, 0, 0.01f); } // Addition TEST_CASE("TosaRefAdditionEndtoEndTestFloat32") { AdditionEndToEnd(tosaDefaultBackends); } TEST_CASE("TosaRefAdditionEndtoEndTestInt32") { AdditionEndToEnd(tosaDefaultBackends); } TEST_CASE("TosaRefAdditionEndtoEndTestFloat16") { AdditionEndToEndFloat16(tosaDefaultBackends); } // Concat TEST_CASE("TosaRefConcatEndToEndDim0TestFloat32") { ConcatDim0EndToEnd(tosaDefaultBackends); } TEST_CASE("TosaRefConcatEndToEndDim0TestInt32") { ConcatDim0EndToEnd(tosaDefaultBackends); } TEST_CASE("TosaRefConcatEndToEndDim1TestFloat32") { ConcatDim1EndToEnd(tosaDefaultBackends); } TEST_CASE("TosaRefConcatEndToEndDim1TestInt32") { ConcatDim1EndToEnd(tosaDefaultBackends); } TEST_CASE("TosaRefConcatEndToEndDim2TestFloat32") { ConcatDim2EndToEnd(tosaDefaultBackends); } TEST_CASE("TosaRefConcatEndToEndDim2TestInt32") { ConcatDim2EndToEnd(tosaDefaultBackends); } TEST_CASE("TosaRefConcatEndToEndDim3TestFloat32") { ConcatDim3EndToEnd(tosaDefaultBackends); } TEST_CASE("TosaRefConcatEndToEndDim3TestInt32") { ConcatDim3EndToEnd(tosaDefaultBackends); } // Conv2d TEST_CASE("TosaRefConv2dEndtoEndTestFloat32") { Convolution2dEndToEnd(tosaDefaultBackends, armnn::DataLayout::NHWC); } TEST_CASE("TosaRefConv2dWithoutBiasEndtoEndTestFloat32") { Convolution2dEndToEnd(tosaDefaultBackends, armnn::DataLayout::NHWC, false); } TEST_CASE("TosaRefConv2dEndtoEndTestInt8") { Convolution2dEndToEnd(tosaDefaultBackends, armnn::DataLayout::NHWC); } TEST_CASE("TosaRefConv2dWithoutBiasEndtoEndTestInt8") { Convolution2dEndToEnd(tosaDefaultBackends, armnn::DataLayout::NHWC, false); } // Maximum TEST_CASE("TosaRefMaximumEndtoEndTestInt8") { ElementwiseBinarySimpleNoReshapeEndToEnd(tosaDefaultBackends, armnn::BinaryOperation::Maximum); } // Pooling // Average Pool 2D TEST_CASE("TosaRefAvgPool2DEndtoEndTestFloat32") { AvgPool2dEndToEnd(tosaDefaultBackends); } TEST_CASE("TosaRefAvgPool2DEndtoEndTestFloat16") { AvgPool2dEndToEndFloat16(tosaDefaultBackends); } TEST_CASE("TosaRefAvgPool2DIgnoreValueEndtoEndTestFloat32") { AvgPool2dEndToEnd(tosaDefaultBackends, PaddingMethod::IgnoreValue); } // Max Pool 2D TEST_CASE("TosaRefMaxPool2DEndtoEndTestFloat32") { MaxPool2dEndToEnd(tosaDefaultBackends); } TEST_CASE("TosaRefMaxPool2DEndtoEndTestFloat16") { MaxPool2dEndToEndFloat16(tosaDefaultBackends); } TEST_CASE("TosaRefMaxPool2DIgnoreValueEndtoEndTestFloat32") { MaxPool2dEndToEnd(tosaDefaultBackends, PaddingMethod::IgnoreValue); } TEST_CASE("TosaRefMaxPool2DTwoLayerEndtoEndTestFloat32") { MaxPool2dTwoLayerEndToEnd(tosaDefaultBackends); } TEST_CASE("TosaRefMaxPool2DThreeLayerEndtoEndTestFloat32") { MaxPool2dThreeLayerEndToEnd(tosaDefaultBackends); } // Quantization TEST_CASE("TosaRefQuantizeFromFloat32ToInt8") { QuantizationEndToEndFloat32(tosaDefaultBackends); } TEST_CASE("TosaRefQuantizeFromFloat32ToInt16") { QuantizationEndToEndFloat32(tosaDefaultBackends); } TEST_CASE("TosaRefQuantizeFromFloat32ToInt32") { QuantizationEndToEndFloat32(tosaDefaultBackends); } TEST_CASE("TosaRefQuantizeFromFloat16ToInt8") { QuantizationEndToEndFloat16(tosaDefaultBackends); } TEST_CASE("TosaRefQuantizeFromFloat16ToInt16") { QuantizationEndToEndFloat16(tosaDefaultBackends); } TEST_CASE("TosaRefQuantizeFromFloat16ToInt32") { QuantizationEndToEndFloat16(tosaDefaultBackends); } // Reshape TEST_CASE("TosaRefReshapeEndtoEndTestFloat32") { ReshapeEndToEnd(tosaDefaultBackends); } TEST_CASE("TosaRefReshapeEndtoEndTestInt32") { ReshapeEndToEnd(tosaDefaultBackends); } TEST_CASE("TosaRefReshapeEndtoEndTestFloat16") { ReshapeEndToEndFloat16(tosaDefaultBackends); } TEST_CASE("TosaRefRsqrtEndtoEndTestFloat32") { ElementwiseUnarySimpleEndToEnd(tosaDefaultBackends, UnaryOperation::Rsqrt); } // Resize TEST_CASE("TosaRefResizeNearestNeighborEndToEndFloat32AlignCornersNhwcTest") { ResizeNearestNeighborEndToEnd(tosaDefaultBackends, armnn::DataLayout::NHWC, true, false); } TEST_CASE("TosaRefResizeNearestNeighborEndToEndFloat32HalfPixelNhwcTest") { ResizeNearestNeighborEndToEnd(tosaDefaultBackends, armnn::DataLayout::NHWC, false, true); } TEST_CASE("TosaRefResizeNearestNeighborEndToEndFloat16AlignCornersNhwcTest") { ResizeNearestNeighborEndToEnd(tosaDefaultBackends, armnn::DataLayout::NHWC, true, false); } TEST_CASE("TosaRefResizeNearestNeighborEndToEndFloat16HalfPixelNhwcTest") { ResizeNearestNeighborEndToEnd(tosaDefaultBackends, armnn::DataLayout::NHWC, false, true); } TEST_CASE("TosaRefResizeNearestNeighborEndToEndInt8AlignCornersNhwcTest") { ResizeNearestNeighborEndToEnd(tosaDefaultBackends, armnn::DataLayout::NHWC, true, false); } TEST_CASE("TosaRefResizeNearestNeighborEndToEndInt8HalfPixelNhwcTest") { ResizeNearestNeighborEndToEnd(tosaDefaultBackends, armnn::DataLayout::NHWC, false, true); } TEST_CASE("TosaRefResizeNearestNeighborEndToEndInt16AlignCornersNhwcTest") { ResizeNearestNeighborEndToEnd(tosaDefaultBackends, armnn::DataLayout::NHWC, true, false); } TEST_CASE("TosaRefResizeNearestNeighborEndToEndInt16HalfPixelNhwcTest") { ResizeNearestNeighborEndToEnd(tosaDefaultBackends, armnn::DataLayout::NHWC, false, true); } // Slice TEST_CASE("TosaRefSliceEndtoEndTestFloat32") { SliceEndToEnd(tosaDefaultBackends); } TEST_CASE("TosaRefSliceEndtoEndTestInt32") { SliceEndToEnd(tosaDefaultBackends); } TEST_CASE("TosaRefSliceEndtoEndTestFloat16") { SliceEndToEndFloat16(tosaDefaultBackends); } // Split TEST_CASE("TosaRefSplit1dEndtoEndTestBoolean") { Splitter1dEndToEnd(tosaDefaultBackends); } TEST_CASE("TosaRefSplit1dEndtoEndTestInt8") { Splitter1dEndToEnd(tosaDefaultBackends); } TEST_CASE("TosaRefSplit1dEndtoEndTestSigned16") { Splitter1dEndToEnd(tosaDefaultBackends); } TEST_CASE("TosaRefSplit1dEndtoEndTestInt32") { Splitter1dEndToEnd(tosaDefaultBackends); } TEST_CASE("TosaRefSplit1dEndtoEndTestFloat16") { Splitter1dEndToEndFloat16(tosaDefaultBackends); } TEST_CASE("TosaRefSplit1dEndToEndFloat32") { Splitter1dEndToEnd(tosaDefaultBackends); } TEST_CASE("TosaRefSplit2dDim0EndtoEndTestFloat32") { Splitter2dDim0EndToEnd(tosaDefaultBackends); } TEST_CASE("TosaRefSplit2dDim1EndtoEndTestFloat32") { Splitter2dDim1EndToEnd(tosaDefaultBackends); } TEST_CASE("TosaRefSplit3dDim0EndtoEndTestFloat32") { Splitter3dDim0EndToEnd(tosaDefaultBackends); } TEST_CASE("TosaRefSplit3dDim1EndtoEndTestFloat32") { Splitter3dDim1EndToEnd(tosaDefaultBackends); } TEST_CASE("TosaRefSplit3dDim1EndtoEndTestFloat16") { Splitter3dDim1EndToEndFloat16(tosaDefaultBackends); } TEST_CASE("TosaRefSplit3dDim1EndtoEndTestBoolean") { Splitter3dDim1EndToEnd(tosaDefaultBackends); } TEST_CASE("TosaRefSplit3dDim1EndtoEndTestInt8") { Splitter3dDim1EndToEnd(tosaDefaultBackends); } TEST_CASE("TosaRefSplit3dDim1EndtoEndTestSigned16") { Splitter3dDim1EndToEnd(tosaDefaultBackends); } TEST_CASE("TosaRefSplit3dDim1EndtoEndTestInt32") { Splitter3dDim1EndToEnd(tosaDefaultBackends); } TEST_CASE("TosaRefSplit3dDim2EndtoEndTestInt8") { Splitter3dDim2EndToEnd(tosaDefaultBackends); } TEST_CASE("TosaRefSplit4dDim0EndtoEndTestInt8") { Splitter4dDim0EndToEnd(tosaDefaultBackends); } TEST_CASE("TosaRefSplit4dDim1EndtoEndTestInt8") { Splitter4dDim1EndToEnd(tosaDefaultBackends); } TEST_CASE("TosaRefSplit4dDim2EndtoEndTestBoolean") { Splitter4dDim2EndToEnd(tosaDefaultBackends); } TEST_CASE("TosaRefSplit4dDim2EndtoEndTestInt8") { Splitter4dDim2EndToEnd(tosaDefaultBackends); } TEST_CASE("TosaRefSplit4dDim2EndtoEndTestInt16") { Splitter4dDim2EndToEnd(tosaDefaultBackends); } TEST_CASE("TosaRefSplit4dDim2EndtoEndTestInt32") { Splitter4dDim2EndToEnd(tosaDefaultBackends); } TEST_CASE("TosaRefSplit4dDim2EndtoEndTestFloat16") { Splitter4dDim2EndToEndFloat16(tosaDefaultBackends); } TEST_CASE("TosaRefSplit4dDim3EndtoEndTestInt8") { Splitter4dDim3EndToEnd(tosaDefaultBackends); } // Subtraction TEST_CASE("TosaRefSubtractionEndtoEndTestFloat32") { SubtractionEndToEnd(tosaDefaultBackends); } TEST_CASE("TosaRefSubtractionEndtoEndTestInt32") { SubtractionEndToEnd(tosaDefaultBackends); } TEST_CASE("TosaRefSubtractionEndtoEndTestFloat16") { SubtractionEndToEndFloat16(tosaDefaultBackends); } TEST_CASE("TosaRefMultiplicationEndtoEndTestFloat32") { MultiplicationEndToEnd(tosaDefaultBackends); } TEST_CASE("TosaRefMultiplicationEndtoEndTestInt32") { MultiplicationEndToEnd(tosaDefaultBackends); } TEST_CASE("TosaRefMultiplicationEndtoEndTestFloat16") { MultiplicationEndToEndFloat16(tosaDefaultBackends); } // TransposeConvolution2d TEST_CASE("TosaRefTransposeConvolution2dEndToEndFloatNhwcTest") { TransposeConvolution2dEndToEnd( tosaDefaultBackends, armnn::DataLayout::NHWC); } TEST_CASE("TosaRefSimpleTransposeConvolution2dEndToEndFloatNhwcTest") { SimpleTransposeConvolution2dEndToEnd( tosaDefaultBackends, armnn::DataLayout::NHWC); } // Transpose TEST_CASE("TosaRefTransposeEndtoEndTestFloat32") { TransposeEndToEnd(tosaDefaultBackends); } }