IVGCVSW-1810 - Add no-op factory implementations of the CreateMean for all backend...
authornarpra01 <narumol.prangnawarat@arm.com>
Mon, 10 Sep 2018 08:50:09 +0000 (09:50 +0100)
committerMatthew Bentham <matthew.bentham@arm.com>
Tue, 25 Sep 2018 13:54:29 +0000 (14:54 +0100)
Change-Id: Ic1054a32f59659d10f67a6b02527887ccf3c850f

src/armnn/backends/ClWorkloadFactory.cpp
src/armnn/backends/ClWorkloadFactory.hpp
src/armnn/backends/NeonWorkloadFactory.cpp
src/armnn/backends/NeonWorkloadFactory.hpp
src/armnn/backends/RefWorkloadFactory.cpp
src/armnn/backends/RefWorkloadFactory.hpp
src/armnn/backends/WorkloadData.cpp
src/armnn/backends/WorkloadData.hpp
src/armnn/backends/WorkloadFactory.hpp

index 8c9ca20..75a2af8 100644 (file)
@@ -250,6 +250,12 @@ std::unique_ptr<IWorkload> ClWorkloadFactory::CreateConvertFp32ToFp16(
     return std::make_unique<ClConvertFp32ToFp16Workload>(descriptor, info);
 }
 
+std::unique_ptr<IWorkload> ClWorkloadFactory::CreateMean(const MeanQueueDescriptor& descriptor,
+                                                         const WorkloadInfo& info) const
+{
+    return MakeWorkload<NullWorkload, NullWorkload>(descriptor, info);
+}
+
 void ClWorkloadFactory::Finalize()
 {
     m_MemoryManager.Finalize();
@@ -447,6 +453,12 @@ std::unique_ptr<IWorkload> ClWorkloadFactory::CreateSubtraction(const Subtractio
     return nullptr;
 }
 
+std::unique_ptr<IWorkload> ClWorkloadFactory::CreateMean(const MeanQueueDescriptor& descriptor,
+                                                         const WorkloadInfo& info) const
+{
+    return nullptr;
+}
+
 void ClWorkloadFactory::Finalize()
 {
 }
index dedbb50..4403310 100644 (file)
@@ -114,6 +114,9 @@ public:
     virtual std::unique_ptr<IWorkload> CreateSubtraction(const SubtractionQueueDescriptor& descriptor,
                                                          const WorkloadInfo& info) const override;
 
+    virtual std::unique_ptr<IWorkload> CreateMean(const MeanQueueDescriptor& descriptor,
+                                                  const WorkloadInfo& Info) const override;
+
     virtual void Finalize() override;
 
     virtual void Release() override;
index fe9fd55..b3d84d1 100644 (file)
@@ -244,6 +244,12 @@ std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateConvertFp32ToFp16(
     return std::make_unique<NeonConvertFp32ToFp16Workload>(descriptor, info);
 }
 
+std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateMean(const MeanQueueDescriptor& descriptor,
+                                                           const WorkloadInfo& info) const
+{
+    return MakeWorkload<NullWorkload, NullWorkload>(descriptor, info);
+}
+
 void NeonWorkloadFactory::Finalize()
 {
     m_MemoryManager.Finalize();
@@ -441,6 +447,12 @@ std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateSubtraction(const Subtract
     return nullptr;
 }
 
+std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateMean(const MeanQueueDescriptor& descriptor,
+                                                           const WorkloadInfo& info) const
+{
+    return nullptr;
+}
+
 void NeonWorkloadFactory::Finalize()
 {}
 
index 34d0e95..5410c22 100644 (file)
@@ -114,6 +114,9 @@ public:
     virtual std::unique_ptr<IWorkload> CreateSubtraction(const SubtractionQueueDescriptor& descriptor,
                                                          const WorkloadInfo& info) const override;
 
+    virtual std::unique_ptr<IWorkload> CreateMean(const MeanQueueDescriptor& descriptor,
+                                                  const WorkloadInfo& Info) const override;
+
     virtual void Finalize() override;
 
     virtual void Release() override;
index 92e2506..318f47c 100644 (file)
@@ -233,4 +233,10 @@ std::unique_ptr<armnn::IWorkload> RefWorkloadFactory::CreateSubtraction(
     return MakeWorkload<RefSubtractionFloat32Workload, RefSubtractionUint8Workload>(descriptor, info);
 }
 
+std::unique_ptr<armnn::IWorkload> RefWorkloadFactory::CreateMean(
+    const MeanQueueDescriptor& descriptor, const WorkloadInfo& info) const
+{
+    return MakeWorkload<NullWorkload, NullWorkload>(descriptor, info);
+}
+
 } // namespace armnn
index 5fbc6e4..5e694d6 100644 (file)
@@ -129,6 +129,9 @@ public:
 
     virtual std::unique_ptr<IWorkload> CreateSubtraction(const SubtractionQueueDescriptor& descriptor,
                                                          const WorkloadInfo& info) const override;
+
+    virtual std::unique_ptr<IWorkload> CreateMean(const MeanQueueDescriptor& descriptor,
+                                                  const WorkloadInfo& Info) const override;
 private:
 
     template <typename F32Workload, typename U8Workload, typename QueueDescriptorType>
index e3cf83f..c934a53 100644 (file)
@@ -824,4 +824,10 @@ void SubtractionQueueDescriptor::Validate(const WorkloadInfo& workloadInfo) cons
                                        "second input");
 }
 
+void MeanQueueDescriptor::Validate(const WorkloadInfo& workloadInfo) const
+{
+    ValidateSingleInput(workloadInfo, "MeanQueueDescriptor");
+    ValidateSingleOutput(workloadInfo, "MeanQueueDescriptor");
+}
+
 } //namespace armnn
index d50a237..f8f7e32 100644 (file)
@@ -196,6 +196,12 @@ struct SubtractionQueueDescriptor : QueueDescriptor
     void Validate(const WorkloadInfo& workloadInfo) const;
 };
 
+// Mean layer workload data.
+struct MeanQueueDescriptor : QueueDescriptor
+{
+    void Validate(const WorkloadInfo& workloadInfo) const;
+};
+
 // Batch norm layer workload data.
 struct BatchNormalizationQueueDescriptor : QueueDescriptorWithParameters<BatchNormalizationDescriptor>
 {
index 0ae5a3e..3cd04f9 100644 (file)
@@ -126,6 +126,9 @@ public:
 
     virtual std::unique_ptr<IWorkload> CreateSubtraction(const SubtractionQueueDescriptor& descriptor,
                                                          const WorkloadInfo& info) const = 0;
+
+    virtual std::unique_ptr<IWorkload> CreateMean(const MeanQueueDescriptor& descriptor,
+                                                  const WorkloadInfo& Info) const = 0;
 };
 
 } //namespace armnn