From c9e519d2ea4780297d71e68cccc5de9c7bb7c0b4 Mon Sep 17 00:00:00 2001 From: alerah01 Date: Mon, 31 Jan 2022 19:04:10 +0200 Subject: Decouple CpuDirectConv2dKernel Resolves COMPMID-4626 Exclude SVE & SVE2 paths from android.bp NDK version does not support these extensions. Change-Id: I49b147d2a84819975d3225f2920106fa1a0d742f Signed-off-by: alerah01 Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/7136 Comments-Addressed: Arm Jenkins Tested-by: Arm Jenkins Reviewed-by: Giorgio Arena --- src/cpu/kernels/CpuDirectConv2dKernel.h | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'src/cpu/kernels/CpuDirectConv2dKernel.h') diff --git a/src/cpu/kernels/CpuDirectConv2dKernel.h b/src/cpu/kernels/CpuDirectConv2dKernel.h index 6ec4d4ee04..b9265dc630 100644 --- a/src/cpu/kernels/CpuDirectConv2dKernel.h +++ b/src/cpu/kernels/CpuDirectConv2dKernel.h @@ -36,6 +36,9 @@ namespace kernels /** Interface for the kernel to perform Direct Convolution Layer. */ class CpuDirectConv2dKernel : public ICpuKernel { +private: + using DirectConv2dKernel_Ptr = std::add_pointer::type; + public: CpuDirectConv2dKernel() = default; ARM_COMPUTE_DISALLOW_COPY_ALLOW_MOVE(CpuDirectConv2dKernel); @@ -67,19 +70,16 @@ public: void run_op(ITensorPack &tensors, const Window &window, const ThreadInfo &info) override; const char *name() const override; -private: - /* Template function for optimized convolution NHWC */ - template - void convolve_nhwc_optimized(const Window &window, const ITensor *src, const ITensor *weights, ITensor *dst); + struct DirectConv2dKernel + { + const char *name; + const DataTypeDataLayoutSelectorPtr is_selected; + DirectConv2dKernel_Ptr ukernel; + }; - /* Template function for convolution NHWC */ - template - void convolve_nhwc(const Window &window, const ITensor *src, const ITensor *weights, ITensor *dst); - - /* Template function for convolution NCHW */ - template - void convolve_nchw(const Window &window, const ITensor *src, const ITensor *weights, ITensor *dst); + static const std::vector &get_available_kernels(); +private: PadStrideInfo _conv_info{}; unsigned int _kernel_size{ 0 }; DataLayout _data_layout{ DataLayout::UNKNOWN }; -- cgit v1.2.1