blob: 78b74847a4080e2600f2ac1f8673ea27b5e2e381 [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 Dukhan56b10cd2020-05-18 09:35:49 -070038DECLARE_F32_CONV_HWC_UKERNEL_FUNCTION(xnn_f32_conv_hwc_ukernel_3x3s2p1c3x4__neon_2x1)
39DECLARE_F32_CONV_HWC_UKERNEL_FUNCTION(xnn_f32_conv_hwc_ukernel_3x3s2p1c3x8__neon_2x1)
Marat Dukhance7a3f82020-05-17 21:46:44 -070040DECLARE_F32_CONV_HWC_UKERNEL_FUNCTION(xnn_f32_conv_hwc_ukernel_3x3s2p1c3x4__neon_2x2)
41DECLARE_F32_CONV_HWC_UKERNEL_FUNCTION(xnn_f32_conv_hwc_ukernel_3x3s2p1c3x8__neon_2x2)
XNNPACK Teamb455b122019-09-27 18:10:33 -070042DECLARE_F32_CONV_HWC_UKERNEL_FUNCTION(xnn_f32_conv_hwc_ukernel_3x3s2p1c3x4__neonfma_2x2)
Marat Dukhance7a3f82020-05-17 21:46:44 -070043DECLARE_F32_CONV_HWC_UKERNEL_FUNCTION(xnn_f32_conv_hwc_ukernel_3x3s2p1c3x8__neonfma_2x2)
Marat Dukhan56b10cd2020-05-18 09:35:49 -070044DECLARE_F32_CONV_HWC_UKERNEL_FUNCTION(xnn_f32_conv_hwc_ukernel_3x3s2p1c3x4__neonfma_2x1)
45DECLARE_F32_CONV_HWC_UKERNEL_FUNCTION(xnn_f32_conv_hwc_ukernel_3x3s2p1c3x8__neonfma_2x1)
Marat Dukhan6b7dfae2019-12-04 16:00:52 -080046DECLARE_F32_CONV_HWC_UKERNEL_FUNCTION(xnn_f32_conv_hwc_ukernel_3x3s2p1c3x4__scalar_1x1)
XNNPACK Teamb455b122019-09-27 18:10:33 -070047
Marat Dukhan56b10cd2020-05-18 09:35:49 -070048DECLARE_F32_CONV_HWC_UKERNEL_FUNCTION(xnn_f32_conv_hwc_ukernel_3x3s2p0p1c3x4__neon_2x1)
49DECLARE_F32_CONV_HWC_UKERNEL_FUNCTION(xnn_f32_conv_hwc_ukernel_3x3s2p0p1c3x8__neon_2x1)
Marat Dukhance7a3f82020-05-17 21:46:44 -070050DECLARE_F32_CONV_HWC_UKERNEL_FUNCTION(xnn_f32_conv_hwc_ukernel_3x3s2p0p1c3x4__neon_2x2)
51DECLARE_F32_CONV_HWC_UKERNEL_FUNCTION(xnn_f32_conv_hwc_ukernel_3x3s2p0p1c3x8__neon_2x2)
52DECLARE_F32_CONV_HWC_UKERNEL_FUNCTION(xnn_f32_conv_hwc_ukernel_3x3s2p0p1c3x4__neonfma_2x2)
53DECLARE_F32_CONV_HWC_UKERNEL_FUNCTION(xnn_f32_conv_hwc_ukernel_3x3s2p0p1c3x8__neonfma_2x2)
Marat Dukhan56b10cd2020-05-18 09:35:49 -070054DECLARE_F32_CONV_HWC_UKERNEL_FUNCTION(xnn_f32_conv_hwc_ukernel_3x3s2p0p1c3x4__neonfma_2x1)
55DECLARE_F32_CONV_HWC_UKERNEL_FUNCTION(xnn_f32_conv_hwc_ukernel_3x3s2p0p1c3x8__neonfma_2x1)
Marat Dukhance7a3f82020-05-17 21:46:44 -070056DECLARE_F32_CONV_HWC_UKERNEL_FUNCTION(xnn_f32_conv_hwc_ukernel_3x3s2p0p1c3x4__scalar_1x1)
57
XNNPACK Teamb455b122019-09-27 18:10:33 -070058
Marat Dukhan1f29b802020-05-15 23:46:39 -070059#define DECLARE_F32_CONV_HWC2CHW_UKERNEL_FUNCTION(fn_name) \
XNNPACK Teamb455b122019-09-27 18:10:33 -070060 XNN_INTERNAL void fn_name( \
61 size_t input_height, \
62 size_t input_width, \
63 size_t output_y_start, \
64 size_t output_y_end, \
65 const float* input, \
66 const float* zero, \
67 const float* weights, \
68 float* output, \
69 size_t input_padding_top, \
70 size_t output_channels, \
71 size_t output_height_stride, \
72 size_t output_channel_stride, \
Marat Dukhaneb09a6b2020-04-08 17:34:32 -070073 const union xnn_f32_minmax_params* params);
XNNPACK Teamb455b122019-09-27 18:10:33 -070074
Marat Dukhan1f29b802020-05-15 23:46:39 -070075DECLARE_F32_CONV_HWC2CHW_UKERNEL_FUNCTION(xnn_f32_conv_hwc2chw_ukernel_3x3s2p1c3x4__neonfma_2x2)
76DECLARE_F32_CONV_HWC2CHW_UKERNEL_FUNCTION(xnn_f32_conv_hwc2chw_ukernel_3x3s2p1c3x4__scalar_1x1)
XNNPACK Teamb455b122019-09-27 18:10:33 -070077
78
79#ifdef __cplusplus
Marat Dukhan80fc9322019-09-29 21:06:36 -070080} // extern "C"
XNNPACK Teamb455b122019-09-27 18:10:33 -070081#endif