blob: 43b0cf9ebdf9402a6aeaf95e98bded5c16f7d3c8 [file] [log] [blame]
XNNPACK Teamb455b122019-09-27 18:10:33 -07001// Copyright (c) Facebook, Inc. and its affiliates.
2// All rights reserved.
3//
4// Copyright 2019 Google LLC
5//
6// This source code is licensed under the BSD-style license found in the
7// LICENSE file in the root directory of this source tree.
8
9#pragma once
10
11#include <stddef.h>
12#include <stdint.h>
13
14#include <xnnpack/params.h>
15#include <xnnpack/common.h>
16
17#ifdef __cplusplus
18extern "C" {
19#endif
20
21
22#define DECLARE_F32_CONV_HWC_UKERNEL_FUNCTION(fn_name) \
23 XNN_INTERNAL void fn_name( \
24 size_t input_height, \
25 size_t input_width, \
26 size_t output_y_start, \
27 size_t output_y_end, \
28 const float* input, \
29 const float* zero, \
30 const float* weights, \
31 float* output, \
32 size_t input_padding_top, \
33 size_t output_channels, \
34 size_t output_height_stride, \
35 size_t output_width_stride, \
Marat Dukhaneb09a6b2020-04-08 17:34:32 -070036 const union xnn_f32_minmax_params* params);
XNNPACK Teamb455b122019-09-27 18:10:33 -070037
Marat Dukhan7e4ca402020-05-15 18:50:12 -070038DECLARE_F32_CONV_HWC_UKERNEL_FUNCTION(xnn_f32_conv_hwc_ukernel_3x3s2p0p1c3x8__neonfma_2x2)
XNNPACK Teamb455b122019-09-27 18:10:33 -070039DECLARE_F32_CONV_HWC_UKERNEL_FUNCTION(xnn_f32_conv_hwc_ukernel_3x3s2p1c3x8__neonfma_2x2)
Marat Dukhan7e4ca402020-05-15 18:50:12 -070040DECLARE_F32_CONV_HWC_UKERNEL_FUNCTION(xnn_f32_conv_hwc_ukernel_3x3s2p0p1c3x4__neonfma_2x2)
XNNPACK Teamb455b122019-09-27 18:10:33 -070041DECLARE_F32_CONV_HWC_UKERNEL_FUNCTION(xnn_f32_conv_hwc_ukernel_3x3s2p1c3x4__neonfma_2x2)
Marat Dukhan441e2212019-12-04 18:30:49 -080042DECLARE_F32_CONV_HWC_UKERNEL_FUNCTION(xnn_f32_conv_hwc_ukernel_3x3s2p0p1c3x4__scalar_1x1)
Marat Dukhan6b7dfae2019-12-04 16:00:52 -080043DECLARE_F32_CONV_HWC_UKERNEL_FUNCTION(xnn_f32_conv_hwc_ukernel_3x3s2p1c3x4__scalar_1x1)
XNNPACK Teamb455b122019-09-27 18:10:33 -070044
45
Marat Dukhan1f29b802020-05-15 23:46:39 -070046#define DECLARE_F32_CONV_HWC2CHW_UKERNEL_FUNCTION(fn_name) \
XNNPACK Teamb455b122019-09-27 18:10:33 -070047 XNN_INTERNAL void fn_name( \
48 size_t input_height, \
49 size_t input_width, \
50 size_t output_y_start, \
51 size_t output_y_end, \
52 const float* input, \
53 const float* zero, \
54 const float* weights, \
55 float* output, \
56 size_t input_padding_top, \
57 size_t output_channels, \
58 size_t output_height_stride, \
59 size_t output_channel_stride, \
Marat Dukhaneb09a6b2020-04-08 17:34:32 -070060 const union xnn_f32_minmax_params* params);
XNNPACK Teamb455b122019-09-27 18:10:33 -070061
Marat Dukhan1f29b802020-05-15 23:46:39 -070062DECLARE_F32_CONV_HWC2CHW_UKERNEL_FUNCTION(xnn_f32_conv_hwc2chw_ukernel_3x3s2p1c3x4__neonfma_2x2)
63DECLARE_F32_CONV_HWC2CHW_UKERNEL_FUNCTION(xnn_f32_conv_hwc2chw_ukernel_3x3s2p1c3x4__scalar_1x1)
XNNPACK Teamb455b122019-09-27 18:10:33 -070064
65
66#ifdef __cplusplus
Marat Dukhan80fc9322019-09-29 21:06:36 -070067} // extern "C"
XNNPACK Teamb455b122019-09-27 18:10:33 -070068#endif