// // Copyright © 2017 Arm Ltd and Contributors. All rights reserved. // SPDX-License-Identifier: MIT // #pragma once #include "NeonBaseWorkload.hpp" #include #include #include #include namespace armnn { arm_compute::Status NeonConvolution2dWorkloadValidate(const TensorInfo& input, const TensorInfo& output, const Convolution2dDescriptor& descriptor, const TensorInfo& weights, const Optional& biases, bool isFastMathEnabled = false, const ActivationDescriptor* activationDescriptor = nullptr); class NeonConvolution2dWorkload : public NeonBaseWorkload { public: using BaseWorkload::m_Data; NeonConvolution2dWorkload(const Convolution2dQueueDescriptor& descriptor, const WorkloadInfo& info, std::shared_ptr& memoryManager, const bool isFastMathENabled = false); void Execute() const override; arm_compute::ConvolutionMethod GetConvolutionMethod() const; private: std::unique_ptr m_ConvolutionLayer; std::unique_ptr m_KernelTensor; std::unique_ptr m_BiasTensor; arm_compute::ConvolutionMethod m_ConvolutionMethod; void FreeUnusedTensors(); }; } //namespace armnn