From 04a729708f986b1a69c1efc42d5cf18271cfae1e Mon Sep 17 00:00:00 2001 From: Sadik Armagan Date: Mon, 14 Sep 2020 15:44:18 +0100 Subject: IVGCVSW-5157 'Pipe ModelOption through Network::LoadNetwork() to Workload factory' * Pass ModelOptions to WorkloadFactory * Updated signature of CL and NEON Convolution2d workloads added FastMathEnabled param. Signed-off-by: Sadik Armagan Change-Id: I536178be8e4dd4083489e69febadaf0feeba46d2 --- src/backends/backendsCommon/IBackendInternal.cpp | 22 ++++++++++++++++++++++ src/backends/backendsCommon/WorkloadFactory.cpp | 13 +++++++++++++ src/backends/backendsCommon/WorkloadFactory.hpp | 6 ++++++ 3 files changed, 41 insertions(+) (limited to 'src/backends/backendsCommon') diff --git a/src/backends/backendsCommon/IBackendInternal.cpp b/src/backends/backendsCommon/IBackendInternal.cpp index 1cca61efa5..08060331e7 100644 --- a/src/backends/backendsCommon/IBackendInternal.cpp +++ b/src/backends/backendsCommon/IBackendInternal.cpp @@ -39,6 +39,28 @@ IBackendInternal::IWorkloadFactoryPtr IBackendInternal::CreateWorkloadFactory( return IWorkloadFactoryPtr{}; } +IBackendInternal::IWorkloadFactoryPtr IBackendInternal::CreateWorkloadFactory( + const IMemoryManagerSharedPtr& memoryManager, + const ModelOptions& modelOptions) const +{ + if(modelOptions.empty()) + { + return CreateWorkloadFactory(memoryManager); + } + return IWorkloadFactoryPtr{}; +} + +IBackendInternal::IWorkloadFactoryPtr IBackendInternal::CreateWorkloadFactory( + class TensorHandleFactoryRegistry& tensorHandleFactoryRegistry, + const ModelOptions& modelOptions) const +{ + if(modelOptions.empty()) + { + return CreateWorkloadFactory(tensorHandleFactoryRegistry); + } + return IWorkloadFactoryPtr{}; +} + IBackendInternal::IBackendContextPtr IBackendInternal::CreateBackendContext(const IRuntime::CreationOptions&) const { return IBackendContextPtr{}; diff --git a/src/backends/backendsCommon/WorkloadFactory.cpp b/src/backends/backendsCommon/WorkloadFactory.cpp index 0bafda257c..54a4157fe3 100644 --- a/src/backends/backendsCommon/WorkloadFactory.cpp +++ b/src/backends/backendsCommon/WorkloadFactory.cpp @@ -1243,6 +1243,19 @@ bool IWorkloadFactory::IsLayerSupported(const IConnectableLayer& connectableLaye modelOptions); } +bool IWorkloadFactory::IsLayerSupported(const BackendId& backendId, + const IConnectableLayer& connectableLayer, + Optional dataType, + std::string& outReasonIfUnsupported, + const ModelOptions& modelOptions) +{ + return IsLayerConfigurationSupported(backendId, + connectableLayer, + dataType, + outReasonIfUnsupported, + modelOptions); +} + // Default Implementations std::unique_ptr IWorkloadFactory::CreateAbs(const AbsQueueDescriptor& /*descriptor*/, const WorkloadInfo& /*info*/) const diff --git a/src/backends/backendsCommon/WorkloadFactory.hpp b/src/backends/backendsCommon/WorkloadFactory.hpp index 68f9da650e..5096c3ba51 100644 --- a/src/backends/backendsCommon/WorkloadFactory.hpp +++ b/src/backends/backendsCommon/WorkloadFactory.hpp @@ -39,6 +39,12 @@ public: std::string& outReasonIfUnsupported, const ModelOptions& modelOptions); + static bool IsLayerSupported(const BackendId& backendId, + const IConnectableLayer& layer, + Optional dataType, + std::string& outReasonIfUnsupported, + const ModelOptions& modelOptions); + virtual bool SupportsSubTensors() const = 0; ARMNN_DEPRECATED_MSG("Use ITensorHandleFactory::CreateSubTensorHandle instead") -- cgit v1.2.1