24 #ifndef SRC_CORE_NEON_KERNELS_POOLING_LIST_H 25 #define SRC_CORE_NEON_KERNELS_POOLING_LIST_H 37 #define DECLARE_POOLING_KERNEL(func_name) \ 38 void func_name(const ITensor *src0, ITensor *dst0, ITensor *dst1, PoolingLayerInfo &, const Window &window_src, const Window &window) 45 #if defined(ENABLE_NCHW_KERNELS) 47 #if defined(__ARM_FEATURE_FP16_VECTOR_ARITHMETIC) && defined(ENABLE_FP16_KERNELS) 59 #undef DECLARE_POOLING_KERNEL 70 const int pad_horiz = pad_left + pad_right;
71 const int pad_vert = pad_top + pad_bottom;
75 const uint32_t offset_base = padded_offset
76 -
sizeof(T) * pad_horiz *
id.y() * pool_stride_y
78 -
sizeof(T) * pad_horiz * info.
tensor_shape()[1] *
id.
z() - pad_vert * in_stride_y *
id.z()
79 - in_stride_w *
id[3];
85 const uint32_t offset_base = padded_offset
86 -
sizeof(T) * pad_horiz *
id.y() * pool_stride_x
88 -
sizeof(T) * pad_horiz * info.
tensor_shape()[1] *
id.
z() * pool_stride_y
89 - in_stride_w *
id[3];
97 #endif // SRC_CORE_NEON_KERNELS_POOLING_LIST_H unsigned int top
top of the border
void poolingMxN_qasymm8_neon_nhwc(const ITensor *src0, ITensor *dst0, ITensor *dst1, PoolingLayerInfo &, const Window &window_src, const Window &window)
void poolingMxN_fp32_neon_nhwc(const ITensor *src, ITensor *dst0, ITensor *dst1, PoolingLayerInfo &pool_info, const Window &window_src, const Window &window)
const DataLayout data_layout
Store the tensor's metadata.
unsigned int bottom
bottom of the border
#define DECLARE_POOLING_KERNEL(func_name)
Copyright (c) 2017-2021 Arm Limited.
virtual const TensorShape & tensor_shape() const =0
Size for each dimension of the tensor.
T z() const
Alias to access the size of the third dimension.
void poolingMxN_fp16_neon_nhwc(const ITensor *src0, ITensor *dst0, ITensor *dst1, PoolingLayerInfo &, const Window &window_src, const Window &window)
virtual PaddingSize padding() const =0
Padding of tensor.
unsigned int left
left of the border
unsigned int right
right of the border
Num samples, channels, height, width.
ScaleKernelInfo info(interpolation_policy, default_border_mode, PixelValue(), sampling_policy, false)
void poolingMxN_qasymm8_signed_neon_nhwc(const ITensor *src0, ITensor *dst0, ITensor *dst1, PoolingLayerInfo &, const Window &window_src, const Window &window)
uint32_t offset_no_padding(uint32_t padded_offset, const Coordinates &id, const ITensorInfo &info, int pool_stride_x, int pool_stride_y, DataLayout data_layout)
T y() const
Alias to access the size of the second dimension.
Includes all wrapper headers at once.
virtual const Strides & strides_in_bytes() const =0
The strides in bytes for accessing each dimension of the tensor.
DataLayout
[DataLayout enum definition]