aboutsummaryrefslogtreecommitdiff
path: root/src/armnn/backends/NeonWorkloadFactory.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/armnn/backends/NeonWorkloadFactory.hpp')
-rw-r--r--src/armnn/backends/NeonWorkloadFactory.hpp29
1 files changed, 23 insertions, 6 deletions
diff --git a/src/armnn/backends/NeonWorkloadFactory.hpp b/src/armnn/backends/NeonWorkloadFactory.hpp
index 66a69f3baf..83e1f5e75f 100644
--- a/src/armnn/backends/NeonWorkloadFactory.hpp
+++ b/src/armnn/backends/NeonWorkloadFactory.hpp
@@ -4,15 +4,17 @@
//
#pragma once
-#include "AclBaseMemoryManager.hpp"
#include "OutputHandler.hpp"
+#include "memory/BaseMemoryManager.hpp"
+
#include <boost/core/ignore_unused.hpp>
+#include <boost/optional.hpp>
namespace armnn
{
-// Neon workload factory
+// Neon workload factory.
class NeonWorkloadFactory : public IWorkloadFactory
{
public:
@@ -20,7 +22,8 @@ public:
virtual Compute GetCompute() const override { return Compute::CpuAcc; }
- static bool IsLayerSupported(const Layer& layer, DataType dataType, std::string& outReasonIfUnsupported);
+ static bool IsLayerSupported(const Layer& layer, boost::optional<DataType> dataType,
+ std::string& outReasonIfUnsupported);
virtual bool SupportsSubTensors() const override { return true; }
@@ -96,11 +99,25 @@ public:
virtual std::unique_ptr<IWorkload> CreateFloor(const FloorQueueDescriptor& descriptor,
const WorkloadInfo& info) const override;
- void Finalize() override;
+ virtual std::unique_ptr<IWorkload> CreateLstm(const LstmQueueDescriptor& descriptor,
+ const WorkloadInfo& info) const override;
-private:
+ virtual std::unique_ptr<IWorkload> CreateConvertFp16ToFp32(const ConvertFp16ToFp32QueueDescriptor& descriptor,
+ const WorkloadInfo& info) const override;
+
+ virtual std::unique_ptr<IWorkload> CreateConvertFp32ToFp16(const ConvertFp32ToFp16QueueDescriptor& descriptor,
+ const WorkloadInfo& info) const override;
+
+ virtual void Finalize() override;
- mutable AclBaseMemoryManager m_MemoryManager;
+ virtual void Release() override;
+
+ virtual void Acquire() override;
+
+private:
+#ifdef ARMCOMPUTENEON_ENABLED
+ mutable NeonMemoryManager m_MemoryManager;
+#endif
};
} //namespace armnn