From 9be4916397a3de0cc92824fe2ce92854cfc2d997 Mon Sep 17 00:00:00 2001 From: Sadik Armagan Date: Wed, 30 Oct 2019 16:15:26 +0000 Subject: IVGCVSW-4039 AndroidQ (HAL 1.2) driver support for Fp16 * Call ACL Validate function for validating Floor operator on CL backend Signed-off-by: Sadik Armagan Change-Id: I2206ec86de6eabd18c12d023116d1f4c24487e0d --- src/backends/cl/ClLayerSupport.cpp | 14 +++++--------- src/backends/cl/workloads/ClFloorFloatWorkload.cpp | 9 +++++++++ src/backends/cl/workloads/ClFloorFloatWorkload.hpp | 3 +++ 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/src/backends/cl/ClLayerSupport.cpp b/src/backends/cl/ClLayerSupport.cpp index bd2be57386..f9540f27b0 100644 --- a/src/backends/cl/ClLayerSupport.cpp +++ b/src/backends/cl/ClLayerSupport.cpp @@ -28,6 +28,7 @@ #include "workloads/ClDepthwiseConvolutionWorkload.hpp" #include "workloads/ClDequantizeWorkload.hpp" #include "workloads/ClDivisionFloatWorkload.hpp" +#include "workloads/ClFloorFloatWorkload.hpp" #include "workloads/ClFullyConnectedWorkload.hpp" #include "workloads/ClGreaterWorkload.hpp" #include "workloads/ClInstanceNormalizationWorkload.hpp" @@ -384,15 +385,10 @@ bool ClLayerSupport::IsFloorSupported(const TensorInfo& input, const TensorInfo& output, Optional reasonIfUnsupported) const { - ignore_unused(output); - return IsClBackendSupported(reasonIfUnsupported) && - IsSupportedForDataTypeGeneric(reasonIfUnsupported, - input.GetDataType(), - &FalseFuncF16<>, - &TrueFunc<>, - &FalseFuncU8<>, - &FalseFuncI32<>, - &FalseFuncU8<>); + FORWARD_WORKLOAD_VALIDATE_FUNC(ClFloorWorkloadValidate, + reasonIfUnsupported, + input, + output); } bool ClLayerSupport::IsFullyConnectedSupported(const TensorInfo& input, diff --git a/src/backends/cl/workloads/ClFloorFloatWorkload.cpp b/src/backends/cl/workloads/ClFloorFloatWorkload.cpp index 68a89c7106..f38342ed39 100644 --- a/src/backends/cl/workloads/ClFloorFloatWorkload.cpp +++ b/src/backends/cl/workloads/ClFloorFloatWorkload.cpp @@ -11,6 +11,15 @@ namespace armnn { +arm_compute::Status ClFloorWorkloadValidate(const TensorInfo& input, + const TensorInfo& output) +{ + const arm_compute::TensorInfo aclInput = armcomputetensorutils::BuildArmComputeTensorInfo(input); + const arm_compute::TensorInfo aclOutput = armcomputetensorutils::BuildArmComputeTensorInfo(output); + + return arm_compute::CLFloor::validate(&aclInput, &aclOutput); +} + ClFloorFloatWorkload::ClFloorFloatWorkload(const FloorQueueDescriptor& descriptor, const WorkloadInfo& info) : FloatWorkload(descriptor, info) { diff --git a/src/backends/cl/workloads/ClFloorFloatWorkload.hpp b/src/backends/cl/workloads/ClFloorFloatWorkload.hpp index bfe32df088..376ca3ef02 100644 --- a/src/backends/cl/workloads/ClFloorFloatWorkload.hpp +++ b/src/backends/cl/workloads/ClFloorFloatWorkload.hpp @@ -12,6 +12,9 @@ namespace armnn { +arm_compute::Status ClFloorWorkloadValidate(const TensorInfo& input, + const TensorInfo& output); + class ClFloorFloatWorkload : public FloatWorkload { public: -- cgit v1.2.1