From 8eb82d235f605cd07220107588dde54c704f61a6 Mon Sep 17 00:00:00 2001 From: Viet-Hoa Do Date: Wed, 21 Jun 2023 10:39:48 +0100 Subject: Fix CPU depthwise convolution in case of large padding * Avoid the assembly kernels to be used when the padding is greater than the kernel shape. Resolves: COMPMID-6280 Signed-off-by: Viet-Hoa Do Change-Id: Ibe0820018c97f4481bf318397b797ec7b351a1d5 Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/9802 Benchmark: Arm Jenkins Tested-by: Arm Jenkins Reviewed-by: Jakub Sujak Comments-Addressed: Arm Jenkins --- .../internal/CpuDepthwiseConv2dAssemblyWrapperKernel.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/cpu/kernels') diff --git a/src/cpu/kernels/internal/CpuDepthwiseConv2dAssemblyWrapperKernel.cpp b/src/cpu/kernels/internal/CpuDepthwiseConv2dAssemblyWrapperKernel.cpp index 5360abf5ac..8cda5c6afd 100644 --- a/src/cpu/kernels/internal/CpuDepthwiseConv2dAssemblyWrapperKernel.cpp +++ b/src/cpu/kernels/internal/CpuDepthwiseConv2dAssemblyWrapperKernel.cpp @@ -303,6 +303,16 @@ Status CpuDepthwiseConv2dAssemblyWrapperKernel::validate(const ITensorInfo *src, ARM_COMPUTE_RETURN_ERROR_ON_MISMATCHING_DIMENSIONS(dst->tensor_shape(), dst_shape); ARM_COMPUTE_RETURN_ERROR_ON_MISMATCHING_DATA_TYPES(src, dst); } + + // Assembly kernels cannot work with padding greater than the kernel. + const auto &padding = info.pad_stride_info; + const auto &wei_shape = weights->tensor_shape(); + + ARM_COMPUTE_RETURN_ERROR_ON( + padding.pad_top() >= wei_shape[2] || padding.pad_bottom() >= wei_shape[2] || + padding.pad_left() >= wei_shape[1] || padding.pad_right() >= wei_shape[1] + ); + return Status{}; } -- cgit v1.2.1