SHL 2.2.x
Loading...
Searching...
No Matches
shl_i805.h
1/*
2 * Copyright (C) 2016-2023 T-Head Semiconductor Co., Ltd. All rights reserved.
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 *
6 * Licensed under the Apache License, Version 2.0 (the License); you may
7 * not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
9 *
10 * www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an AS IS BASIS, WITHOUT
14 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
17 */
18
19/* SHL version 2.2.x */
20
21#ifndef INCLUDE_SHL_I805_H_
22#define INCLUDE_SHL_I805_H_
23
24#include <stdbool.h>
25#include <stdint.h>
26#include <stdlib.h>
27#include <string.h>
28
29#include "csi_nn.h"
30#include "shl_ref.h"
31
32int shl_i805_conv2d_init_q7(struct csinn_tensor *input, struct csinn_tensor *output,
33 struct csinn_tensor *kernel, struct csinn_tensor *bias,
34 struct csinn_conv2d_params *params);
35
36int shl_i805_conv2d_init_q15(struct csinn_tensor *input, struct csinn_tensor *output,
37 struct csinn_tensor *kernel, struct csinn_tensor *bias,
38 struct csinn_conv2d_params *params);
39
40int shl_i805_depthwise_conv2d_init_q7(struct csinn_tensor *input, struct csinn_tensor *output,
41 struct csinn_tensor *kernel, struct csinn_tensor *bias,
42 struct csinn_conv2d_params *params);
43
44int shl_i805_avgpool2d_init_q7(struct csinn_tensor *input, struct csinn_tensor *output,
45 struct csinn_pool_params *params);
46
47int shl_i805_maxpool2d_init_q7(struct csinn_tensor *input, struct csinn_tensor *output,
48 struct csinn_pool_params *params);
49
50int shl_i805_fullyconnected_q7(struct csinn_tensor *input, struct csinn_tensor *output,
51 struct csinn_tensor *weights, struct csinn_tensor *bias,
52 struct csinn_fc_params *params);
53
54int shl_i805_fullyconnected_q15(struct csinn_tensor *input, struct csinn_tensor *output,
55 struct csinn_tensor *weights, struct csinn_tensor *bias,
56 struct csinn_fc_params *params);
57
58int shl_i805_softmax_q7(struct csinn_tensor *input, struct csinn_tensor *output,
59 struct csinn_softmax_params *params);
60
61int shl_i805_softmax_q15(struct csinn_tensor *input, struct csinn_tensor *output,
62 struct csinn_softmax_params *params);
63
64int shl_i805_relu_q7(struct csinn_tensor *input, struct csinn_tensor *output,
65 struct csinn_relu_params *params);
66
67int shl_i805_relu_q15(struct csinn_tensor *input, struct csinn_tensor *output,
68 struct csinn_relu_params *params);
69
70int shl_i805_sigmoid_q7(struct csinn_tensor *input, struct csinn_tensor *output,
71 struct csinn_sigmoid_params *params);
72
73int shl_i805_sigmoid_q15(struct csinn_tensor *input, struct csinn_tensor *output,
74 struct csinn_sigmoid_params *params);
75
76int shl_i805_tanh_q7(struct csinn_tensor *input, struct csinn_tensor *output,
77 struct csinn_siso_params *params);
78
79int shl_i805_tanh_q15(struct csinn_tensor *input, struct csinn_tensor *output,
80 struct csinn_siso_params *params);
81
82/*********************** u8 asym quant opt func *********************************/
83
84int shl_i805_add_init_u8(struct csinn_tensor *input0, struct csinn_tensor *input1,
85 struct csinn_tensor *output, struct csinn_diso_params *params);
86
87int shl_i805_add_u8(struct csinn_tensor *input0, struct csinn_tensor *input1,
88 struct csinn_tensor *output, struct csinn_diso_params *params);
89
90int shl_i805_clip_init_u8(struct csinn_tensor *input, struct csinn_tensor *output,
91 struct csinn_clip_params *params);
92
93int shl_i805_clip_u8(struct csinn_tensor *input, struct csinn_tensor *output,
94 struct csinn_clip_params *params);
95
96int shl_i805_conv2d_init_u8(struct csinn_tensor *input, struct csinn_tensor *output,
97 struct csinn_tensor *kernel, struct csinn_tensor *bias,
98 struct csinn_conv2d_params *params);
99
100int shl_i805_conv2d_u8(struct csinn_tensor *input, struct csinn_tensor *output,
101 struct csinn_tensor *kernel, struct csinn_tensor *bias,
102 struct csinn_conv2d_params *params);
103
104int shl_i805_depthwise_conv2d_init_u8(struct csinn_tensor *input, struct csinn_tensor *output,
105 struct csinn_tensor *kernel, struct csinn_tensor *bias,
106 struct csinn_conv2d_params *params);
107
108int shl_i805_depthwise_conv2d_u8(struct csinn_tensor *input, struct csinn_tensor *output,
109 struct csinn_tensor *kernel, struct csinn_tensor *bias,
110 struct csinn_conv2d_params *params);
111
112int shl_i805_fullyconnected_init_u8(struct csinn_tensor *input, struct csinn_tensor *output,
113 struct csinn_tensor *weights, struct csinn_tensor *bias,
114 struct csinn_fc_params *params);
115
116int shl_i805_fullyconnected_u8(struct csinn_tensor *input, struct csinn_tensor *output,
117 struct csinn_tensor *weights, struct csinn_tensor *bias,
118 struct csinn_fc_params *params);
119
120int shl_i805_maxpool2d_u8(struct csinn_tensor *input, struct csinn_tensor *output,
121 struct csinn_pool_params *params);
122
123int shl_i805_mul_init_u8(struct csinn_tensor *input0, struct csinn_tensor *input1,
124 struct csinn_tensor *output, struct csinn_diso_params *params);
125
126int shl_i805_mul_u8(struct csinn_tensor *input0, struct csinn_tensor *input1,
127 struct csinn_tensor *output, struct csinn_diso_params *params);
128
129int shl_i805_relu_init_u8(struct csinn_tensor *input, struct csinn_tensor *output,
130 struct csinn_relu_params *params);
131
132int shl_i805_relu_u8(struct csinn_tensor *input, struct csinn_tensor *output,
133 struct csinn_relu_params *params);
134
135int shl_i805_relu6_init_u8(struct csinn_tensor *input, struct csinn_tensor *output,
136 struct csinn_relu_params *params);
137
138int shl_i805_relu6_u8(struct csinn_tensor *input, struct csinn_tensor *output,
139 struct csinn_relu_params *params);
140
141int shl_i805_reshape_u8(struct csinn_tensor *input, struct csinn_tensor *output,
142 struct csinn_reshape_params *params);
143
144#endif // INCLUDE_SHL_I805_H_
Definition: csinn_data_structure.h:1081
Definition: csinn_data_structure.h:553
Definition: csinn_data_structure.h:753
Definition: csinn_data_structure.h:596
Definition: csinn_data_structure.h:605
Definition: csinn_data_structure.h:676
Definition: csinn_data_structure.h:825
Definition: csinn_data_structure.h:671
Definition: csinn_data_structure.h:661
Definition: csinn_data_structure.h:692
Definition: csinn_data_structure.h:475