// // Copyright © 2017 Arm Ltd and Contributors. All rights reserved. // SPDX-License-Identifier: MIT // #pragma once #include "ClBaseWorkload.hpp" #include #include #include #include namespace armnn { arm_compute::Status ClQuantizedLstmWorkloadValidate(const TensorInfo& input, const TensorInfo& previousCellStateIn, const TensorInfo& previousOutputIn, const TensorInfo& cellStateOut, const TensorInfo& output, const QuantizedLstmInputParamsInfo& paramsInfo); class ClQuantizedLstmWorkload : public ClBaseWorkload { public: ClQuantizedLstmWorkload(const QuantizedLstmQueueDescriptor& descriptor, const WorkloadInfo& info, const arm_compute::CLCompileContext& clCompileContext); void Execute() const override; private: mutable arm_compute::CLLSTMLayerQuantized m_QuantizedLstmLayer; std::unique_ptr m_InputToInputWeightsTensor; std::unique_ptr m_InputToForgetWeightsTensor; std::unique_ptr m_InputToCellWeightsTensor; std::unique_ptr m_InputToOutputWeightsTensor; std::unique_ptr m_RecurrentToInputWeightsTensor; std::unique_ptr m_RecurrentToForgetWeightsTensor; std::unique_ptr m_RecurrentToCellWeightsTensor; std::unique_ptr m_RecurrentToOutputWeightsTensor; std::unique_ptr m_InputGateBiasTensor; std::unique_ptr m_ForgetGateBiasTensor; std::unique_ptr m_CellBiasTensor; std::unique_ptr m_OutputGateBiasTensor; void FreeUnusedTensors(); }; } //namespace armnn