From 045f6be924240a560293a3a7a0ecae49bcf0d1fa Mon Sep 17 00:00:00 2001 From: Sadik Armagan Date: Thu, 10 Sep 2020 13:37:32 +0100 Subject: IVGCVSW-5156 Introduce ModelOptions to OptimizedNetwork * Introduced ModelOptions to IBackendInternal * Introduced ModelOptions to Network * Added FastMathEnabled parameter to Conv2d Validate function in CL and NEON * Added Optimizer tests Signed-off-by: Ryan OShea Signed-off-by: Sadik Armagan Change-Id: Ib54c1e82cb3d89a52756ed499cf91b6a7fdb2063 --- src/backends/backendsCommon/WorkloadFactory.cpp | 35 ++++++++++++++++++++----- 1 file changed, 29 insertions(+), 6 deletions(-) (limited to 'src/backends/backendsCommon/WorkloadFactory.cpp') diff --git a/src/backends/backendsCommon/WorkloadFactory.cpp b/src/backends/backendsCommon/WorkloadFactory.cpp index 09d7c2d568..0bafda257c 100644 --- a/src/backends/backendsCommon/WorkloadFactory.cpp +++ b/src/backends/backendsCommon/WorkloadFactory.cpp @@ -39,10 +39,11 @@ const TensorInfo OverrideDataType(const TensorInfo& info, Optional typ } // anonymous namespace -bool IWorkloadFactory::IsLayerSupported(const BackendId& backendId, - const IConnectableLayer& connectableLayer, - Optional dataType, - std::string& outReasonIfUnsupported) +bool IWorkloadFactory::IsLayerConfigurationSupported(const BackendId& backendId, + const IConnectableLayer& connectableLayer, + Optional dataType, + std::string& outReasonIfUnsupported, + const ModelOptions& modelOptions) { Optional reason = outReasonIfUnsupported; bool result; @@ -61,7 +62,7 @@ bool IWorkloadFactory::IsLayerSupported(const BackendId& backendId, auto backendFactory = backendRegistry.GetFactory(backendId); auto backendObject = backendFactory(); - auto layerSupportObject = backendObject->GetLayerSupport(); + auto layerSupportObject = backendObject->GetLayerSupport(modelOptions); switch(layer.GetType()) { @@ -1212,12 +1213,34 @@ bool IWorkloadFactory::IsLayerSupported(const BackendId& backendId, return result; } +bool IWorkloadFactory::IsLayerSupported(const BackendId& backendId, + const IConnectableLayer& connectableLayer, + Optional dataType, + std::string& outReasonIfUnsupported) +{ + return IsLayerConfigurationSupported(backendId, connectableLayer, dataType, outReasonIfUnsupported); +} + bool IWorkloadFactory::IsLayerSupported(const IConnectableLayer& connectableLayer, Optional dataType, std::string& outReasonIfUnsupported) { auto layer = PolymorphicDowncast(&connectableLayer); - return IsLayerSupported(layer->GetBackendId(), connectableLayer, dataType, outReasonIfUnsupported); + return IsLayerConfigurationSupported(layer->GetBackendId(), connectableLayer, dataType, outReasonIfUnsupported); +} + +// TODO merge with defaulted modelOptions above +bool IWorkloadFactory::IsLayerSupported(const IConnectableLayer& connectableLayer, + Optional dataType, + std::string& outReasonIfUnsupported, + const ModelOptions& modelOptions) +{ + auto layer = PolymorphicDowncast(&connectableLayer); + return IsLayerConfigurationSupported(layer->GetBackendId(), + connectableLayer, + dataType, + outReasonIfUnsupported, + modelOptions); } // Default Implementations -- cgit v1.2.1