Integrate improved pooling layer on NEON
authorMichele Di Giorgio <michele.digiorgio@arm.com>
Tue, 27 Oct 2020 10:56:31 +0000 (10:56 +0000)
committerMichele Di Giorgio <michele.digiorgio@arm.com>
Wed, 20 Jan 2021 16:39:53 +0000 (16:39 +0000)
commitd556d7bafe6ad943f4aca0f5285ada7b8ce497f7
tree11c7077daf97b46c47a4eac821830b37a7ce9e76
parent7d61ff041826782d14e67b7f5b7a2864905ff38b
Integrate improved pooling layer on NEON

Resolves COMPMID-4035

Change-Id: I559f8c4208fba9193dfe5012f03ddaf26c746215
Signed-off-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4855
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
104 files changed:
Android.bp
SConscript
arm_compute/runtime/NEON/functions/NEPoolingLayer.h
scripts/check_bad_style.sh
scripts/clang_tidy_rules.py
src/core/NEON/kernels/arm_conv/pooling/kernels/a64_fp16_nhwc_avg_3x3_s1_output2x2_depthfirst.hpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/a64_fp16_nhwc_avg_3x3_s1_output2x2_depthfirst/generic.cpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/a64_fp16_nhwc_avg_generic_depthfirst.hpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/a64_fp16_nhwc_avg_generic_depthfirst/generic.cpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/a64_fp16_nhwc_max_2x2_s1_output2x2_depthfirst.hpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/a64_fp16_nhwc_max_2x2_s1_output2x2_depthfirst/generic.cpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/a64_fp16_nhwc_max_generic_depthfirst.hpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/a64_fp16_nhwc_max_generic_depthfirst/generic.cpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/a64_fp32_nhwc_avg_3x3_s1_output2x2_depthfirst.hpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/a64_fp32_nhwc_avg_3x3_s1_output2x2_depthfirst/generic.cpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/a64_fp32_nhwc_avg_generic_depthfirst.hpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/a64_fp32_nhwc_avg_generic_depthfirst/generic.cpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/a64_fp32_nhwc_max_2x2_s1_output2x2_depthfirst.hpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/a64_fp32_nhwc_max_2x2_s1_output2x2_depthfirst/generic.cpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/a64_fp32_nhwc_max_generic_depthfirst.hpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/a64_fp32_nhwc_max_generic_depthfirst/generic.cpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/a64_s8_nhwc_avg_generic_depthfirst.hpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/a64_s8_nhwc_avg_generic_depthfirst/generic.cpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/a64_s8_nhwc_max_2x2_s1_output2x2_depthfirst.hpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/a64_s8_nhwc_max_2x2_s1_output2x2_depthfirst/generic.cpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/a64_s8_nhwc_max_generic_depthfirst.hpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/a64_s8_nhwc_max_generic_depthfirst/generic.cpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/a64_s8q_nhwc_avg_generic_depthfirst.hpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/a64_s8q_nhwc_avg_generic_depthfirst/generic.cpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/a64_s8q_nhwc_max_generic_depthfirst.hpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/a64_s8q_nhwc_max_generic_depthfirst/generic.cpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/a64_u8_nhwc_avg_generic_depthfirst.hpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/a64_u8_nhwc_avg_generic_depthfirst/generic.cpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/a64_u8_nhwc_max_2x2_s1_output2x2_depthfirst.hpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/a64_u8_nhwc_max_2x2_s1_output2x2_depthfirst/generic.cpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/a64_u8_nhwc_max_generic_depthfirst.hpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/a64_u8_nhwc_max_generic_depthfirst/generic.cpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/a64_u8q_nhwc_avg_generic_depthfirst.hpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/a64_u8q_nhwc_avg_generic_depthfirst/generic.cpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/a64_u8q_nhwc_max_generic_depthfirst.hpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/a64_u8q_nhwc_max_generic_depthfirst/generic.cpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/cpp_nhwc_1x1_stride_any_depthfirst.hpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/cpp_nhwc_1x1_stride_any_depthfirst/generic.cpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/sve_fp16_nhwc_avg_3x3_s1_output2x2_depthfirst.hpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/sve_fp16_nhwc_avg_3x3_s1_output2x2_depthfirst/generic.cpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/sve_fp16_nhwc_avg_generic_depthfirst.hpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/sve_fp16_nhwc_avg_generic_depthfirst/generic.cpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/sve_fp16_nhwc_max_2x2_s1_output2x2_depthfirst.hpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/sve_fp16_nhwc_max_2x2_s1_output2x2_depthfirst/generic.cpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/sve_fp16_nhwc_max_generic_depthfirst.hpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/sve_fp16_nhwc_max_generic_depthfirst/generic.cpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/sve_fp32_nhwc_avg_3x3_s1_output2x2_depthfirst.hpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/sve_fp32_nhwc_avg_3x3_s1_output2x2_depthfirst/generic.cpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/sve_fp32_nhwc_avg_generic_depthfirst.hpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/sve_fp32_nhwc_avg_generic_depthfirst/generic.cpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/sve_fp32_nhwc_max_2x2_s1_output2x2_depthfirst.hpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/sve_fp32_nhwc_max_2x2_s1_output2x2_depthfirst/generic.cpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/sve_fp32_nhwc_max_generic_depthfirst.hpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/sve_fp32_nhwc_max_generic_depthfirst/generic.cpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/sve_s8_nhwc_avg_generic_depthfirst.hpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/sve_s8_nhwc_avg_generic_depthfirst/generic.cpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/sve_s8_nhwc_max_2x2_s1_output2x2_depthfirst.hpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/sve_s8_nhwc_max_2x2_s1_output2x2_depthfirst/generic.cpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/sve_s8_nhwc_max_generic_depthfirst.hpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/sve_s8_nhwc_max_generic_depthfirst/generic.cpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/sve_s8q_nhwc_avg_generic_depthfirst.hpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/sve_s8q_nhwc_avg_generic_depthfirst/generic.cpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/sve_s8q_nhwc_max_generic_depthfirst.hpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/sve_s8q_nhwc_max_generic_depthfirst/generic.cpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/sve_u8_nhwc_avg_generic_depthfirst.hpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/sve_u8_nhwc_avg_generic_depthfirst/generic.cpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/sve_u8_nhwc_max_2x2_s1_output2x2_depthfirst.hpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/sve_u8_nhwc_max_2x2_s1_output2x2_depthfirst/generic.cpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/sve_u8_nhwc_max_generic_depthfirst.hpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/sve_u8_nhwc_max_generic_depthfirst/generic.cpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/sve_u8q_nhwc_avg_generic_depthfirst.hpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/sve_u8q_nhwc_avg_generic_depthfirst/generic.cpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/sve_u8q_nhwc_max_generic_depthfirst.hpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/kernels/sve_u8q_nhwc_max_generic_depthfirst/generic.cpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/pooling_depthfirst.hpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/pooling_depthfirst_cache_oblivious.hpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/pooling_depthfirst_generic.hpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/pooling_depthfirst_generic_quantized.hpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/pooling_fp16.cpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/pooling_fp32.cpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/pooling_implementation.hpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/pooling_s8.cpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/pooling_s8q.cpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/pooling_u8.cpp [new file with mode: 0644]
src/core/NEON/kernels/arm_conv/pooling/pooling_u8q.cpp [new file with mode: 0644]
src/core/NEON/kernels/assembly/NEPoolingAssemblyWrapperKernel.cpp [new file with mode: 0644]
src/core/NEON/kernels/assembly/NEPoolingAssemblyWrapperKernel.h [new file with mode: 0644]
src/core/NEON/kernels/assembly/arm_gemm_local.hpp
src/core/NEON/kernels/assembly/pool_common.hpp [new file with mode: 0644]
src/core/NEON/kernels/assembly/pooling.hpp [new file with mode: 0644]
src/core/NEON/kernels/convolution/winograd/winograd_layer.hpp
src/runtime/NEON/INEOperator.cpp
src/runtime/NEON/functions/NEPoolingAssemblyDispatch.cpp [new file with mode: 0644]
src/runtime/NEON/functions/NEPoolingAssemblyDispatch.h [new file with mode: 0644]
src/runtime/NEON/functions/NEPoolingLayer.cpp
tests/datasets/ShapeDatasets.h
tests/validation/CL/PoolingLayer.cpp
tests/validation/NEON/PoolingLayer.cpp
tests/validation/fixtures/PoolingLayerFixture.h