diff options
author | Jan Eilers <jan.eilers@arm.com> | 2019-07-08 09:57:55 +0100 |
---|---|---|
committer | Jan Eilers <jan.eilers@arm.com> | 2019-07-10 09:15:04 +0000 |
commit | ad5293a86e315049de36afd723dcd1a7e70681a7 (patch) | |
tree | b9003cd1fba00c267a971d899284b3fcbd5ce6f5 /src/backends/neon/NeonLayerSupport.cpp | |
parent | 8b797a84f1e8f9d1d5d064afbc4fc12c21b8ffed (diff) | |
download | armnn-ad5293a86e315049de36afd723dcd1a7e70681a7.tar.gz |
IVGCVSW-3337 Add Neon backend support for LSTM layer normalisation
* Update neon lstm workload
* Add unit tests
* Add isLstmSupported
Change-Id: I493c159137f6544b0f2532d16d4fafd7a7e587e5
Signed-off-by: Jan Eilers <jan.eilers@arm.com>
Diffstat (limited to 'src/backends/neon/NeonLayerSupport.cpp')
-rw-r--r-- | src/backends/neon/NeonLayerSupport.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/backends/neon/NeonLayerSupport.cpp b/src/backends/neon/NeonLayerSupport.cpp index 4fee53f51f..ea875f6926 100644 --- a/src/backends/neon/NeonLayerSupport.cpp +++ b/src/backends/neon/NeonLayerSupport.cpp @@ -26,6 +26,7 @@ #include "workloads/NeonDequantizeWorkload.hpp" #include "workloads/NeonGreaterWorkload.hpp" #include "workloads/NeonL2NormalizationFloatWorkload.hpp" +#include "workloads/NeonLstmFloatWorkload.hpp" #include "workloads/NeonMaximumWorkload.hpp" #include "workloads/NeonMeanWorkload.hpp" #include "workloads/NeonConcatWorkload.hpp" @@ -334,6 +335,30 @@ bool NeonLayerSupport::IsL2NormalizationSupported(const TensorInfo& input, FORWARD_WORKLOAD_VALIDATE_FUNC(NeonL2NormalizationWorkloadValidate, reasonIfUnsupported, input, output, descriptor); } +bool NeonLayerSupport::IsLstmSupported(const TensorInfo& input, + const TensorInfo& outputStateIn, + const TensorInfo& cellStateIn, + const TensorInfo& scratchBuffer, + const TensorInfo& outputStateOut, + const TensorInfo& cellStateOut, + const TensorInfo& output, + const LstmDescriptor& descriptor, + const LstmInputParamsInfo& paramsInfo, + Optional<std::string&> reasonIfUnsupported) const +{ + FORWARD_WORKLOAD_VALIDATE_FUNC(NeonLstmFloatWorkloadValidate, + reasonIfUnsupported, + input, + outputStateIn, + cellStateIn, + scratchBuffer, + outputStateOut, + cellStateOut, + output, + descriptor, + paramsInfo); +} + bool NeonLayerSupport::IsMaximumSupported(const TensorInfo& input0, const TensorInfo& input1, const TensorInfo& output, |