diff options
author | kevmay01 <kevin.may@arm.com> | 2019-01-24 14:05:09 +0000 |
---|---|---|
committer | kevmay01 <kevin.may@arm.com> | 2019-01-24 14:05:09 +0000 |
commit | 2b4d88e34ac1f965417fd236fd4786f26bae2042 (patch) | |
tree | 4518b52c6a22e33c4b467588a2843c9d5f1a9ee6 /src/backends/cl | |
parent | 94412aff782472be54dce4328e2ecee0225b3e97 (diff) | |
download | armnn-2b4d88e34ac1f965417fd236fd4786f26bae2042.tar.gz |
IVGCVSW-2503 Refactor RefElementwiseWorkload around Equal and Greater
* Remove Equal and Greater from RefElementwiseWorkload
* Create RefComparisonWorkload and add Equal and Greater
* Update ElementwiseFunction for different input/output types
* Update TfParser to create Equal/Greater with Boolean output
* Update relevant tests to check for Boolean comparison
Change-Id: I299b7f2121769c960ac0c6139764a5f3c89c9c32
Diffstat (limited to 'src/backends/cl')
-rw-r--r-- | src/backends/cl/ClLayerSupport.cpp | 16 | ||||
-rw-r--r-- | src/backends/cl/ClWorkloadFactory.cpp | 3 |
2 files changed, 13 insertions, 6 deletions
diff --git a/src/backends/cl/ClLayerSupport.cpp b/src/backends/cl/ClLayerSupport.cpp index 3e35f9d52d..410cb04288 100644 --- a/src/backends/cl/ClLayerSupport.cpp +++ b/src/backends/cl/ClLayerSupport.cpp @@ -122,6 +122,7 @@ bool IsSupportedForDataTypeCl(Optional<std::string&> reasonIfUnsupported, floatFuncPtr, uint8FuncPtr, &FalseFunc<>, + &FalseFunc<>, std::forward<Params>(params)...); } @@ -267,7 +268,8 @@ bool ClLayerSupport::IsFloorSupported(const TensorInfo& input, &FalseFuncF16<>, &TrueFunc<>, &FalseFuncU8<>, - &FalseFuncI32<>); + &FalseFuncI32<>, + &FalseFuncU8<>); } bool ClLayerSupport::IsFullyConnectedSupported(const TensorInfo& input, @@ -453,10 +455,14 @@ bool ClLayerSupport::IsNormalizationSupported(const TensorInfo& input, bool ClLayerSupport::IsOutputSupported(const TensorInfo& output, Optional<std::string&> reasonIfUnsupported) const { - return IsSupportedForDataTypeCl(reasonIfUnsupported, - output.GetDataType(), - &TrueFunc<>, - &TrueFunc<>); + return IsClBackendSupported(reasonIfUnsupported) && + IsSupportedForDataTypeGeneric(reasonIfUnsupported, + output.GetDataType(), + &TrueFunc<>, + &TrueFunc<>, + &TrueFunc<>, + &FalseFuncI32<>, + &TrueFunc<>); } bool ClLayerSupport::IsPadSupported(const TensorInfo& input, diff --git a/src/backends/cl/ClWorkloadFactory.cpp b/src/backends/cl/ClWorkloadFactory.cpp index 71c1b89c09..7a53257af1 100644 --- a/src/backends/cl/ClWorkloadFactory.cpp +++ b/src/backends/cl/ClWorkloadFactory.cpp @@ -126,7 +126,8 @@ std::unique_ptr<IWorkload> ClWorkloadFactory::CreateInput(const InputQueueDescri std::unique_ptr<IWorkload> ClWorkloadFactory::CreateOutput(const OutputQueueDescriptor& descriptor, const WorkloadInfo& info) const { - return MakeWorkload<CopyMemGenericWorkload, CopyMemGenericWorkload>(descriptor, info); + return MakeWorkloadHelper<CopyMemGenericWorkload, CopyMemGenericWorkload, CopyMemGenericWorkload, NullWorkload, + CopyMemGenericWorkload>(descriptor, info); } std::unique_ptr<IWorkload> ClWorkloadFactory::CreateActivation(const ActivationQueueDescriptor& descriptor, |