From 46c657d34e1d125b14c89140c13db94493e447b7 Mon Sep 17 00:00:00 2001 From: Teresa Charlin Date: Wed, 27 Oct 2021 22:29:13 +0100 Subject: IVGCVSW-6519 Extend pad workload for GpuAcc to support mirror padding * Add UnitTest for GpuAcc Signed-off-by: Teresa Charlin Change-Id: I235900dc62fb043c5ce9c8cd4f63dcc4e5393233 --- src/backends/cl/test/ClLayerTests.cpp | 14 +++++++++++++- src/backends/cl/workloads/ClPadWorkload.cpp | 21 ++++++++++++++++----- 2 files changed, 29 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/backends/cl/test/ClLayerTests.cpp b/src/backends/cl/test/ClLayerTests.cpp index cb3f5e841f..6c27d51853 100644 --- a/src/backends/cl/test/ClLayerTests.cpp +++ b/src/backends/cl/test/ClLayerTests.cpp @@ -946,7 +946,7 @@ ARMNN_AUTO_TEST_FIXTURE_WITH_THF(SimpleReshapeUint8, ClContextControlFixture, Si ARMNN_AUTO_TEST_FIXTURE_WITH_THF(Reshape5d, ClContextControlFixture, Reshape5dTest) ARMNN_AUTO_TEST_FIXTURE_WITH_THF(ReshapeBoolean, ClContextControlFixture, ReshapeBooleanTest) -// Pad +// Pad - Constant ARMNN_AUTO_TEST_FIXTURE_WITH_THF(PadFloat322d, ClContextControlFixture, PadFloat322dTest) ARMNN_AUTO_TEST_FIXTURE_WITH_THF(PadFloat322dCustomPadding, ClContextControlFixture, PadFloat322dCustomPaddingTest) ARMNN_AUTO_TEST_FIXTURE_WITH_THF(PadFloat323d, ClContextControlFixture, PadFloat323dTest) @@ -964,6 +964,18 @@ ARMNN_AUTO_TEST_FIXTURE_WITH_THF(Pad2dQSymm16CustomPadding, ARMNN_AUTO_TEST_FIXTURE_WITH_THF(Pad3dQSymm16, ClContextControlFixture, Pad3dTestCommon, 2.0f, 0) ARMNN_AUTO_TEST_FIXTURE_WITH_THF(Pad4dQSymm16, ClContextControlFixture, Pad4dTestCommon, 2.0f, 0) +// Pad - Symmetric & Reflect +ARMNN_AUTO_TEST_CASE_WITH_THF(PadSymmetric2dFloat32, PadSymmetric2dFloat32Test) +ARMNN_AUTO_TEST_CASE_WITH_THF(PadReflect2dFloat32, PadReflect2dFloat32Test) +ARMNN_AUTO_TEST_CASE_WITH_THF(PadSymmetric3dFloat32, PadSymmetric3dFloat32Test) +ARMNN_AUTO_TEST_CASE_WITH_THF(PadReflect3dFloat32, PadReflect3dFloat32Test) +ARMNN_AUTO_TEST_CASE_WITH_THF(PadSymmetric3dUint8, PadSymmetric3dUint8Test) +ARMNN_AUTO_TEST_CASE_WITH_THF(PadReflect3dUint8, PadReflect3dUint8Test) +ARMNN_AUTO_TEST_CASE_WITH_THF(PadSymmetric3dInt8, PadSymmetric3dInt8Test) +ARMNN_AUTO_TEST_CASE_WITH_THF(PadReflect3dInt8, PadReflect3dInt8Test) +ARMNN_AUTO_TEST_CASE_WITH_THF(PadSymmetricFloat16, PadSymmetricFloat16Test) +ARMNN_AUTO_TEST_CASE_WITH_THF(PadReflectFloat16, PadReflectFloat16Test) + // PReLU ARMNN_AUTO_TEST_FIXTURE_WITH_THF(PreluFloat32, ClContextControlFixture, PreluTest) ARMNN_AUTO_TEST_FIXTURE_WITH_THF(PreluUint8, ClContextControlFixture, PreluTest) diff --git a/src/backends/cl/workloads/ClPadWorkload.cpp b/src/backends/cl/workloads/ClPadWorkload.cpp index 48d61b0b8a..4f8c34cb77 100644 --- a/src/backends/cl/workloads/ClPadWorkload.cpp +++ b/src/backends/cl/workloads/ClPadWorkload.cpp @@ -1,11 +1,12 @@ // -// Copyright © 2017 Arm Ltd. All rights reserved. +// Copyright © 2017 Arm Ltd and Contributors. All rights reserved. // SPDX-License-Identifier: MIT // #include "ClPadWorkload.hpp" #include +#include #include #include @@ -43,7 +44,12 @@ ClPadWorkload::ClPadWorkload(const PadQueueDescriptor& descriptor, { ARMNN_SCOPED_PROFILING_EVENT(Compute::Undefined, "ClPadWorkload_configure"); - m_Layer.configure(clCompileContext, &input, &output, padList, pixelValue); + m_Layer.configure(clCompileContext, + &input, + &output, + padList, + pixelValue, + ConvertPaddingModeToAcl(descriptor.m_Parameters.m_PaddingMode)); } } @@ -68,9 +74,14 @@ arm_compute::Status ClPadValidate(const TensorInfo& input, arm_compute::PaddingList padList = static_cast(reversed_PadList); - const arm_compute::Status aclStatus = arm_compute::CLPadLayer::validate(&aclInputInfo, - &aclOutputInfo, - padList); + // PixelValue is currently unused when validating, but it's required to pass in PaddingMode. + arm_compute::PixelValue pixelValue = GetPixelValue(&aclInputInfo, descriptor.m_PadValue); + const arm_compute::Status aclStatus = + arm_compute::CLPadLayer::validate(&aclInputInfo, + &aclOutputInfo, + padList, + pixelValue, + ConvertPaddingModeToAcl(descriptor.m_PaddingMode)); return aclStatus; } -- cgit v1.2.1