| #ifndef CAFFE2_OPERATORS_POOL_OP_UTIL_H_ |
| #define CAFFE2_OPERATORS_POOL_OP_UTIL_H_ |
| |
| #include "caffe2/core/types.h" |
| #include "caffe2/utils/cpu_neon.h" |
| |
| namespace caffe2 { |
| namespace pool_op_util { |
| |
| bool IsNeon4x4p0s0Eligible( |
| int input_h, |
| int input_w, |
| int output_h, |
| int output_w, |
| int kh, |
| int kw, |
| int stride_h, |
| int stride_w, |
| int pad_t, |
| int pad_l, |
| int pad_b, |
| int pad_r, |
| int dilation_h, |
| int dilation_w, |
| const float* X, |
| float* Y); |
| |
| bool IsNeon2x2p0s0Eligible( |
| int input_h, |
| int input_w, |
| int output_h, |
| int output_w, |
| int kh, |
| int kw, |
| int stride_h, |
| int stride_w, |
| int pad_t, |
| int pad_l, |
| int pad_b, |
| int pad_r, |
| int dilation_h, |
| int dilation_w, |
| const float* X, |
| float* Y); |
| |
| void RunNeonAveragePool4x4p0s0NCHW( |
| int N, |
| int C, |
| int H, |
| int W, |
| const float* X, |
| float* Y); |
| |
| void RunNeonMaxPool2x2p0s0NCHW( |
| int N, |
| int C, |
| int H, |
| int W, |
| const float* X, |
| float* Y); |
| |
| } // namespace pool_op_util |
| } // namespace caffe2 |
| |
| #endif // CAFFE2_OPERATORS_POOL_OP_UTIL_H_ |