diff options
author | Sadik Armagan <sadik.armagan@arm.com> | 2020-09-14 15:44:18 +0100 |
---|---|---|
committer | Sadik Armagan <sadik.armagan@arm.com> | 2020-09-14 14:42:59 +0000 |
commit | 04a729708f986b1a69c1efc42d5cf18271cfae1e (patch) | |
tree | d39be642c3b5bfe9f9520ae69889b20dade10406 /src/backends/backendsCommon | |
parent | 80c6b146046252af153af27025a28fb59d33c5e6 (diff) | |
download | armnn-04a729708f986b1a69c1efc42d5cf18271cfae1e.tar.gz |
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 <sadik.armagan@arm.com>
Change-Id: I536178be8e4dd4083489e69febadaf0feeba46d2
Diffstat (limited to 'src/backends/backendsCommon')
-rw-r--r-- | src/backends/backendsCommon/IBackendInternal.cpp | 22 | ||||
-rw-r--r-- | src/backends/backendsCommon/WorkloadFactory.cpp | 13 | ||||
-rw-r--r-- | src/backends/backendsCommon/WorkloadFactory.hpp | 6 |
3 files changed, 41 insertions, 0 deletions
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> dataType, + std::string& outReasonIfUnsupported, + const ModelOptions& modelOptions) +{ + return IsLayerConfigurationSupported(backendId, + connectableLayer, + dataType, + outReasonIfUnsupported, + modelOptions); +} + // Default Implementations std::unique_ptr<IWorkload> 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> dataType, + std::string& outReasonIfUnsupported, + const ModelOptions& modelOptions); + virtual bool SupportsSubTensors() const = 0; ARMNN_DEPRECATED_MSG("Use ITensorHandleFactory::CreateSubTensorHandle instead") |