diff options
Diffstat (limited to 'src/backends/gpuFsa/test')
-rw-r--r-- | src/backends/gpuFsa/test/GpuFsaEndToEndTests.cpp | 54 | ||||
-rw-r--r-- | src/backends/gpuFsa/test/GpuFsaLayerSupportTests.cpp | 30 |
2 files changed, 84 insertions, 0 deletions
diff --git a/src/backends/gpuFsa/test/GpuFsaEndToEndTests.cpp b/src/backends/gpuFsa/test/GpuFsaEndToEndTests.cpp index 26c7cb8d63..93a4a81f9d 100644 --- a/src/backends/gpuFsa/test/GpuFsaEndToEndTests.cpp +++ b/src/backends/gpuFsa/test/GpuFsaEndToEndTests.cpp @@ -9,6 +9,8 @@ #include "backendsCommon/test/DepthwiseConvolution2dEndToEndTests.hpp" #include "backendsCommon/test/ElementwiseBinaryEndToEndTestImpl.hpp" +#include "backendsCommon/test/Pooling2dEndToEndTestImpl.hpp" + #include <doctest/doctest.h> @@ -56,4 +58,56 @@ TEST_CASE("GpuFsaElementwiseBinarySubTestFloat16") ElementwiseBinarySimple3DEndToEnd<armnn::DataType::Float16>(gpuFsaDefaultBackends, BinaryOperation::Sub); } +// Pooling 2D +// Average Pool 2D +TEST_CASE("GpuFsaAvgPool2DEndtoEndTestFloat32") +{ + AvgPool2dEndToEnd<DataType::Float32>(gpuFsaDefaultBackends); +} + +TEST_CASE("GpuFsaAvgPool2DEndtoEndTestFloat16") +{ + + AvgPool2dEndToEndFloat16<DataType::Float16>(gpuFsaDefaultBackends); +} + +TEST_CASE("UNSUPPORTED_GpuFsaAvgPool2DIgnoreValueEndtoEndTestFloat32") +{ + // Exclude padding must be set to true in Attributes! to be supported by GPU + try + { + AvgPool2dEndToEnd<DataType::Float32>(gpuFsaDefaultBackends, PaddingMethod::IgnoreValue); + FAIL("An exception should have been thrown"); + } + catch (const armnn::InvalidArgumentException& e) + { + CHECK(strcmp(e.what(), "Failed to assign a backend to each layer") == 0); + } +} + +// Max Pool 2D +TEST_CASE("GpuFsaMaxPool2DEndtoEndTestFloat32") +{ + MaxPool2dEndToEnd<DataType::Float32>(gpuFsaDefaultBackends); +} + +TEST_CASE("GpuFsaMaxPool2DEndtoEndTestFloat16") +{ + MaxPool2dEndToEndFloat16<DataType::Float16>(gpuFsaDefaultBackends); +} + +TEST_CASE("UNSUPPORTED_GpuFsaMaxPool2DIgnoreValueEndtoEndTestFloat32") +{ + // Exclude padding must be set to true in Attributes! to be supported by GPU + try + { + MaxPool2dEndToEnd<DataType::Float32>(gpuFsaDefaultBackends, PaddingMethod::IgnoreValue); + FAIL("An exception should have been thrown"); + } + catch (const armnn::InvalidArgumentException& e) + { + CHECK(strcmp(e.what(), "Failed to assign a backend to each layer") == 0); + } +} + } diff --git a/src/backends/gpuFsa/test/GpuFsaLayerSupportTests.cpp b/src/backends/gpuFsa/test/GpuFsaLayerSupportTests.cpp index 9d4b3b9367..fee0d07820 100644 --- a/src/backends/gpuFsa/test/GpuFsaLayerSupportTests.cpp +++ b/src/backends/gpuFsa/test/GpuFsaLayerSupportTests.cpp @@ -101,4 +101,34 @@ TEST_CASE("IsLayerSupportedGpuFsaElementWiseBinarySub") CHECK(supported); } +TEST_CASE("IsLayerSupportedGpuFsaPooling2d") +{ + TensorInfo inputInfo({ 1, 3, 4, 1 }, DataType::Float32); + TensorInfo outputInfo({ 1, 2, 2, 1 }, DataType::Float32); + + Pooling2dDescriptor desc{}; + desc.m_PoolType = PoolingAlgorithm::Max; + desc.m_PadLeft = 0; + desc.m_PadRight = 0; + desc.m_PadTop = 0; + desc.m_PadBottom = 0; + desc.m_PoolWidth = 2; + desc.m_PoolHeight = 2; + desc.m_StrideX = 1; + desc.m_StrideY = 1; + desc.m_OutputShapeRounding = OutputShapeRounding::Floor; + desc.m_PaddingMethod = PaddingMethod::Exclude; + desc.m_DataLayout = DataLayout::NHWC; + + GpuFsaLayerSupport supportChecker; + std::string reasonIfNotSupported; + auto supported = supportChecker.IsLayerSupported(LayerType::Pooling2d, + {inputInfo, outputInfo}, + desc, + EmptyOptional(), + EmptyOptional(), + reasonIfNotSupported); + CHECK(supported); +} + }
\ No newline at end of file |