From 06d1efd05a55f40867d68f9583053a40b9a0b55c Mon Sep 17 00:00:00 2001 From: Sheri Zhang Date: Wed, 28 Jul 2021 11:20:04 +0100 Subject: Port CLConvolutionLayer Resolves: COMPMID-4508 Signed-off-by: Sheri Zhang Change-Id: Ifcb6d8ab290655dc8f47a067f23324cf227736f1 Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/6015 Reviewed-by: Michele Di Giorgio Comments-Addressed: Arm Jenkins Tested-by: Arm Jenkins --- .../runtime/CL/functions/CLConvolutionLayer.h | 23 ++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) (limited to 'arm_compute/runtime/CL/functions/CLConvolutionLayer.h') diff --git a/arm_compute/runtime/CL/functions/CLConvolutionLayer.h b/arm_compute/runtime/CL/functions/CLConvolutionLayer.h index 6884754d83..12b3ca1fd2 100644 --- a/arm_compute/runtime/CL/functions/CLConvolutionLayer.h +++ b/arm_compute/runtime/CL/functions/CLConvolutionLayer.h @@ -24,10 +24,9 @@ #ifndef ARM_COMPUTE_CLCONVOLUTIONLAYER_H #define ARM_COMPUTE_CLCONVOLUTIONLAYER_H -#include "arm_compute/runtime/CL/functions/CLDirectConvolutionLayer.h" -#include "arm_compute/runtime/CL/functions/CLFFTConvolutionLayer.h" -#include "arm_compute/runtime/CL/functions/CLGEMMConvolutionLayer.h" -#include "arm_compute/runtime/CL/functions/CLWinogradConvolutionLayer.h" +#include "arm_compute/runtime/CL/CLTensor.h" +#include "arm_compute/core/CL/CLCompileContext.h" +#include "arm_compute/core/Types.h" #include "arm_compute/runtime/IFunction.h" #include "arm_compute/runtime/IMemoryManager.h" @@ -35,11 +34,15 @@ namespace arm_compute { +class CLCompileContext; +class ICLTensor; +class ITensorInfo; + /** Basic function to compute the convolution layer. This function calls the following OpenCL kernels/functions: * - * -# @ref CLGEMMConvolutionLayer - * -# @ref CLWinogradConvolutionLayer - * -# @ref CLDirectConvolutionLayer + * -# @ref opencl::ClGemmConvolution + * -# @ref opencl::ClWinogradConv2d + * -# @ref opencl::ClDirectConv2d * -# @ref CLFFTConvolutionLayer * * The function selects one of the algorithms mentioned above based on: @@ -182,7 +185,7 @@ public: * @param[in] enable_fast_math (Optional) Enable fast math computation. In case this flag were set, the function could dispatch the fastest implementation * available which may introduce a drop of accuracy as well. Default is false * - * @return a status + * @return the Convolution Method Hint */ static ConvolutionMethod get_convolution_method(const ITensorInfo *input, const ITensorInfo *weights, const ITensorInfo *output, const PadStrideInfo &conv_info, const WeightsInfo &weights_info, const ActivationLayerInfo &act_info, const GPUTarget gpu_target, const Size2D &dilation = Size2D(1U, 1U), bool enable_fast_math = false); @@ -191,8 +194,8 @@ public: void prepare() override; private: - std::shared_ptr _memory_manager; - std::unique_ptr _function; + struct Impl; + std::unique_ptr _impl; }; } #endif /* ARM_COMPUTE_CLCONVOLUTIONLAYER_H */ -- cgit v1.2.1