IVGCVSW-4039 AndroidQ (HAL 1.2) driver support for Fp16
authorSadik Armagan <sadik.armagan@arm.com>
Wed, 30 Oct 2019 16:15:26 +0000 (16:15 +0000)
committerNarumol Prangnawarat <narumol.prangnawarat@arm.com>
Thu, 31 Oct 2019 08:16:21 +0000 (08:16 +0000)
* Call ACL Validate function for validating Floor operator on CL backend

Signed-off-by: Sadik Armagan <sadik.armagan@arm.com>
Change-Id: I2206ec86de6eabd18c12d023116d1f4c24487e0d

src/backends/cl/ClLayerSupport.cpp
src/backends/cl/workloads/ClFloorFloatWorkload.cpp
src/backends/cl/workloads/ClFloorFloatWorkload.hpp

index bd2be57..f9540f2 100644 (file)
@@ -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<std::string&> 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,
index 68a89c7..f38342e 100644 (file)
 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<FloorQueueDescriptor>(descriptor, info)
 {
index bfe32df..376ca3e 100644 (file)
@@ -12,6 +12,9 @@
 namespace armnn
 {
 
+arm_compute::Status ClFloorWorkloadValidate(const TensorInfo& input,
+                                            const TensorInfo& output);
+
 class ClFloorFloatWorkload : public FloatWorkload<FloorQueueDescriptor>
 {
 public: