1 | // Copyright 2022 Google LLC |
2 | // |
3 | // This source code is licensed under the BSD-style license found in the |
4 | // LICENSE file in the root directory of this source tree. |
5 | |
6 | #pragma once |
7 | |
8 | #include <cstdint> |
9 | #include <cstddef> |
10 | #include <vector> |
11 | |
12 | namespace xnnpack { |
13 | void compute_convolution_qs8_reference_results( |
14 | size_t batch_size, |
15 | size_t output_height, |
16 | size_t output_width, |
17 | size_t input_height, |
18 | size_t input_width, |
19 | size_t input_padding_top, |
20 | size_t input_padding_right, |
21 | size_t input_padding_bottom, |
22 | size_t input_padding_left, |
23 | size_t kernel_height, |
24 | size_t kernel_width, |
25 | size_t subsampling_height, |
26 | size_t subsampling_width, |
27 | size_t dilation_height, |
28 | size_t dilation_width, |
29 | size_t groups, |
30 | size_t group_input_channels, |
31 | size_t group_output_channels, |
32 | size_t input_channel_stride, |
33 | int8_t input_zero_point, |
34 | const std::vector<int8_t>& input, |
35 | const std::vector<int8_t>& filter, |
36 | std::vector<int32_t>& accumulators, |
37 | bool has_bias, |
38 | const std::vector<int32_t>& bias); |
39 | |
40 | void compute_convolution_qs8_reference_results( |
41 | size_t batch_size, |
42 | size_t output_height, |
43 | size_t output_width, |
44 | size_t input_height, |
45 | size_t input_width, |
46 | size_t input_padding_top, |
47 | size_t input_padding_right, |
48 | size_t input_padding_bottom, |
49 | size_t input_padding_left, |
50 | size_t kernel_height, |
51 | size_t kernel_width, |
52 | size_t subsampling_height, |
53 | size_t subsampling_width, |
54 | size_t dilation_height, |
55 | size_t dilation_width, |
56 | size_t groups, |
57 | size_t group_input_channels, |
58 | size_t group_output_channels, |
59 | int8_t input_zero_point, |
60 | const std::vector<int8_t>& input, |
61 | const std::vector<int8_t>& filter, |
62 | std::vector<int32_t>& accumulators, |
63 | bool has_bias, |
64 | const std::vector<int32_t>& bias); |
65 | |
66 | void compute_convolution_qu8_reference_results( |
67 | size_t batch_size, |
68 | size_t output_height, |
69 | size_t output_width, |
70 | size_t input_height, |
71 | size_t input_width, |
72 | size_t input_padding_top, |
73 | size_t input_padding_right, |
74 | size_t input_padding_bottom, |
75 | size_t input_padding_left, |
76 | size_t kernel_height, |
77 | size_t kernel_width, |
78 | size_t subsampling_height, |
79 | size_t subsampling_width, |
80 | size_t dilation_height, |
81 | size_t dilation_width, |
82 | size_t groups, |
83 | size_t group_input_channels, |
84 | size_t group_output_channels, |
85 | uint8_t input_zero_point, |
86 | uint8_t kernel_zero_point, |
87 | const std::vector<uint8_t>& input, |
88 | const std::vector<uint8_t>& filter, |
89 | std::vector<int32_t>& accumulators, |
90 | bool has_bias, |
91 | const std::vector<int32_t>& bias); |
92 | |
93 | void compute_convolution_qu8_reference_results( |
94 | size_t batch_size, |
95 | size_t output_height, |
96 | size_t output_width, |
97 | size_t input_height, |
98 | size_t input_width, |
99 | size_t input_padding_top, |
100 | size_t input_padding_right, |
101 | size_t input_padding_bottom, |
102 | size_t input_padding_left, |
103 | size_t kernel_height, |
104 | size_t kernel_width, |
105 | size_t subsampling_height, |
106 | size_t subsampling_width, |
107 | size_t dilation_height, |
108 | size_t dilation_width, |
109 | size_t groups, |
110 | size_t group_input_channels, |
111 | size_t group_output_channels, |
112 | size_t input_channel_stride, |
113 | uint8_t input_zero_point, |
114 | uint8_t kernel_zero_point, |
115 | const std::vector<uint8_t>& input, |
116 | const std::vector<uint8_t>& filter, |
117 | std::vector<int32_t>& accumulators, |
118 | bool has_bias, |
119 | const std::vector<int32_t>& bias); |
120 | |
121 | void compute_depthwise_convolution_qs8_reference_results( |
122 | size_t batch_size, |
123 | size_t output_height, |
124 | size_t output_width, |
125 | size_t input_height, |
126 | size_t input_width, |
127 | size_t input_padding_top, |
128 | size_t input_padding_right, |
129 | size_t input_padding_bottom, |
130 | size_t input_padding_left, |
131 | size_t kernel_height, |
132 | size_t kernel_width, |
133 | size_t subsampling_height, |
134 | size_t subsampling_width, |
135 | size_t dilation_height, |
136 | size_t dilation_width, |
137 | size_t input_channels, |
138 | size_t depth_multiplier, |
139 | size_t input_channel_stride, |
140 | int8_t input_zero_point, |
141 | const std::vector<int8_t>& input, |
142 | const std::vector<int8_t>& filter, |
143 | std::vector<int32_t>& accumulators, |
144 | bool has_bias, |
145 | const std::vector<int32_t>& bias); |
146 | |
147 | void compute_depthwise_convolution_qs8_reference_results( |
148 | size_t batch_size, |
149 | size_t output_height, |
150 | size_t output_width, |
151 | size_t input_height, |
152 | size_t input_width, |
153 | size_t input_padding_top, |
154 | size_t input_padding_right, |
155 | size_t input_padding_bottom, |
156 | size_t input_padding_left, |
157 | size_t kernel_height, |
158 | size_t kernel_width, |
159 | size_t subsampling_height, |
160 | size_t subsampling_width, |
161 | size_t dilation_height, |
162 | size_t dilation_width, |
163 | size_t input_channels, |
164 | size_t depth_multiplier, |
165 | int8_t input_zero_point, |
166 | const std::vector<int8_t>& input, |
167 | const std::vector<int8_t>& filter, |
168 | std::vector<int32_t>& accumulators, |
169 | bool has_bias, |
170 | const std::vector<int32_t>& bias); |
171 | |
172 | void compute_depthwise_convolution_qu8_reference_results( |
173 | size_t batch_size, |
174 | size_t output_height, |
175 | size_t output_width, |
176 | size_t input_height, |
177 | size_t input_width, |
178 | size_t input_padding_top, |
179 | size_t input_padding_right, |
180 | size_t input_padding_bottom, |
181 | size_t input_padding_left, |
182 | size_t kernel_height, |
183 | size_t kernel_width, |
184 | size_t subsampling_height, |
185 | size_t subsampling_width, |
186 | size_t dilation_height, |
187 | size_t dilation_width, |
188 | size_t input_channels, |
189 | size_t depth_multiplier, |
190 | size_t input_channel_stride, |
191 | uint8_t input_zero_point, |
192 | uint8_t kernel_zero_point, |
193 | const std::vector<uint8_t>& input, |
194 | const std::vector<uint8_t>& filter, |
195 | std::vector<int32_t>& accumulators, |
196 | bool has_bias, |
197 | const std::vector<int32_t>& bias); |
198 | |
199 | void compute_depthwise_convolution_qu8_reference_results( |
200 | size_t batch_size, |
201 | size_t output_height, |
202 | size_t output_width, |
203 | size_t input_height, |
204 | size_t input_width, |
205 | size_t input_padding_top, |
206 | size_t input_padding_right, |
207 | size_t input_padding_bottom, |
208 | size_t input_padding_left, |
209 | size_t kernel_height, |
210 | size_t kernel_width, |
211 | size_t subsampling_height, |
212 | size_t subsampling_width, |
213 | size_t dilation_height, |
214 | size_t dilation_width, |
215 | size_t input_channels, |
216 | size_t depth_multiplier, |
217 | uint8_t input_zero_point, |
218 | uint8_t kernel_zero_point, |
219 | const std::vector<uint8_t>& input, |
220 | const std::vector<uint8_t>& filter, |
221 | std::vector<int32_t>& accumulators, |
222 | bool has_bias, |
223 | const std::vector<int32_t>& bias); |
224 | } // namespace xnnpack |
225 | |