1 // Copyright 2020 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 #include <xnnpack.h>
7
8 #include <array>
9 #include <algorithm>
10 #include <functional>
11 #include <iostream>
12 #include <limits>
13 #include <random>
14
15 #include <xnnpack/cache.h>
16
17 #include "models/models.h"
18
19 namespace models {
20
QS8MobileNetV2(pthreadpool_t threadpool)21 ExecutionPlan QS8MobileNetV2(pthreadpool_t threadpool) {
22 alignas(16) static std::array<int8_t, 150528 + XNN_EXTRA_BYTES / sizeof(int8_t)> v0;
23 alignas(16) static std::array<int8_t, 401408> v1;
24 alignas(16) static std::array<int8_t, 401408> v2;
25 alignas(16) static std::array<int8_t, 200704> v3;
26 alignas(16) static std::array<int8_t, 1204224> v4;
27 alignas(16) static std::array<int8_t, 301056> v5;
28 alignas(16) static std::array<int8_t, 75264> v6;
29 alignas(16) static std::array<int8_t, 451584> v7;
30 alignas(16) static std::array<int8_t, 451584> v8;
31 alignas(16) static std::array<int8_t, 75264> v9;
32 alignas(16) static std::array<int8_t, 75264> v10;
33 alignas(16) static std::array<int8_t, 451584> v11;
34 alignas(16) static std::array<int8_t, 112896> v12;
35 alignas(16) static std::array<int8_t, 25088> v13;
36 alignas(16) static std::array<int8_t, 150528> v14;
37 alignas(16) static std::array<int8_t, 150528> v15;
38 alignas(16) static std::array<int8_t, 25088> v16;
39 alignas(16) static std::array<int8_t, 25088> v17;
40 alignas(16) static std::array<int8_t, 150528> v18;
41 alignas(16) static std::array<int8_t, 150528> v19;
42 alignas(16) static std::array<int8_t, 25088> v20;
43 alignas(16) static std::array<int8_t, 25088> v21;
44 alignas(16) static std::array<int8_t, 150528> v22;
45 alignas(16) static std::array<int8_t, 37632> v23;
46 alignas(16) static std::array<int8_t, 12544> v24;
47 alignas(16) static std::array<int8_t, 75264> v25;
48 alignas(16) static std::array<int8_t, 75264> v26;
49 alignas(16) static std::array<int8_t, 12544> v27;
50 alignas(16) static std::array<int8_t, 12544> v28;
51 alignas(16) static std::array<int8_t, 75264> v29;
52 alignas(16) static std::array<int8_t, 75264> v30;
53 alignas(16) static std::array<int8_t, 12544> v31;
54 alignas(16) static std::array<int8_t, 12544> v32;
55 alignas(16) static std::array<int8_t, 75264> v33;
56 alignas(16) static std::array<int8_t, 75264> v34;
57 alignas(16) static std::array<int8_t, 12544> v35;
58 alignas(16) static std::array<int8_t, 12544> v36;
59 alignas(16) static std::array<int8_t, 75264> v37;
60 alignas(16) static std::array<int8_t, 75264> v38;
61 alignas(16) static std::array<int8_t, 18816> v39;
62 alignas(16) static std::array<int8_t, 112896> v40;
63 alignas(16) static std::array<int8_t, 112896> v41;
64 alignas(16) static std::array<int8_t, 18816> v42;
65 alignas(16) static std::array<int8_t, 18816> v43;
66 alignas(16) static std::array<int8_t, 112896> v44;
67 alignas(16) static std::array<int8_t, 112896> v45;
68 alignas(16) static std::array<int8_t, 18816> v46;
69 alignas(16) static std::array<int8_t, 18816> v47;
70 alignas(16) static std::array<int8_t, 112896> v48;
71 alignas(16) static std::array<int8_t, 28224> v49;
72 alignas(16) static std::array<int8_t, 7840> v50;
73 alignas(16) static std::array<int8_t, 47040> v51;
74 alignas(16) static std::array<int8_t, 47040> v52;
75 alignas(16) static std::array<int8_t, 7840> v53;
76 alignas(16) static std::array<int8_t, 7840> v54;
77 alignas(16) static std::array<int8_t, 47040> v55;
78 alignas(16) static std::array<int8_t, 47040> v56;
79 alignas(16) static std::array<int8_t, 7840> v57;
80 alignas(16) static std::array<int8_t, 7840> v58;
81 alignas(16) static std::array<int8_t, 47040> v59;
82 alignas(16) static std::array<int8_t, 47040> v60;
83 alignas(16) static std::array<int8_t, 15680> v61;
84 alignas(16) static std::array<int8_t, 62720> v62;
85 alignas(16) static std::array<int8_t, 1280> v63;
86 alignas(16) static std::array<int8_t, 1001> v64;
87 alignas(16) static std::array<int8_t, 864> w65;
88 alignas(16) static std::array<int32_t, 32> w66;
89 alignas(16) static std::array<int8_t, 288> w67;
90 alignas(16) static std::array<int32_t, 32> w68;
91 alignas(16) static std::array<int8_t, 512> w69;
92 alignas(16) static std::array<int32_t, 16> w70;
93 alignas(16) static std::array<int8_t, 1536> w71;
94 alignas(16) static std::array<int32_t, 96> w72;
95 alignas(16) static std::array<int8_t, 864> w73;
96 alignas(16) static std::array<int32_t, 96> w74;
97 alignas(16) static std::array<int8_t, 2304> w75;
98 alignas(16) static std::array<int32_t, 24> w76;
99 alignas(16) static std::array<int8_t, 3456> w77;
100 alignas(16) static std::array<int32_t, 144> w78;
101 alignas(16) static std::array<int8_t, 1296> w79;
102 alignas(16) static std::array<int32_t, 144> w80;
103 alignas(16) static std::array<int8_t, 3456> w81;
104 alignas(16) static std::array<int32_t, 24> w82;
105 alignas(16) static std::array<int8_t, 3456> w83;
106 alignas(16) static std::array<int32_t, 144> w84;
107 alignas(16) static std::array<int8_t, 1296> w85;
108 alignas(16) static std::array<int32_t, 144> w86;
109 alignas(16) static std::array<int8_t, 4608> w87;
110 alignas(16) static std::array<int32_t, 32> w88;
111 alignas(16) static std::array<int8_t, 6144> w89;
112 alignas(16) static std::array<int32_t, 192> w90;
113 alignas(16) static std::array<int8_t, 1728> w91;
114 alignas(16) static std::array<int32_t, 192> w92;
115 alignas(16) static std::array<int8_t, 6144> w93;
116 alignas(16) static std::array<int32_t, 32> w94;
117 alignas(16) static std::array<int8_t, 6144> w95;
118 alignas(16) static std::array<int32_t, 192> w96;
119 alignas(16) static std::array<int8_t, 1728> w97;
120 alignas(16) static std::array<int32_t, 192> w98;
121 alignas(16) static std::array<int8_t, 6144> w99;
122 alignas(16) static std::array<int32_t, 32> w100;
123 alignas(16) static std::array<int8_t, 6144> w101;
124 alignas(16) static std::array<int32_t, 192> w102;
125 alignas(16) static std::array<int8_t, 1728> w103;
126 alignas(16) static std::array<int32_t, 192> w104;
127 alignas(16) static std::array<int8_t, 12288> w105;
128 alignas(16) static std::array<int32_t, 64> w106;
129 alignas(16) static std::array<int8_t, 24576> w107;
130 alignas(16) static std::array<int32_t, 384> w108;
131 alignas(16) static std::array<int8_t, 3456> w109;
132 alignas(16) static std::array<int32_t, 384> w110;
133 alignas(16) static std::array<int8_t, 24576> w111;
134 alignas(16) static std::array<int32_t, 64> w112;
135 alignas(16) static std::array<int8_t, 24576> w113;
136 alignas(16) static std::array<int32_t, 384> w114;
137 alignas(16) static std::array<int8_t, 3456> w115;
138 alignas(16) static std::array<int32_t, 384> w116;
139 alignas(16) static std::array<int8_t, 24576> w117;
140 alignas(16) static std::array<int32_t, 64> w118;
141 alignas(16) static std::array<int8_t, 24576> w119;
142 alignas(16) static std::array<int32_t, 384> w120;
143 alignas(16) static std::array<int8_t, 3456> w121;
144 alignas(16) static std::array<int32_t, 384> w122;
145 alignas(16) static std::array<int8_t, 24576> w123;
146 alignas(16) static std::array<int32_t, 64> w124;
147 alignas(16) static std::array<int8_t, 24576> w125;
148 alignas(16) static std::array<int32_t, 384> w126;
149 alignas(16) static std::array<int8_t, 3456> w127;
150 alignas(16) static std::array<int32_t, 384> w128;
151 alignas(16) static std::array<int8_t, 36864> w129;
152 alignas(16) static std::array<int32_t, 96> w130;
153 alignas(16) static std::array<int8_t, 55296> w131;
154 alignas(16) static std::array<int32_t, 576> w132;
155 alignas(16) static std::array<int8_t, 5184> w133;
156 alignas(16) static std::array<int32_t, 576> w134;
157 alignas(16) static std::array<int8_t, 55296> w135;
158 alignas(16) static std::array<int32_t, 96> w136;
159 alignas(16) static std::array<int8_t, 55296> w137;
160 alignas(16) static std::array<int32_t, 576> w138;
161 alignas(16) static std::array<int8_t, 5184> w139;
162 alignas(16) static std::array<int32_t, 576> w140;
163 alignas(16) static std::array<int8_t, 55296> w141;
164 alignas(16) static std::array<int32_t, 96> w142;
165 alignas(16) static std::array<int8_t, 55296> w143;
166 alignas(16) static std::array<int32_t, 576> w144;
167 alignas(16) static std::array<int8_t, 5184> w145;
168 alignas(16) static std::array<int32_t, 576> w146;
169 alignas(16) static std::array<int8_t, 92160> w147;
170 alignas(16) static std::array<int32_t, 160> w148;
171 alignas(16) static std::array<int8_t, 153600> w149;
172 alignas(16) static std::array<int32_t, 960> w150;
173 alignas(16) static std::array<int8_t, 8640> w151;
174 alignas(16) static std::array<int32_t, 960> w152;
175 alignas(16) static std::array<int8_t, 153600> w153;
176 alignas(16) static std::array<int32_t, 160> w154;
177 alignas(16) static std::array<int8_t, 153600> w155;
178 alignas(16) static std::array<int32_t, 960> w156;
179 alignas(16) static std::array<int8_t, 8640> w157;
180 alignas(16) static std::array<int32_t, 960> w158;
181 alignas(16) static std::array<int8_t, 153600> w159;
182 alignas(16) static std::array<int32_t, 160> w160;
183 alignas(16) static std::array<int8_t, 153600> w161;
184 alignas(16) static std::array<int32_t, 960> w162;
185 alignas(16) static std::array<int8_t, 8640> w163;
186 alignas(16) static std::array<int32_t, 960> w164;
187 alignas(16) static std::array<int8_t, 307200> w165;
188 alignas(16) static std::array<int32_t, 320> w166;
189 alignas(16) static std::array<int8_t, 409600> w167;
190 alignas(16) static std::array<int32_t, 1280> w168;
191 alignas(16) static std::array<int8_t, 1281280> w169;
192 alignas(16) static std::array<int32_t, 1001> w170;
193
194 std::random_device random_device;
195 auto rng = std::mt19937(random_device());
196 auto i8rng = std::bind(std::uniform_int_distribution<int32_t>(-127, 127), std::ref(rng));
197 auto i32rng = std::bind(std::uniform_int_distribution<int32_t>(-10000, 10000), std::ref(rng));
198 std::generate(v0.begin(), v0.end(), std::ref(i8rng));
199 std::generate(v1.begin(), v1.end(), std::ref(i8rng));
200 std::generate(v2.begin(), v2.end(), std::ref(i8rng));
201 std::generate(v3.begin(), v3.end(), std::ref(i8rng));
202 std::generate(v4.begin(), v4.end(), std::ref(i8rng));
203 std::generate(v5.begin(), v5.end(), std::ref(i8rng));
204 std::generate(v6.begin(), v6.end(), std::ref(i8rng));
205 std::generate(v7.begin(), v7.end(), std::ref(i8rng));
206 std::generate(v8.begin(), v8.end(), std::ref(i8rng));
207 std::generate(v9.begin(), v9.end(), std::ref(i8rng));
208 std::generate(v10.begin(), v10.end(), std::ref(i8rng));
209 std::generate(v11.begin(), v11.end(), std::ref(i8rng));
210 std::generate(v12.begin(), v12.end(), std::ref(i8rng));
211 std::generate(v13.begin(), v13.end(), std::ref(i8rng));
212 std::generate(v14.begin(), v14.end(), std::ref(i8rng));
213 std::generate(v15.begin(), v15.end(), std::ref(i8rng));
214 std::generate(v16.begin(), v16.end(), std::ref(i8rng));
215 std::generate(v17.begin(), v17.end(), std::ref(i8rng));
216 std::generate(v18.begin(), v18.end(), std::ref(i8rng));
217 std::generate(v19.begin(), v19.end(), std::ref(i8rng));
218 std::generate(v20.begin(), v20.end(), std::ref(i8rng));
219 std::generate(v21.begin(), v21.end(), std::ref(i8rng));
220 std::generate(v22.begin(), v22.end(), std::ref(i8rng));
221 std::generate(v23.begin(), v23.end(), std::ref(i8rng));
222 std::generate(v24.begin(), v24.end(), std::ref(i8rng));
223 std::generate(v25.begin(), v25.end(), std::ref(i8rng));
224 std::generate(v26.begin(), v26.end(), std::ref(i8rng));
225 std::generate(v27.begin(), v27.end(), std::ref(i8rng));
226 std::generate(v28.begin(), v28.end(), std::ref(i8rng));
227 std::generate(v29.begin(), v29.end(), std::ref(i8rng));
228 std::generate(v30.begin(), v30.end(), std::ref(i8rng));
229 std::generate(v31.begin(), v31.end(), std::ref(i8rng));
230 std::generate(v32.begin(), v32.end(), std::ref(i8rng));
231 std::generate(v33.begin(), v33.end(), std::ref(i8rng));
232 std::generate(v34.begin(), v34.end(), std::ref(i8rng));
233 std::generate(v35.begin(), v35.end(), std::ref(i8rng));
234 std::generate(v36.begin(), v36.end(), std::ref(i8rng));
235 std::generate(v37.begin(), v37.end(), std::ref(i8rng));
236 std::generate(v38.begin(), v38.end(), std::ref(i8rng));
237 std::generate(v39.begin(), v39.end(), std::ref(i8rng));
238 std::generate(v40.begin(), v40.end(), std::ref(i8rng));
239 std::generate(v41.begin(), v41.end(), std::ref(i8rng));
240 std::generate(v42.begin(), v42.end(), std::ref(i8rng));
241 std::generate(v43.begin(), v43.end(), std::ref(i8rng));
242 std::generate(v44.begin(), v44.end(), std::ref(i8rng));
243 std::generate(v45.begin(), v45.end(), std::ref(i8rng));
244 std::generate(v46.begin(), v46.end(), std::ref(i8rng));
245 std::generate(v47.begin(), v47.end(), std::ref(i8rng));
246 std::generate(v48.begin(), v48.end(), std::ref(i8rng));
247 std::generate(v49.begin(), v49.end(), std::ref(i8rng));
248 std::generate(v50.begin(), v50.end(), std::ref(i8rng));
249 std::generate(v51.begin(), v51.end(), std::ref(i8rng));
250 std::generate(v52.begin(), v52.end(), std::ref(i8rng));
251 std::generate(v53.begin(), v53.end(), std::ref(i8rng));
252 std::generate(v54.begin(), v54.end(), std::ref(i8rng));
253 std::generate(v55.begin(), v55.end(), std::ref(i8rng));
254 std::generate(v56.begin(), v56.end(), std::ref(i8rng));
255 std::generate(v57.begin(), v57.end(), std::ref(i8rng));
256 std::generate(v58.begin(), v58.end(), std::ref(i8rng));
257 std::generate(v59.begin(), v59.end(), std::ref(i8rng));
258 std::generate(v60.begin(), v60.end(), std::ref(i8rng));
259 std::generate(v61.begin(), v61.end(), std::ref(i8rng));
260 std::generate(v62.begin(), v62.end(), std::ref(i8rng));
261 std::generate(v63.begin(), v63.end(), std::ref(i8rng));
262 std::generate(v64.begin(), v64.end(), std::ref(i8rng));
263 std::generate(w65.begin(), w65.end(), std::ref(i8rng));
264 std::generate(w66.begin(), w66.end(), std::ref(i32rng));
265 std::generate(w67.begin(), w67.end(), std::ref(i8rng));
266 std::generate(w68.begin(), w68.end(), std::ref(i32rng));
267 std::generate(w69.begin(), w69.end(), std::ref(i8rng));
268 std::generate(w70.begin(), w70.end(), std::ref(i32rng));
269 std::generate(w71.begin(), w71.end(), std::ref(i8rng));
270 std::generate(w72.begin(), w72.end(), std::ref(i32rng));
271 std::generate(w73.begin(), w73.end(), std::ref(i8rng));
272 std::generate(w74.begin(), w74.end(), std::ref(i32rng));
273 std::generate(w75.begin(), w75.end(), std::ref(i8rng));
274 std::generate(w76.begin(), w76.end(), std::ref(i32rng));
275 std::generate(w77.begin(), w77.end(), std::ref(i8rng));
276 std::generate(w78.begin(), w78.end(), std::ref(i32rng));
277 std::generate(w79.begin(), w79.end(), std::ref(i8rng));
278 std::generate(w80.begin(), w80.end(), std::ref(i32rng));
279 std::generate(w81.begin(), w81.end(), std::ref(i8rng));
280 std::generate(w82.begin(), w82.end(), std::ref(i32rng));
281 std::generate(w83.begin(), w83.end(), std::ref(i8rng));
282 std::generate(w84.begin(), w84.end(), std::ref(i32rng));
283 std::generate(w85.begin(), w85.end(), std::ref(i8rng));
284 std::generate(w86.begin(), w86.end(), std::ref(i32rng));
285 std::generate(w87.begin(), w87.end(), std::ref(i8rng));
286 std::generate(w88.begin(), w88.end(), std::ref(i32rng));
287 std::generate(w89.begin(), w89.end(), std::ref(i8rng));
288 std::generate(w90.begin(), w90.end(), std::ref(i32rng));
289 std::generate(w91.begin(), w91.end(), std::ref(i8rng));
290 std::generate(w92.begin(), w92.end(), std::ref(i32rng));
291 std::generate(w93.begin(), w93.end(), std::ref(i8rng));
292 std::generate(w94.begin(), w94.end(), std::ref(i32rng));
293 std::generate(w95.begin(), w95.end(), std::ref(i8rng));
294 std::generate(w96.begin(), w96.end(), std::ref(i32rng));
295 std::generate(w97.begin(), w97.end(), std::ref(i8rng));
296 std::generate(w98.begin(), w98.end(), std::ref(i32rng));
297 std::generate(w99.begin(), w99.end(), std::ref(i8rng));
298 std::generate(w100.begin(), w100.end(), std::ref(i32rng));
299 std::generate(w101.begin(), w101.end(), std::ref(i8rng));
300 std::generate(w102.begin(), w102.end(), std::ref(i32rng));
301 std::generate(w103.begin(), w103.end(), std::ref(i8rng));
302 std::generate(w104.begin(), w104.end(), std::ref(i32rng));
303 std::generate(w105.begin(), w105.end(), std::ref(i8rng));
304 std::generate(w106.begin(), w106.end(), std::ref(i32rng));
305 std::generate(w107.begin(), w107.end(), std::ref(i8rng));
306 std::generate(w108.begin(), w108.end(), std::ref(i32rng));
307 std::generate(w109.begin(), w109.end(), std::ref(i8rng));
308 std::generate(w110.begin(), w110.end(), std::ref(i32rng));
309 std::generate(w111.begin(), w111.end(), std::ref(i8rng));
310 std::generate(w112.begin(), w112.end(), std::ref(i32rng));
311 std::generate(w113.begin(), w113.end(), std::ref(i8rng));
312 std::generate(w114.begin(), w114.end(), std::ref(i32rng));
313 std::generate(w115.begin(), w115.end(), std::ref(i8rng));
314 std::generate(w116.begin(), w116.end(), std::ref(i32rng));
315 std::generate(w117.begin(), w117.end(), std::ref(i8rng));
316 std::generate(w118.begin(), w118.end(), std::ref(i32rng));
317 std::generate(w119.begin(), w119.end(), std::ref(i8rng));
318 std::generate(w120.begin(), w120.end(), std::ref(i32rng));
319 std::generate(w121.begin(), w121.end(), std::ref(i8rng));
320 std::generate(w122.begin(), w122.end(), std::ref(i32rng));
321 std::generate(w123.begin(), w123.end(), std::ref(i8rng));
322 std::generate(w124.begin(), w124.end(), std::ref(i32rng));
323 std::generate(w125.begin(), w125.end(), std::ref(i8rng));
324 std::generate(w126.begin(), w126.end(), std::ref(i32rng));
325 std::generate(w127.begin(), w127.end(), std::ref(i8rng));
326 std::generate(w128.begin(), w128.end(), std::ref(i32rng));
327 std::generate(w129.begin(), w129.end(), std::ref(i8rng));
328 std::generate(w130.begin(), w130.end(), std::ref(i32rng));
329 std::generate(w131.begin(), w131.end(), std::ref(i8rng));
330 std::generate(w132.begin(), w132.end(), std::ref(i32rng));
331 std::generate(w133.begin(), w133.end(), std::ref(i8rng));
332 std::generate(w134.begin(), w134.end(), std::ref(i32rng));
333 std::generate(w135.begin(), w135.end(), std::ref(i8rng));
334 std::generate(w136.begin(), w136.end(), std::ref(i32rng));
335 std::generate(w137.begin(), w137.end(), std::ref(i8rng));
336 std::generate(w138.begin(), w138.end(), std::ref(i32rng));
337 std::generate(w139.begin(), w139.end(), std::ref(i8rng));
338 std::generate(w140.begin(), w140.end(), std::ref(i32rng));
339 std::generate(w141.begin(), w141.end(), std::ref(i8rng));
340 std::generate(w142.begin(), w142.end(), std::ref(i32rng));
341 std::generate(w143.begin(), w143.end(), std::ref(i8rng));
342 std::generate(w144.begin(), w144.end(), std::ref(i32rng));
343 std::generate(w145.begin(), w145.end(), std::ref(i8rng));
344 std::generate(w146.begin(), w146.end(), std::ref(i32rng));
345 std::generate(w147.begin(), w147.end(), std::ref(i8rng));
346 std::generate(w148.begin(), w148.end(), std::ref(i32rng));
347 std::generate(w149.begin(), w149.end(), std::ref(i8rng));
348 std::generate(w150.begin(), w150.end(), std::ref(i32rng));
349 std::generate(w151.begin(), w151.end(), std::ref(i8rng));
350 std::generate(w152.begin(), w152.end(), std::ref(i32rng));
351 std::generate(w153.begin(), w153.end(), std::ref(i8rng));
352 std::generate(w154.begin(), w154.end(), std::ref(i32rng));
353 std::generate(w155.begin(), w155.end(), std::ref(i8rng));
354 std::generate(w156.begin(), w156.end(), std::ref(i32rng));
355 std::generate(w157.begin(), w157.end(), std::ref(i8rng));
356 std::generate(w158.begin(), w158.end(), std::ref(i32rng));
357 std::generate(w159.begin(), w159.end(), std::ref(i8rng));
358 std::generate(w160.begin(), w160.end(), std::ref(i32rng));
359 std::generate(w161.begin(), w161.end(), std::ref(i8rng));
360 std::generate(w162.begin(), w162.end(), std::ref(i32rng));
361 std::generate(w163.begin(), w163.end(), std::ref(i8rng));
362 std::generate(w164.begin(), w164.end(), std::ref(i32rng));
363 std::generate(w165.begin(), w165.end(), std::ref(i8rng));
364 std::generate(w166.begin(), w166.end(), std::ref(i32rng));
365 std::generate(w167.begin(), w167.end(), std::ref(i8rng));
366 std::generate(w168.begin(), w168.end(), std::ref(i32rng));
367 std::generate(w169.begin(), w169.end(), std::ref(i8rng));
368 std::generate(w170.begin(), w170.end(), std::ref(i32rng));
369
370 ExecutionPlan operators;
371 xnn_status status;
372 xnn_code_cache code_cache;
373 #if XNN_PLATFORM_JIT
374 xnn_init_code_cache(&code_cache);
375 #endif
376 xnn_caches caches = { 0 };
377 caches.code_cache = &code_cache;
378
379 xnn_operator_t op0 = nullptr;
380 status = xnn_create_convolution2d_nhwc_qs8(
381 0 /* top padding */, 1 /* right padding */,
382 1 /* bottom padding */, 0 /* left padding */,
383 3 /* kernel height */, 3 /* kernel width */,
384 2 /* subsampling height */, 2 /* subsampling width */,
385 1 /* dilation_height */, 1 /* dilation_width */,
386 1 /* groups */,
387 3 /* input channels per group */,
388 32 /* output_channels_per_group */,
389 3 /* input pixel stride */,
390 32 /* output pixel stride */,
391 -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
392 w65.data(), w66.data(),
393 -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
394 0 /* flags */,
395 &caches,
396 &op0);
397 if (status != xnn_status_success) {
398 std::cerr << "failed to create operation #0" << std::endl;
399 return ExecutionPlan();
400 }
401 operators.emplace_back(op0, xnn_delete_operator);
402
403 xnn_operator_t op1 = nullptr;
404 status = xnn_create_convolution2d_nhwc_qs8(
405 1 /* top padding */, 1 /* right padding */,
406 1 /* bottom padding */, 1 /* left padding */,
407 3 /* kernel height */, 3 /* kernel width */,
408 1 /* subsampling height */, 1 /* subsampling width */,
409 1 /* dilation_height */, 1 /* dilation_width */,
410 32 /* groups */,
411 1 /* input channels per group */,
412 1 /* output_channels_per_group */,
413 32 /* input pixel stride */,
414 32 /* output pixel stride */,
415 -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
416 w67.data(), w68.data(),
417 -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
418 0 /* flags */,
419 &caches,
420 &op1);
421 if (status != xnn_status_success) {
422 std::cerr << "failed to create operation #1" << std::endl;
423 return ExecutionPlan();
424 }
425 operators.emplace_back(op1, xnn_delete_operator);
426
427 xnn_operator_t op2 = nullptr;
428 status = xnn_create_convolution2d_nhwc_qs8(
429 0 /* top padding */, 0 /* right padding */,
430 0 /* bottom padding */, 0 /* left padding */,
431 1 /* kernel height */, 1 /* kernel width */,
432 1 /* subsampling height */, 1 /* subsampling width */,
433 1 /* dilation_height */, 1 /* dilation_width */,
434 1 /* groups */,
435 32 /* input channels per group */,
436 16 /* output_channels_per_group */,
437 32 /* input pixel stride */,
438 16 /* output pixel stride */,
439 -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
440 w69.data(), w70.data(),
441 -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
442 0 /* flags */,
443 &caches,
444 &op2);
445 if (status != xnn_status_success) {
446 std::cerr << "failed to create operation #2" << std::endl;
447 return ExecutionPlan();
448 }
449 operators.emplace_back(op2, xnn_delete_operator);
450
451 xnn_operator_t op3 = nullptr;
452 status = xnn_create_convolution2d_nhwc_qs8(
453 0 /* top padding */, 0 /* right padding */,
454 0 /* bottom padding */, 0 /* left padding */,
455 1 /* kernel height */, 1 /* kernel width */,
456 1 /* subsampling height */, 1 /* subsampling width */,
457 1 /* dilation_height */, 1 /* dilation_width */,
458 1 /* groups */,
459 16 /* input channels per group */,
460 96 /* output_channels_per_group */,
461 16 /* input pixel stride */,
462 96 /* output pixel stride */,
463 -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
464 w71.data(), w72.data(),
465 -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
466 0 /* flags */,
467 &caches,
468 &op3);
469 if (status != xnn_status_success) {
470 std::cerr << "failed to create operation #3" << std::endl;
471 return ExecutionPlan();
472 }
473 operators.emplace_back(op3, xnn_delete_operator);
474
475 xnn_operator_t op4 = nullptr;
476 status = xnn_create_convolution2d_nhwc_qs8(
477 0 /* top padding */, 1 /* right padding */,
478 1 /* bottom padding */, 0 /* left padding */,
479 3 /* kernel height */, 3 /* kernel width */,
480 2 /* subsampling height */, 2 /* subsampling width */,
481 1 /* dilation_height */, 1 /* dilation_width */,
482 96 /* groups */,
483 1 /* input channels per group */,
484 1 /* output_channels_per_group */,
485 96 /* input pixel stride */,
486 96 /* output pixel stride */,
487 -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
488 w73.data(), w74.data(),
489 -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
490 0 /* flags */,
491 &caches,
492 &op4);
493 if (status != xnn_status_success) {
494 std::cerr << "failed to create operation #4" << std::endl;
495 return ExecutionPlan();
496 }
497 operators.emplace_back(op4, xnn_delete_operator);
498
499 xnn_operator_t op5 = nullptr;
500 status = xnn_create_convolution2d_nhwc_qs8(
501 0 /* top padding */, 0 /* right padding */,
502 0 /* bottom padding */, 0 /* left padding */,
503 1 /* kernel height */, 1 /* kernel width */,
504 1 /* subsampling height */, 1 /* subsampling width */,
505 1 /* dilation_height */, 1 /* dilation_width */,
506 1 /* groups */,
507 96 /* input channels per group */,
508 24 /* output_channels_per_group */,
509 96 /* input pixel stride */,
510 24 /* output pixel stride */,
511 -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
512 w75.data(), w76.data(),
513 -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
514 0 /* flags */,
515 &caches,
516 &op5);
517 if (status != xnn_status_success) {
518 std::cerr << "failed to create operation #5" << std::endl;
519 return ExecutionPlan();
520 }
521 operators.emplace_back(op5, xnn_delete_operator);
522
523 xnn_operator_t op6 = nullptr;
524 status = xnn_create_convolution2d_nhwc_qs8(
525 0 /* top padding */, 0 /* right padding */,
526 0 /* bottom padding */, 0 /* left padding */,
527 1 /* kernel height */, 1 /* kernel width */,
528 1 /* subsampling height */, 1 /* subsampling width */,
529 1 /* dilation_height */, 1 /* dilation_width */,
530 1 /* groups */,
531 24 /* input channels per group */,
532 144 /* output_channels_per_group */,
533 24 /* input pixel stride */,
534 144 /* output pixel stride */,
535 -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
536 w77.data(), w78.data(),
537 -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
538 0 /* flags */,
539 &caches,
540 &op6);
541 if (status != xnn_status_success) {
542 std::cerr << "failed to create operation #6" << std::endl;
543 return ExecutionPlan();
544 }
545 operators.emplace_back(op6, xnn_delete_operator);
546
547 xnn_operator_t op7 = nullptr;
548 status = xnn_create_convolution2d_nhwc_qs8(
549 1 /* top padding */, 1 /* right padding */,
550 1 /* bottom padding */, 1 /* left padding */,
551 3 /* kernel height */, 3 /* kernel width */,
552 1 /* subsampling height */, 1 /* subsampling width */,
553 1 /* dilation_height */, 1 /* dilation_width */,
554 144 /* groups */,
555 1 /* input channels per group */,
556 1 /* output_channels_per_group */,
557 144 /* input pixel stride */,
558 144 /* output pixel stride */,
559 -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
560 w79.data(), w80.data(),
561 -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
562 0 /* flags */,
563 &caches,
564 &op7);
565 if (status != xnn_status_success) {
566 std::cerr << "failed to create operation #7" << std::endl;
567 return ExecutionPlan();
568 }
569 operators.emplace_back(op7, xnn_delete_operator);
570
571 xnn_operator_t op8 = nullptr;
572 status = xnn_create_convolution2d_nhwc_qs8(
573 0 /* top padding */, 0 /* right padding */,
574 0 /* bottom padding */, 0 /* left padding */,
575 1 /* kernel height */, 1 /* kernel width */,
576 1 /* subsampling height */, 1 /* subsampling width */,
577 1 /* dilation_height */, 1 /* dilation_width */,
578 1 /* groups */,
579 144 /* input channels per group */,
580 24 /* output_channels_per_group */,
581 144 /* input pixel stride */,
582 24 /* output pixel stride */,
583 -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
584 w81.data(), w82.data(),
585 -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
586 0 /* flags */,
587 &caches,
588 &op8);
589 if (status != xnn_status_success) {
590 std::cerr << "failed to create operation #8" << std::endl;
591 return ExecutionPlan();
592 }
593 operators.emplace_back(op8, xnn_delete_operator);
594
595 xnn_operator_t op9 = nullptr;
596 status = xnn_create_add_nd_qs8(
597 -1 /* input1 zero point */, 0.5f /* input1 scale */,
598 -1 /* input2 zero point */, 0.5f /* input2 scale */,
599 -1 /* output zero point */, 1.0f /* output scale */, -126 /* output min */, 126 /* output max */,
600 0 /* flags */,
601 &op9);
602 if (status != xnn_status_success) {
603 std::cerr << "failed to create operation #9" << std::endl;
604 return ExecutionPlan();
605 }
606 operators.emplace_back(op9, xnn_delete_operator);
607
608 xnn_operator_t op10 = nullptr;
609 status = xnn_create_convolution2d_nhwc_qs8(
610 0 /* top padding */, 0 /* right padding */,
611 0 /* bottom padding */, 0 /* left padding */,
612 1 /* kernel height */, 1 /* kernel width */,
613 1 /* subsampling height */, 1 /* subsampling width */,
614 1 /* dilation_height */, 1 /* dilation_width */,
615 1 /* groups */,
616 24 /* input channels per group */,
617 144 /* output_channels_per_group */,
618 24 /* input pixel stride */,
619 144 /* output pixel stride */,
620 -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
621 w83.data(), w84.data(),
622 -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
623 0 /* flags */,
624 &caches,
625 &op10);
626 if (status != xnn_status_success) {
627 std::cerr << "failed to create operation #10" << std::endl;
628 return ExecutionPlan();
629 }
630 operators.emplace_back(op10, xnn_delete_operator);
631
632 xnn_operator_t op11 = nullptr;
633 status = xnn_create_convolution2d_nhwc_qs8(
634 0 /* top padding */, 1 /* right padding */,
635 1 /* bottom padding */, 0 /* left padding */,
636 3 /* kernel height */, 3 /* kernel width */,
637 2 /* subsampling height */, 2 /* subsampling width */,
638 1 /* dilation_height */, 1 /* dilation_width */,
639 144 /* groups */,
640 1 /* input channels per group */,
641 1 /* output_channels_per_group */,
642 144 /* input pixel stride */,
643 144 /* output pixel stride */,
644 -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
645 w85.data(), w86.data(),
646 -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
647 0 /* flags */,
648 &caches,
649 &op11);
650 if (status != xnn_status_success) {
651 std::cerr << "failed to create operation #11" << std::endl;
652 return ExecutionPlan();
653 }
654 operators.emplace_back(op11, xnn_delete_operator);
655
656 xnn_operator_t op12 = nullptr;
657 status = xnn_create_convolution2d_nhwc_qs8(
658 0 /* top padding */, 0 /* right padding */,
659 0 /* bottom padding */, 0 /* left padding */,
660 1 /* kernel height */, 1 /* kernel width */,
661 1 /* subsampling height */, 1 /* subsampling width */,
662 1 /* dilation_height */, 1 /* dilation_width */,
663 1 /* groups */,
664 144 /* input channels per group */,
665 32 /* output_channels_per_group */,
666 144 /* input pixel stride */,
667 32 /* output pixel stride */,
668 -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
669 w87.data(), w88.data(),
670 -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
671 0 /* flags */,
672 &caches,
673 &op12);
674 if (status != xnn_status_success) {
675 std::cerr << "failed to create operation #12" << std::endl;
676 return ExecutionPlan();
677 }
678 operators.emplace_back(op12, xnn_delete_operator);
679
680 xnn_operator_t op13 = nullptr;
681 status = xnn_create_convolution2d_nhwc_qs8(
682 0 /* top padding */, 0 /* right padding */,
683 0 /* bottom padding */, 0 /* left padding */,
684 1 /* kernel height */, 1 /* kernel width */,
685 1 /* subsampling height */, 1 /* subsampling width */,
686 1 /* dilation_height */, 1 /* dilation_width */,
687 1 /* groups */,
688 32 /* input channels per group */,
689 192 /* output_channels_per_group */,
690 32 /* input pixel stride */,
691 192 /* output pixel stride */,
692 -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
693 w89.data(), w90.data(),
694 -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
695 0 /* flags */,
696 &caches,
697 &op13);
698 if (status != xnn_status_success) {
699 std::cerr << "failed to create operation #13" << std::endl;
700 return ExecutionPlan();
701 }
702 operators.emplace_back(op13, xnn_delete_operator);
703
704 xnn_operator_t op14 = nullptr;
705 status = xnn_create_convolution2d_nhwc_qs8(
706 1 /* top padding */, 1 /* right padding */,
707 1 /* bottom padding */, 1 /* left padding */,
708 3 /* kernel height */, 3 /* kernel width */,
709 1 /* subsampling height */, 1 /* subsampling width */,
710 1 /* dilation_height */, 1 /* dilation_width */,
711 192 /* groups */,
712 1 /* input channels per group */,
713 1 /* output_channels_per_group */,
714 192 /* input pixel stride */,
715 192 /* output pixel stride */,
716 -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
717 w91.data(), w92.data(),
718 -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
719 0 /* flags */,
720 &caches,
721 &op14);
722 if (status != xnn_status_success) {
723 std::cerr << "failed to create operation #14" << std::endl;
724 return ExecutionPlan();
725 }
726 operators.emplace_back(op14, xnn_delete_operator);
727
728 xnn_operator_t op15 = nullptr;
729 status = xnn_create_convolution2d_nhwc_qs8(
730 0 /* top padding */, 0 /* right padding */,
731 0 /* bottom padding */, 0 /* left padding */,
732 1 /* kernel height */, 1 /* kernel width */,
733 1 /* subsampling height */, 1 /* subsampling width */,
734 1 /* dilation_height */, 1 /* dilation_width */,
735 1 /* groups */,
736 192 /* input channels per group */,
737 32 /* output_channels_per_group */,
738 192 /* input pixel stride */,
739 32 /* output pixel stride */,
740 -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
741 w93.data(), w94.data(),
742 -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
743 0 /* flags */,
744 &caches,
745 &op15);
746 if (status != xnn_status_success) {
747 std::cerr << "failed to create operation #15" << std::endl;
748 return ExecutionPlan();
749 }
750 operators.emplace_back(op15, xnn_delete_operator);
751
752 xnn_operator_t op16 = nullptr;
753 status = xnn_create_add_nd_qs8(
754 -1 /* input1 zero point */, 0.5f /* input1 scale */,
755 -1 /* input2 zero point */, 0.5f /* input2 scale */,
756 -1 /* output zero point */, 1.0f /* output scale */, -126 /* output min */, 126 /* output max */,
757 0 /* flags */,
758 &op16);
759 if (status != xnn_status_success) {
760 std::cerr << "failed to create operation #16" << std::endl;
761 return ExecutionPlan();
762 }
763 operators.emplace_back(op16, xnn_delete_operator);
764
765 xnn_operator_t op17 = nullptr;
766 status = xnn_create_convolution2d_nhwc_qs8(
767 0 /* top padding */, 0 /* right padding */,
768 0 /* bottom padding */, 0 /* left padding */,
769 1 /* kernel height */, 1 /* kernel width */,
770 1 /* subsampling height */, 1 /* subsampling width */,
771 1 /* dilation_height */, 1 /* dilation_width */,
772 1 /* groups */,
773 32 /* input channels per group */,
774 192 /* output_channels_per_group */,
775 32 /* input pixel stride */,
776 192 /* output pixel stride */,
777 -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
778 w95.data(), w96.data(),
779 -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
780 0 /* flags */,
781 &caches,
782 &op17);
783 if (status != xnn_status_success) {
784 std::cerr << "failed to create operation #17" << std::endl;
785 return ExecutionPlan();
786 }
787 operators.emplace_back(op17, xnn_delete_operator);
788
789 xnn_operator_t op18 = nullptr;
790 status = xnn_create_convolution2d_nhwc_qs8(
791 1 /* top padding */, 1 /* right padding */,
792 1 /* bottom padding */, 1 /* left padding */,
793 3 /* kernel height */, 3 /* kernel width */,
794 1 /* subsampling height */, 1 /* subsampling width */,
795 1 /* dilation_height */, 1 /* dilation_width */,
796 192 /* groups */,
797 1 /* input channels per group */,
798 1 /* output_channels_per_group */,
799 192 /* input pixel stride */,
800 192 /* output pixel stride */,
801 -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
802 w97.data(), w98.data(),
803 -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
804 0 /* flags */,
805 &caches,
806 &op18);
807 if (status != xnn_status_success) {
808 std::cerr << "failed to create operation #18" << std::endl;
809 return ExecutionPlan();
810 }
811 operators.emplace_back(op18, xnn_delete_operator);
812
813 xnn_operator_t op19 = nullptr;
814 status = xnn_create_convolution2d_nhwc_qs8(
815 0 /* top padding */, 0 /* right padding */,
816 0 /* bottom padding */, 0 /* left padding */,
817 1 /* kernel height */, 1 /* kernel width */,
818 1 /* subsampling height */, 1 /* subsampling width */,
819 1 /* dilation_height */, 1 /* dilation_width */,
820 1 /* groups */,
821 192 /* input channels per group */,
822 32 /* output_channels_per_group */,
823 192 /* input pixel stride */,
824 32 /* output pixel stride */,
825 -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
826 w99.data(), w100.data(),
827 -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
828 0 /* flags */,
829 &caches,
830 &op19);
831 if (status != xnn_status_success) {
832 std::cerr << "failed to create operation #19" << std::endl;
833 return ExecutionPlan();
834 }
835 operators.emplace_back(op19, xnn_delete_operator);
836
837 xnn_operator_t op20 = nullptr;
838 status = xnn_create_add_nd_qs8(
839 -1 /* input1 zero point */, 0.5f /* input1 scale */,
840 -1 /* input2 zero point */, 0.5f /* input2 scale */,
841 -1 /* output zero point */, 1.0f /* output scale */, -126 /* output min */, 126 /* output max */,
842 0 /* flags */,
843 &op20);
844 if (status != xnn_status_success) {
845 std::cerr << "failed to create operation #20" << std::endl;
846 return ExecutionPlan();
847 }
848 operators.emplace_back(op20, xnn_delete_operator);
849
850 xnn_operator_t op21 = nullptr;
851 status = xnn_create_convolution2d_nhwc_qs8(
852 0 /* top padding */, 0 /* right padding */,
853 0 /* bottom padding */, 0 /* left padding */,
854 1 /* kernel height */, 1 /* kernel width */,
855 1 /* subsampling height */, 1 /* subsampling width */,
856 1 /* dilation_height */, 1 /* dilation_width */,
857 1 /* groups */,
858 32 /* input channels per group */,
859 192 /* output_channels_per_group */,
860 32 /* input pixel stride */,
861 192 /* output pixel stride */,
862 -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
863 w101.data(), w102.data(),
864 -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
865 0 /* flags */,
866 &caches,
867 &op21);
868 if (status != xnn_status_success) {
869 std::cerr << "failed to create operation #21" << std::endl;
870 return ExecutionPlan();
871 }
872 operators.emplace_back(op21, xnn_delete_operator);
873
874 xnn_operator_t op22 = nullptr;
875 status = xnn_create_convolution2d_nhwc_qs8(
876 0 /* top padding */, 1 /* right padding */,
877 1 /* bottom padding */, 0 /* left padding */,
878 3 /* kernel height */, 3 /* kernel width */,
879 2 /* subsampling height */, 2 /* subsampling width */,
880 1 /* dilation_height */, 1 /* dilation_width */,
881 192 /* groups */,
882 1 /* input channels per group */,
883 1 /* output_channels_per_group */,
884 192 /* input pixel stride */,
885 192 /* output pixel stride */,
886 -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
887 w103.data(), w104.data(),
888 -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
889 0 /* flags */,
890 &caches,
891 &op22);
892 if (status != xnn_status_success) {
893 std::cerr << "failed to create operation #22" << std::endl;
894 return ExecutionPlan();
895 }
896 operators.emplace_back(op22, xnn_delete_operator);
897
898 xnn_operator_t op23 = nullptr;
899 status = xnn_create_convolution2d_nhwc_qs8(
900 0 /* top padding */, 0 /* right padding */,
901 0 /* bottom padding */, 0 /* left padding */,
902 1 /* kernel height */, 1 /* kernel width */,
903 1 /* subsampling height */, 1 /* subsampling width */,
904 1 /* dilation_height */, 1 /* dilation_width */,
905 1 /* groups */,
906 192 /* input channels per group */,
907 64 /* output_channels_per_group */,
908 192 /* input pixel stride */,
909 64 /* output pixel stride */,
910 -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
911 w105.data(), w106.data(),
912 -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
913 0 /* flags */,
914 &caches,
915 &op23);
916 if (status != xnn_status_success) {
917 std::cerr << "failed to create operation #23" << std::endl;
918 return ExecutionPlan();
919 }
920 operators.emplace_back(op23, xnn_delete_operator);
921
922 xnn_operator_t op24 = nullptr;
923 status = xnn_create_convolution2d_nhwc_qs8(
924 0 /* top padding */, 0 /* right padding */,
925 0 /* bottom padding */, 0 /* left padding */,
926 1 /* kernel height */, 1 /* kernel width */,
927 1 /* subsampling height */, 1 /* subsampling width */,
928 1 /* dilation_height */, 1 /* dilation_width */,
929 1 /* groups */,
930 64 /* input channels per group */,
931 384 /* output_channels_per_group */,
932 64 /* input pixel stride */,
933 384 /* output pixel stride */,
934 -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
935 w107.data(), w108.data(),
936 -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
937 0 /* flags */,
938 &caches,
939 &op24);
940 if (status != xnn_status_success) {
941 std::cerr << "failed to create operation #24" << std::endl;
942 return ExecutionPlan();
943 }
944 operators.emplace_back(op24, xnn_delete_operator);
945
946 xnn_operator_t op25 = nullptr;
947 status = xnn_create_convolution2d_nhwc_qs8(
948 1 /* top padding */, 1 /* right padding */,
949 1 /* bottom padding */, 1 /* left padding */,
950 3 /* kernel height */, 3 /* kernel width */,
951 1 /* subsampling height */, 1 /* subsampling width */,
952 1 /* dilation_height */, 1 /* dilation_width */,
953 384 /* groups */,
954 1 /* input channels per group */,
955 1 /* output_channels_per_group */,
956 384 /* input pixel stride */,
957 384 /* output pixel stride */,
958 -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
959 w109.data(), w110.data(),
960 -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
961 0 /* flags */,
962 &caches,
963 &op25);
964 if (status != xnn_status_success) {
965 std::cerr << "failed to create operation #25" << std::endl;
966 return ExecutionPlan();
967 }
968 operators.emplace_back(op25, xnn_delete_operator);
969
970 xnn_operator_t op26 = nullptr;
971 status = xnn_create_convolution2d_nhwc_qs8(
972 0 /* top padding */, 0 /* right padding */,
973 0 /* bottom padding */, 0 /* left padding */,
974 1 /* kernel height */, 1 /* kernel width */,
975 1 /* subsampling height */, 1 /* subsampling width */,
976 1 /* dilation_height */, 1 /* dilation_width */,
977 1 /* groups */,
978 384 /* input channels per group */,
979 64 /* output_channels_per_group */,
980 384 /* input pixel stride */,
981 64 /* output pixel stride */,
982 -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
983 w111.data(), w112.data(),
984 -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
985 0 /* flags */,
986 &caches,
987 &op26);
988 if (status != xnn_status_success) {
989 std::cerr << "failed to create operation #26" << std::endl;
990 return ExecutionPlan();
991 }
992 operators.emplace_back(op26, xnn_delete_operator);
993
994 xnn_operator_t op27 = nullptr;
995 status = xnn_create_add_nd_qs8(
996 -1 /* input1 zero point */, 0.5f /* input1 scale */,
997 -1 /* input2 zero point */, 0.5f /* input2 scale */,
998 -1 /* output zero point */, 1.0f /* output scale */, -126 /* output min */, 126 /* output max */,
999 0 /* flags */,
1000 &op27);
1001 if (status != xnn_status_success) {
1002 std::cerr << "failed to create operation #27" << std::endl;
1003 return ExecutionPlan();
1004 }
1005 operators.emplace_back(op27, xnn_delete_operator);
1006
1007 xnn_operator_t op28 = nullptr;
1008 status = xnn_create_convolution2d_nhwc_qs8(
1009 0 /* top padding */, 0 /* right padding */,
1010 0 /* bottom padding */, 0 /* left padding */,
1011 1 /* kernel height */, 1 /* kernel width */,
1012 1 /* subsampling height */, 1 /* subsampling width */,
1013 1 /* dilation_height */, 1 /* dilation_width */,
1014 1 /* groups */,
1015 64 /* input channels per group */,
1016 384 /* output_channels_per_group */,
1017 64 /* input pixel stride */,
1018 384 /* output pixel stride */,
1019 -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
1020 w113.data(), w114.data(),
1021 -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1022 0 /* flags */,
1023 &caches,
1024 &op28);
1025 if (status != xnn_status_success) {
1026 std::cerr << "failed to create operation #28" << std::endl;
1027 return ExecutionPlan();
1028 }
1029 operators.emplace_back(op28, xnn_delete_operator);
1030
1031 xnn_operator_t op29 = nullptr;
1032 status = xnn_create_convolution2d_nhwc_qs8(
1033 1 /* top padding */, 1 /* right padding */,
1034 1 /* bottom padding */, 1 /* left padding */,
1035 3 /* kernel height */, 3 /* kernel width */,
1036 1 /* subsampling height */, 1 /* subsampling width */,
1037 1 /* dilation_height */, 1 /* dilation_width */,
1038 384 /* groups */,
1039 1 /* input channels per group */,
1040 1 /* output_channels_per_group */,
1041 384 /* input pixel stride */,
1042 384 /* output pixel stride */,
1043 -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
1044 w115.data(), w116.data(),
1045 -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1046 0 /* flags */,
1047 &caches,
1048 &op29);
1049 if (status != xnn_status_success) {
1050 std::cerr << "failed to create operation #29" << std::endl;
1051 return ExecutionPlan();
1052 }
1053 operators.emplace_back(op29, xnn_delete_operator);
1054
1055 xnn_operator_t op30 = nullptr;
1056 status = xnn_create_convolution2d_nhwc_qs8(
1057 0 /* top padding */, 0 /* right padding */,
1058 0 /* bottom padding */, 0 /* left padding */,
1059 1 /* kernel height */, 1 /* kernel width */,
1060 1 /* subsampling height */, 1 /* subsampling width */,
1061 1 /* dilation_height */, 1 /* dilation_width */,
1062 1 /* groups */,
1063 384 /* input channels per group */,
1064 64 /* output_channels_per_group */,
1065 384 /* input pixel stride */,
1066 64 /* output pixel stride */,
1067 -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
1068 w117.data(), w118.data(),
1069 -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1070 0 /* flags */,
1071 &caches,
1072 &op30);
1073 if (status != xnn_status_success) {
1074 std::cerr << "failed to create operation #30" << std::endl;
1075 return ExecutionPlan();
1076 }
1077 operators.emplace_back(op30, xnn_delete_operator);
1078
1079 xnn_operator_t op31 = nullptr;
1080 status = xnn_create_add_nd_qs8(
1081 -1 /* input1 zero point */, 0.5f /* input1 scale */,
1082 -1 /* input2 zero point */, 0.5f /* input2 scale */,
1083 -1 /* output zero point */, 1.0f /* output scale */, -126 /* output min */, 126 /* output max */,
1084 0 /* flags */,
1085 &op31);
1086 if (status != xnn_status_success) {
1087 std::cerr << "failed to create operation #31" << std::endl;
1088 return ExecutionPlan();
1089 }
1090 operators.emplace_back(op31, xnn_delete_operator);
1091
1092 xnn_operator_t op32 = nullptr;
1093 status = xnn_create_convolution2d_nhwc_qs8(
1094 0 /* top padding */, 0 /* right padding */,
1095 0 /* bottom padding */, 0 /* left padding */,
1096 1 /* kernel height */, 1 /* kernel width */,
1097 1 /* subsampling height */, 1 /* subsampling width */,
1098 1 /* dilation_height */, 1 /* dilation_width */,
1099 1 /* groups */,
1100 64 /* input channels per group */,
1101 384 /* output_channels_per_group */,
1102 64 /* input pixel stride */,
1103 384 /* output pixel stride */,
1104 -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
1105 w119.data(), w120.data(),
1106 -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1107 0 /* flags */,
1108 &caches,
1109 &op32);
1110 if (status != xnn_status_success) {
1111 std::cerr << "failed to create operation #32" << std::endl;
1112 return ExecutionPlan();
1113 }
1114 operators.emplace_back(op32, xnn_delete_operator);
1115
1116 xnn_operator_t op33 = nullptr;
1117 status = xnn_create_convolution2d_nhwc_qs8(
1118 1 /* top padding */, 1 /* right padding */,
1119 1 /* bottom padding */, 1 /* left padding */,
1120 3 /* kernel height */, 3 /* kernel width */,
1121 1 /* subsampling height */, 1 /* subsampling width */,
1122 1 /* dilation_height */, 1 /* dilation_width */,
1123 384 /* groups */,
1124 1 /* input channels per group */,
1125 1 /* output_channels_per_group */,
1126 384 /* input pixel stride */,
1127 384 /* output pixel stride */,
1128 -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
1129 w121.data(), w122.data(),
1130 -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1131 0 /* flags */,
1132 &caches,
1133 &op33);
1134 if (status != xnn_status_success) {
1135 std::cerr << "failed to create operation #33" << std::endl;
1136 return ExecutionPlan();
1137 }
1138 operators.emplace_back(op33, xnn_delete_operator);
1139
1140 xnn_operator_t op34 = nullptr;
1141 status = xnn_create_convolution2d_nhwc_qs8(
1142 0 /* top padding */, 0 /* right padding */,
1143 0 /* bottom padding */, 0 /* left padding */,
1144 1 /* kernel height */, 1 /* kernel width */,
1145 1 /* subsampling height */, 1 /* subsampling width */,
1146 1 /* dilation_height */, 1 /* dilation_width */,
1147 1 /* groups */,
1148 384 /* input channels per group */,
1149 64 /* output_channels_per_group */,
1150 384 /* input pixel stride */,
1151 64 /* output pixel stride */,
1152 -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
1153 w123.data(), w124.data(),
1154 -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1155 0 /* flags */,
1156 &caches,
1157 &op34);
1158 if (status != xnn_status_success) {
1159 std::cerr << "failed to create operation #34" << std::endl;
1160 return ExecutionPlan();
1161 }
1162 operators.emplace_back(op34, xnn_delete_operator);
1163
1164 xnn_operator_t op35 = nullptr;
1165 status = xnn_create_add_nd_qs8(
1166 -1 /* input1 zero point */, 0.5f /* input1 scale */,
1167 -1 /* input2 zero point */, 0.5f /* input2 scale */,
1168 -1 /* output zero point */, 1.0f /* output scale */, -126 /* output min */, 126 /* output max */,
1169 0 /* flags */,
1170 &op35);
1171 if (status != xnn_status_success) {
1172 std::cerr << "failed to create operation #35" << std::endl;
1173 return ExecutionPlan();
1174 }
1175 operators.emplace_back(op35, xnn_delete_operator);
1176
1177 xnn_operator_t op36 = nullptr;
1178 status = xnn_create_convolution2d_nhwc_qs8(
1179 0 /* top padding */, 0 /* right padding */,
1180 0 /* bottom padding */, 0 /* left padding */,
1181 1 /* kernel height */, 1 /* kernel width */,
1182 1 /* subsampling height */, 1 /* subsampling width */,
1183 1 /* dilation_height */, 1 /* dilation_width */,
1184 1 /* groups */,
1185 64 /* input channels per group */,
1186 384 /* output_channels_per_group */,
1187 64 /* input pixel stride */,
1188 384 /* output pixel stride */,
1189 -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
1190 w125.data(), w126.data(),
1191 -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1192 0 /* flags */,
1193 &caches,
1194 &op36);
1195 if (status != xnn_status_success) {
1196 std::cerr << "failed to create operation #36" << std::endl;
1197 return ExecutionPlan();
1198 }
1199 operators.emplace_back(op36, xnn_delete_operator);
1200
1201 xnn_operator_t op37 = nullptr;
1202 status = xnn_create_convolution2d_nhwc_qs8(
1203 1 /* top padding */, 1 /* right padding */,
1204 1 /* bottom padding */, 1 /* left padding */,
1205 3 /* kernel height */, 3 /* kernel width */,
1206 1 /* subsampling height */, 1 /* subsampling width */,
1207 1 /* dilation_height */, 1 /* dilation_width */,
1208 384 /* groups */,
1209 1 /* input channels per group */,
1210 1 /* output_channels_per_group */,
1211 384 /* input pixel stride */,
1212 384 /* output pixel stride */,
1213 -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
1214 w127.data(), w128.data(),
1215 -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1216 0 /* flags */,
1217 &caches,
1218 &op37);
1219 if (status != xnn_status_success) {
1220 std::cerr << "failed to create operation #37" << std::endl;
1221 return ExecutionPlan();
1222 }
1223 operators.emplace_back(op37, xnn_delete_operator);
1224
1225 xnn_operator_t op38 = nullptr;
1226 status = xnn_create_convolution2d_nhwc_qs8(
1227 0 /* top padding */, 0 /* right padding */,
1228 0 /* bottom padding */, 0 /* left padding */,
1229 1 /* kernel height */, 1 /* kernel width */,
1230 1 /* subsampling height */, 1 /* subsampling width */,
1231 1 /* dilation_height */, 1 /* dilation_width */,
1232 1 /* groups */,
1233 384 /* input channels per group */,
1234 96 /* output_channels_per_group */,
1235 384 /* input pixel stride */,
1236 96 /* output pixel stride */,
1237 -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
1238 w129.data(), w130.data(),
1239 -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1240 0 /* flags */,
1241 &caches,
1242 &op38);
1243 if (status != xnn_status_success) {
1244 std::cerr << "failed to create operation #38" << std::endl;
1245 return ExecutionPlan();
1246 }
1247 operators.emplace_back(op38, xnn_delete_operator);
1248
1249 xnn_operator_t op39 = nullptr;
1250 status = xnn_create_convolution2d_nhwc_qs8(
1251 0 /* top padding */, 0 /* right padding */,
1252 0 /* bottom padding */, 0 /* left padding */,
1253 1 /* kernel height */, 1 /* kernel width */,
1254 1 /* subsampling height */, 1 /* subsampling width */,
1255 1 /* dilation_height */, 1 /* dilation_width */,
1256 1 /* groups */,
1257 96 /* input channels per group */,
1258 576 /* output_channels_per_group */,
1259 96 /* input pixel stride */,
1260 576 /* output pixel stride */,
1261 -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
1262 w131.data(), w132.data(),
1263 -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1264 0 /* flags */,
1265 &caches,
1266 &op39);
1267 if (status != xnn_status_success) {
1268 std::cerr << "failed to create operation #39" << std::endl;
1269 return ExecutionPlan();
1270 }
1271 operators.emplace_back(op39, xnn_delete_operator);
1272
1273 xnn_operator_t op40 = nullptr;
1274 status = xnn_create_convolution2d_nhwc_qs8(
1275 1 /* top padding */, 1 /* right padding */,
1276 1 /* bottom padding */, 1 /* left padding */,
1277 3 /* kernel height */, 3 /* kernel width */,
1278 1 /* subsampling height */, 1 /* subsampling width */,
1279 1 /* dilation_height */, 1 /* dilation_width */,
1280 576 /* groups */,
1281 1 /* input channels per group */,
1282 1 /* output_channels_per_group */,
1283 576 /* input pixel stride */,
1284 576 /* output pixel stride */,
1285 -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
1286 w133.data(), w134.data(),
1287 -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1288 0 /* flags */,
1289 &caches,
1290 &op40);
1291 if (status != xnn_status_success) {
1292 std::cerr << "failed to create operation #40" << std::endl;
1293 return ExecutionPlan();
1294 }
1295 operators.emplace_back(op40, xnn_delete_operator);
1296
1297 xnn_operator_t op41 = nullptr;
1298 status = xnn_create_convolution2d_nhwc_qs8(
1299 0 /* top padding */, 0 /* right padding */,
1300 0 /* bottom padding */, 0 /* left padding */,
1301 1 /* kernel height */, 1 /* kernel width */,
1302 1 /* subsampling height */, 1 /* subsampling width */,
1303 1 /* dilation_height */, 1 /* dilation_width */,
1304 1 /* groups */,
1305 576 /* input channels per group */,
1306 96 /* output_channels_per_group */,
1307 576 /* input pixel stride */,
1308 96 /* output pixel stride */,
1309 -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
1310 w135.data(), w136.data(),
1311 -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1312 0 /* flags */,
1313 &caches,
1314 &op41);
1315 if (status != xnn_status_success) {
1316 std::cerr << "failed to create operation #41" << std::endl;
1317 return ExecutionPlan();
1318 }
1319 operators.emplace_back(op41, xnn_delete_operator);
1320
1321 xnn_operator_t op42 = nullptr;
1322 status = xnn_create_add_nd_qs8(
1323 -1 /* input1 zero point */, 0.5f /* input1 scale */,
1324 -1 /* input2 zero point */, 0.5f /* input2 scale */,
1325 -1 /* output zero point */, 1.0f /* output scale */, -126 /* output min */, 126 /* output max */,
1326 0 /* flags */,
1327 &op42);
1328 if (status != xnn_status_success) {
1329 std::cerr << "failed to create operation #42" << std::endl;
1330 return ExecutionPlan();
1331 }
1332 operators.emplace_back(op42, xnn_delete_operator);
1333
1334 xnn_operator_t op43 = nullptr;
1335 status = xnn_create_convolution2d_nhwc_qs8(
1336 0 /* top padding */, 0 /* right padding */,
1337 0 /* bottom padding */, 0 /* left padding */,
1338 1 /* kernel height */, 1 /* kernel width */,
1339 1 /* subsampling height */, 1 /* subsampling width */,
1340 1 /* dilation_height */, 1 /* dilation_width */,
1341 1 /* groups */,
1342 96 /* input channels per group */,
1343 576 /* output_channels_per_group */,
1344 96 /* input pixel stride */,
1345 576 /* output pixel stride */,
1346 -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
1347 w137.data(), w138.data(),
1348 -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1349 0 /* flags */,
1350 &caches,
1351 &op43);
1352 if (status != xnn_status_success) {
1353 std::cerr << "failed to create operation #43" << std::endl;
1354 return ExecutionPlan();
1355 }
1356 operators.emplace_back(op43, xnn_delete_operator);
1357
1358 xnn_operator_t op44 = nullptr;
1359 status = xnn_create_convolution2d_nhwc_qs8(
1360 1 /* top padding */, 1 /* right padding */,
1361 1 /* bottom padding */, 1 /* left padding */,
1362 3 /* kernel height */, 3 /* kernel width */,
1363 1 /* subsampling height */, 1 /* subsampling width */,
1364 1 /* dilation_height */, 1 /* dilation_width */,
1365 576 /* groups */,
1366 1 /* input channels per group */,
1367 1 /* output_channels_per_group */,
1368 576 /* input pixel stride */,
1369 576 /* output pixel stride */,
1370 -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
1371 w139.data(), w140.data(),
1372 -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1373 0 /* flags */,
1374 &caches,
1375 &op44);
1376 if (status != xnn_status_success) {
1377 std::cerr << "failed to create operation #44" << std::endl;
1378 return ExecutionPlan();
1379 }
1380 operators.emplace_back(op44, xnn_delete_operator);
1381
1382 xnn_operator_t op45 = nullptr;
1383 status = xnn_create_convolution2d_nhwc_qs8(
1384 0 /* top padding */, 0 /* right padding */,
1385 0 /* bottom padding */, 0 /* left padding */,
1386 1 /* kernel height */, 1 /* kernel width */,
1387 1 /* subsampling height */, 1 /* subsampling width */,
1388 1 /* dilation_height */, 1 /* dilation_width */,
1389 1 /* groups */,
1390 576 /* input channels per group */,
1391 96 /* output_channels_per_group */,
1392 576 /* input pixel stride */,
1393 96 /* output pixel stride */,
1394 -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
1395 w141.data(), w142.data(),
1396 -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1397 0 /* flags */,
1398 &caches,
1399 &op45);
1400 if (status != xnn_status_success) {
1401 std::cerr << "failed to create operation #45" << std::endl;
1402 return ExecutionPlan();
1403 }
1404 operators.emplace_back(op45, xnn_delete_operator);
1405
1406 xnn_operator_t op46 = nullptr;
1407 status = xnn_create_add_nd_qs8(
1408 -1 /* input1 zero point */, 0.5f /* input1 scale */,
1409 -1 /* input2 zero point */, 0.5f /* input2 scale */,
1410 -1 /* output zero point */, 1.0f /* output scale */, -126 /* output min */, 126 /* output max */,
1411 0 /* flags */,
1412 &op46);
1413 if (status != xnn_status_success) {
1414 std::cerr << "failed to create operation #46" << std::endl;
1415 return ExecutionPlan();
1416 }
1417 operators.emplace_back(op46, xnn_delete_operator);
1418
1419 xnn_operator_t op47 = nullptr;
1420 status = xnn_create_convolution2d_nhwc_qs8(
1421 0 /* top padding */, 0 /* right padding */,
1422 0 /* bottom padding */, 0 /* left padding */,
1423 1 /* kernel height */, 1 /* kernel width */,
1424 1 /* subsampling height */, 1 /* subsampling width */,
1425 1 /* dilation_height */, 1 /* dilation_width */,
1426 1 /* groups */,
1427 96 /* input channels per group */,
1428 576 /* output_channels_per_group */,
1429 96 /* input pixel stride */,
1430 576 /* output pixel stride */,
1431 -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
1432 w143.data(), w144.data(),
1433 -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1434 0 /* flags */,
1435 &caches,
1436 &op47);
1437 if (status != xnn_status_success) {
1438 std::cerr << "failed to create operation #47" << std::endl;
1439 return ExecutionPlan();
1440 }
1441 operators.emplace_back(op47, xnn_delete_operator);
1442
1443 xnn_operator_t op48 = nullptr;
1444 status = xnn_create_convolution2d_nhwc_qs8(
1445 0 /* top padding */, 1 /* right padding */,
1446 1 /* bottom padding */, 0 /* left padding */,
1447 3 /* kernel height */, 3 /* kernel width */,
1448 2 /* subsampling height */, 2 /* subsampling width */,
1449 1 /* dilation_height */, 1 /* dilation_width */,
1450 576 /* groups */,
1451 1 /* input channels per group */,
1452 1 /* output_channels_per_group */,
1453 576 /* input pixel stride */,
1454 576 /* output pixel stride */,
1455 -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
1456 w145.data(), w146.data(),
1457 -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1458 0 /* flags */,
1459 &caches,
1460 &op48);
1461 if (status != xnn_status_success) {
1462 std::cerr << "failed to create operation #48" << std::endl;
1463 return ExecutionPlan();
1464 }
1465 operators.emplace_back(op48, xnn_delete_operator);
1466
1467 xnn_operator_t op49 = nullptr;
1468 status = xnn_create_convolution2d_nhwc_qs8(
1469 0 /* top padding */, 0 /* right padding */,
1470 0 /* bottom padding */, 0 /* left padding */,
1471 1 /* kernel height */, 1 /* kernel width */,
1472 1 /* subsampling height */, 1 /* subsampling width */,
1473 1 /* dilation_height */, 1 /* dilation_width */,
1474 1 /* groups */,
1475 576 /* input channels per group */,
1476 160 /* output_channels_per_group */,
1477 576 /* input pixel stride */,
1478 160 /* output pixel stride */,
1479 -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
1480 w147.data(), w148.data(),
1481 -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1482 0 /* flags */,
1483 &caches,
1484 &op49);
1485 if (status != xnn_status_success) {
1486 std::cerr << "failed to create operation #49" << std::endl;
1487 return ExecutionPlan();
1488 }
1489 operators.emplace_back(op49, xnn_delete_operator);
1490
1491 xnn_operator_t op50 = nullptr;
1492 status = xnn_create_convolution2d_nhwc_qs8(
1493 0 /* top padding */, 0 /* right padding */,
1494 0 /* bottom padding */, 0 /* left padding */,
1495 1 /* kernel height */, 1 /* kernel width */,
1496 1 /* subsampling height */, 1 /* subsampling width */,
1497 1 /* dilation_height */, 1 /* dilation_width */,
1498 1 /* groups */,
1499 160 /* input channels per group */,
1500 960 /* output_channels_per_group */,
1501 160 /* input pixel stride */,
1502 960 /* output pixel stride */,
1503 -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
1504 w149.data(), w150.data(),
1505 -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1506 0 /* flags */,
1507 &caches,
1508 &op50);
1509 if (status != xnn_status_success) {
1510 std::cerr << "failed to create operation #50" << std::endl;
1511 return ExecutionPlan();
1512 }
1513 operators.emplace_back(op50, xnn_delete_operator);
1514
1515 xnn_operator_t op51 = nullptr;
1516 status = xnn_create_convolution2d_nhwc_qs8(
1517 1 /* top padding */, 1 /* right padding */,
1518 1 /* bottom padding */, 1 /* left padding */,
1519 3 /* kernel height */, 3 /* kernel width */,
1520 1 /* subsampling height */, 1 /* subsampling width */,
1521 1 /* dilation_height */, 1 /* dilation_width */,
1522 960 /* groups */,
1523 1 /* input channels per group */,
1524 1 /* output_channels_per_group */,
1525 960 /* input pixel stride */,
1526 960 /* output pixel stride */,
1527 -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
1528 w151.data(), w152.data(),
1529 -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1530 0 /* flags */,
1531 &caches,
1532 &op51);
1533 if (status != xnn_status_success) {
1534 std::cerr << "failed to create operation #51" << std::endl;
1535 return ExecutionPlan();
1536 }
1537 operators.emplace_back(op51, xnn_delete_operator);
1538
1539 xnn_operator_t op52 = nullptr;
1540 status = xnn_create_convolution2d_nhwc_qs8(
1541 0 /* top padding */, 0 /* right padding */,
1542 0 /* bottom padding */, 0 /* left padding */,
1543 1 /* kernel height */, 1 /* kernel width */,
1544 1 /* subsampling height */, 1 /* subsampling width */,
1545 1 /* dilation_height */, 1 /* dilation_width */,
1546 1 /* groups */,
1547 960 /* input channels per group */,
1548 160 /* output_channels_per_group */,
1549 960 /* input pixel stride */,
1550 160 /* output pixel stride */,
1551 -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
1552 w153.data(), w154.data(),
1553 -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1554 0 /* flags */,
1555 &caches,
1556 &op52);
1557 if (status != xnn_status_success) {
1558 std::cerr << "failed to create operation #52" << std::endl;
1559 return ExecutionPlan();
1560 }
1561 operators.emplace_back(op52, xnn_delete_operator);
1562
1563 xnn_operator_t op53 = nullptr;
1564 status = xnn_create_add_nd_qs8(
1565 -1 /* input1 zero point */, 0.5f /* input1 scale */,
1566 -1 /* input2 zero point */, 0.5f /* input2 scale */,
1567 -1 /* output zero point */, 1.0f /* output scale */, -126 /* output min */, 126 /* output max */,
1568 0 /* flags */,
1569 &op53);
1570 if (status != xnn_status_success) {
1571 std::cerr << "failed to create operation #53" << std::endl;
1572 return ExecutionPlan();
1573 }
1574 operators.emplace_back(op53, xnn_delete_operator);
1575
1576 xnn_operator_t op54 = nullptr;
1577 status = xnn_create_convolution2d_nhwc_qs8(
1578 0 /* top padding */, 0 /* right padding */,
1579 0 /* bottom padding */, 0 /* left padding */,
1580 1 /* kernel height */, 1 /* kernel width */,
1581 1 /* subsampling height */, 1 /* subsampling width */,
1582 1 /* dilation_height */, 1 /* dilation_width */,
1583 1 /* groups */,
1584 160 /* input channels per group */,
1585 960 /* output_channels_per_group */,
1586 160 /* input pixel stride */,
1587 960 /* output pixel stride */,
1588 -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
1589 w155.data(), w156.data(),
1590 -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1591 0 /* flags */,
1592 &caches,
1593 &op54);
1594 if (status != xnn_status_success) {
1595 std::cerr << "failed to create operation #54" << std::endl;
1596 return ExecutionPlan();
1597 }
1598 operators.emplace_back(op54, xnn_delete_operator);
1599
1600 xnn_operator_t op55 = nullptr;
1601 status = xnn_create_convolution2d_nhwc_qs8(
1602 1 /* top padding */, 1 /* right padding */,
1603 1 /* bottom padding */, 1 /* left padding */,
1604 3 /* kernel height */, 3 /* kernel width */,
1605 1 /* subsampling height */, 1 /* subsampling width */,
1606 1 /* dilation_height */, 1 /* dilation_width */,
1607 960 /* groups */,
1608 1 /* input channels per group */,
1609 1 /* output_channels_per_group */,
1610 960 /* input pixel stride */,
1611 960 /* output pixel stride */,
1612 -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
1613 w157.data(), w158.data(),
1614 -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1615 0 /* flags */,
1616 &caches,
1617 &op55);
1618 if (status != xnn_status_success) {
1619 std::cerr << "failed to create operation #55" << std::endl;
1620 return ExecutionPlan();
1621 }
1622 operators.emplace_back(op55, xnn_delete_operator);
1623
1624 xnn_operator_t op56 = nullptr;
1625 status = xnn_create_convolution2d_nhwc_qs8(
1626 0 /* top padding */, 0 /* right padding */,
1627 0 /* bottom padding */, 0 /* left padding */,
1628 1 /* kernel height */, 1 /* kernel width */,
1629 1 /* subsampling height */, 1 /* subsampling width */,
1630 1 /* dilation_height */, 1 /* dilation_width */,
1631 1 /* groups */,
1632 960 /* input channels per group */,
1633 160 /* output_channels_per_group */,
1634 960 /* input pixel stride */,
1635 160 /* output pixel stride */,
1636 -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
1637 w159.data(), w160.data(),
1638 -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1639 0 /* flags */,
1640 &caches,
1641 &op56);
1642 if (status != xnn_status_success) {
1643 std::cerr << "failed to create operation #56" << std::endl;
1644 return ExecutionPlan();
1645 }
1646 operators.emplace_back(op56, xnn_delete_operator);
1647
1648 xnn_operator_t op57 = nullptr;
1649 status = xnn_create_add_nd_qs8(
1650 -1 /* input1 zero point */, 0.5f /* input1 scale */,
1651 -1 /* input2 zero point */, 0.5f /* input2 scale */,
1652 -1 /* output zero point */, 1.0f /* output scale */, -126 /* output min */, 126 /* output max */,
1653 0 /* flags */,
1654 &op57);
1655 if (status != xnn_status_success) {
1656 std::cerr << "failed to create operation #57" << std::endl;
1657 return ExecutionPlan();
1658 }
1659 operators.emplace_back(op57, xnn_delete_operator);
1660
1661 xnn_operator_t op58 = nullptr;
1662 status = xnn_create_convolution2d_nhwc_qs8(
1663 0 /* top padding */, 0 /* right padding */,
1664 0 /* bottom padding */, 0 /* left padding */,
1665 1 /* kernel height */, 1 /* kernel width */,
1666 1 /* subsampling height */, 1 /* subsampling width */,
1667 1 /* dilation_height */, 1 /* dilation_width */,
1668 1 /* groups */,
1669 160 /* input channels per group */,
1670 960 /* output_channels_per_group */,
1671 160 /* input pixel stride */,
1672 960 /* output pixel stride */,
1673 -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
1674 w161.data(), w162.data(),
1675 -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1676 0 /* flags */,
1677 &caches,
1678 &op58);
1679 if (status != xnn_status_success) {
1680 std::cerr << "failed to create operation #58" << std::endl;
1681 return ExecutionPlan();
1682 }
1683 operators.emplace_back(op58, xnn_delete_operator);
1684
1685 xnn_operator_t op59 = nullptr;
1686 status = xnn_create_convolution2d_nhwc_qs8(
1687 1 /* top padding */, 1 /* right padding */,
1688 1 /* bottom padding */, 1 /* left padding */,
1689 3 /* kernel height */, 3 /* kernel width */,
1690 1 /* subsampling height */, 1 /* subsampling width */,
1691 1 /* dilation_height */, 1 /* dilation_width */,
1692 960 /* groups */,
1693 1 /* input channels per group */,
1694 1 /* output_channels_per_group */,
1695 960 /* input pixel stride */,
1696 960 /* output pixel stride */,
1697 -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
1698 w163.data(), w164.data(),
1699 -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1700 0 /* flags */,
1701 &caches,
1702 &op59);
1703 if (status != xnn_status_success) {
1704 std::cerr << "failed to create operation #59" << std::endl;
1705 return ExecutionPlan();
1706 }
1707 operators.emplace_back(op59, xnn_delete_operator);
1708
1709 xnn_operator_t op60 = nullptr;
1710 status = xnn_create_convolution2d_nhwc_qs8(
1711 0 /* top padding */, 0 /* right padding */,
1712 0 /* bottom padding */, 0 /* left padding */,
1713 1 /* kernel height */, 1 /* kernel width */,
1714 1 /* subsampling height */, 1 /* subsampling width */,
1715 1 /* dilation_height */, 1 /* dilation_width */,
1716 1 /* groups */,
1717 960 /* input channels per group */,
1718 320 /* output_channels_per_group */,
1719 960 /* input pixel stride */,
1720 320 /* output pixel stride */,
1721 -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
1722 w165.data(), w166.data(),
1723 -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1724 0 /* flags */,
1725 &caches,
1726 &op60);
1727 if (status != xnn_status_success) {
1728 std::cerr << "failed to create operation #60" << std::endl;
1729 return ExecutionPlan();
1730 }
1731 operators.emplace_back(op60, xnn_delete_operator);
1732
1733 xnn_operator_t op61 = nullptr;
1734 status = xnn_create_convolution2d_nhwc_qs8(
1735 0 /* top padding */, 0 /* right padding */,
1736 0 /* bottom padding */, 0 /* left padding */,
1737 1 /* kernel height */, 1 /* kernel width */,
1738 1 /* subsampling height */, 1 /* subsampling width */,
1739 1 /* dilation_height */, 1 /* dilation_width */,
1740 1 /* groups */,
1741 320 /* input channels per group */,
1742 1280 /* output_channels_per_group */,
1743 320 /* input pixel stride */,
1744 1280 /* output pixel stride */,
1745 -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
1746 w167.data(), w168.data(),
1747 -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1748 0 /* flags */,
1749 &caches,
1750 &op61);
1751 if (status != xnn_status_success) {
1752 std::cerr << "failed to create operation #61" << std::endl;
1753 return ExecutionPlan();
1754 }
1755 operators.emplace_back(op61, xnn_delete_operator);
1756
1757 xnn_operator_t op62 = nullptr;
1758 status = xnn_create_global_average_pooling_nwc_qs8(
1759 1280 /* channels */, 1280 /* input stride */, 1280 /* output stride */,
1760 -1 /* input zero point */, 0.5f /* input scale */,
1761 -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1762 0 /* flags */,
1763 &op62);
1764 if (status != xnn_status_success) {
1765 std::cerr << "failed to create operation #62" << std::endl;
1766 return ExecutionPlan();
1767 }
1768 operators.emplace_back(op62, xnn_delete_operator);
1769
1770 xnn_operator_t op63 = nullptr;
1771 status = xnn_create_convolution2d_nhwc_qs8(
1772 0 /* top padding */, 0 /* right padding */,
1773 0 /* bottom padding */, 0 /* left padding */,
1774 1 /* kernel height */, 1 /* kernel width */,
1775 1 /* subsampling height */, 1 /* subsampling width */,
1776 1 /* dilation_height */, 1 /* dilation_width */,
1777 1 /* groups */,
1778 1280 /* input channels per group */,
1779 1001 /* output_channels_per_group */,
1780 1280 /* input pixel stride */,
1781 1001 /* output pixel stride */,
1782 -1 /* input zero point */, 0.5f /* input scale */, 0.5f /* kernel scale */,
1783 w169.data(), w170.data(),
1784 -1 /* output zero point */, 0.5f /* output scale */, -126 /* output min */, 126 /* output max */,
1785 0 /* flags */,
1786 &caches,
1787 &op63);
1788 if (status != xnn_status_success) {
1789 std::cerr << "failed to create operation #63" << std::endl;
1790 return ExecutionPlan();
1791 }
1792 operators.emplace_back(op63, xnn_delete_operator);
1793
1794 #if XNN_PLATFORM_JIT
1795 xnn_finalize_code_memory(&code_cache.cache.code);
1796 #endif
1797
1798 status = xnn_setup_convolution2d_nhwc_qs8(
1799 op0,
1800 1 /* batch size */, 224 /* input height */, 224 /* input width */,
1801 v0.data() /* input */, v1.data() /* output */,
1802 threadpool /* threadpool */);
1803 if (status != xnn_status_success) {
1804 std::cerr << "failed to setup operation #0" << std::endl;
1805 return ExecutionPlan();
1806 }
1807
1808 status = xnn_setup_convolution2d_nhwc_qs8(
1809 op1,
1810 1 /* batch size */, 112 /* input height */, 112 /* input width */,
1811 v1.data() /* input */, v2.data() /* output */,
1812 threadpool /* threadpool */);
1813 if (status != xnn_status_success) {
1814 std::cerr << "failed to setup operation #1" << std::endl;
1815 return ExecutionPlan();
1816 }
1817
1818 status = xnn_setup_convolution2d_nhwc_qs8(
1819 op2,
1820 1 /* batch size */, 112 /* input height */, 112 /* input width */,
1821 v2.data() /* input */, v3.data() /* output */,
1822 threadpool /* threadpool */);
1823 if (status != xnn_status_success) {
1824 std::cerr << "failed to setup operation #2" << std::endl;
1825 return ExecutionPlan();
1826 }
1827
1828 status = xnn_setup_convolution2d_nhwc_qs8(
1829 op3,
1830 1 /* batch size */, 112 /* input height */, 112 /* input width */,
1831 v3.data() /* input */, v4.data() /* output */,
1832 threadpool /* threadpool */);
1833 if (status != xnn_status_success) {
1834 std::cerr << "failed to setup operation #3" << std::endl;
1835 return ExecutionPlan();
1836 }
1837
1838 status = xnn_setup_convolution2d_nhwc_qs8(
1839 op4,
1840 1 /* batch size */, 112 /* input height */, 112 /* input width */,
1841 v4.data() /* input */, v5.data() /* output */,
1842 threadpool /* threadpool */);
1843 if (status != xnn_status_success) {
1844 std::cerr << "failed to setup operation #4" << std::endl;
1845 return ExecutionPlan();
1846 }
1847
1848 status = xnn_setup_convolution2d_nhwc_qs8(
1849 op5,
1850 1 /* batch size */, 56 /* input height */, 56 /* input width */,
1851 v5.data() /* input */, v6.data() /* output */,
1852 threadpool /* threadpool */);
1853 if (status != xnn_status_success) {
1854 std::cerr << "failed to setup operation #5" << std::endl;
1855 return ExecutionPlan();
1856 }
1857
1858 status = xnn_setup_convolution2d_nhwc_qs8(
1859 op6,
1860 1 /* batch size */, 56 /* input height */, 56 /* input width */,
1861 v6.data() /* input */, v7.data() /* output */,
1862 threadpool /* threadpool */);
1863 if (status != xnn_status_success) {
1864 std::cerr << "failed to setup operation #6" << std::endl;
1865 return ExecutionPlan();
1866 }
1867
1868 status = xnn_setup_convolution2d_nhwc_qs8(
1869 op7,
1870 1 /* batch size */, 56 /* input height */, 56 /* input width */,
1871 v7.data() /* input */, v8.data() /* output */,
1872 threadpool /* threadpool */);
1873 if (status != xnn_status_success) {
1874 std::cerr << "failed to setup operation #7" << std::endl;
1875 return ExecutionPlan();
1876 }
1877
1878 status = xnn_setup_convolution2d_nhwc_qs8(
1879 op8,
1880 1 /* batch size */, 56 /* input height */, 56 /* input width */,
1881 v8.data() /* input */, v9.data() /* output */,
1882 threadpool /* threadpool */);
1883 if (status != xnn_status_success) {
1884 std::cerr << "failed to setup operation #8" << std::endl;
1885 return ExecutionPlan();
1886 }
1887
1888 {
1889 const size_t a_shape[] = { 1, 56, 56, 24 };
1890 const size_t b_shape[] = { 1, 56, 56, 24 };
1891 status = xnn_setup_add_nd_qs8(
1892 op9,
1893 4, a_shape, 4, b_shape,
1894 v9.data() /* a */, v6.data() /* b */, v10.data() /* output */,
1895 threadpool /* threadpool */);
1896 }
1897 if (status != xnn_status_success) {
1898 std::cerr << "failed to setup operation #9" << std::endl;
1899 return ExecutionPlan();
1900 }
1901
1902 status = xnn_setup_convolution2d_nhwc_qs8(
1903 op10,
1904 1 /* batch size */, 56 /* input height */, 56 /* input width */,
1905 v10.data() /* input */, v11.data() /* output */,
1906 threadpool /* threadpool */);
1907 if (status != xnn_status_success) {
1908 std::cerr << "failed to setup operation #10" << std::endl;
1909 return ExecutionPlan();
1910 }
1911
1912 status = xnn_setup_convolution2d_nhwc_qs8(
1913 op11,
1914 1 /* batch size */, 56 /* input height */, 56 /* input width */,
1915 v11.data() /* input */, v12.data() /* output */,
1916 threadpool /* threadpool */);
1917 if (status != xnn_status_success) {
1918 std::cerr << "failed to setup operation #11" << std::endl;
1919 return ExecutionPlan();
1920 }
1921
1922 status = xnn_setup_convolution2d_nhwc_qs8(
1923 op12,
1924 1 /* batch size */, 28 /* input height */, 28 /* input width */,
1925 v12.data() /* input */, v13.data() /* output */,
1926 threadpool /* threadpool */);
1927 if (status != xnn_status_success) {
1928 std::cerr << "failed to setup operation #12" << std::endl;
1929 return ExecutionPlan();
1930 }
1931
1932 status = xnn_setup_convolution2d_nhwc_qs8(
1933 op13,
1934 1 /* batch size */, 28 /* input height */, 28 /* input width */,
1935 v13.data() /* input */, v14.data() /* output */,
1936 threadpool /* threadpool */);
1937 if (status != xnn_status_success) {
1938 std::cerr << "failed to setup operation #13" << std::endl;
1939 return ExecutionPlan();
1940 }
1941
1942 status = xnn_setup_convolution2d_nhwc_qs8(
1943 op14,
1944 1 /* batch size */, 28 /* input height */, 28 /* input width */,
1945 v14.data() /* input */, v15.data() /* output */,
1946 threadpool /* threadpool */);
1947 if (status != xnn_status_success) {
1948 std::cerr << "failed to setup operation #14" << std::endl;
1949 return ExecutionPlan();
1950 }
1951
1952 status = xnn_setup_convolution2d_nhwc_qs8(
1953 op15,
1954 1 /* batch size */, 28 /* input height */, 28 /* input width */,
1955 v15.data() /* input */, v16.data() /* output */,
1956 threadpool /* threadpool */);
1957 if (status != xnn_status_success) {
1958 std::cerr << "failed to setup operation #15" << std::endl;
1959 return ExecutionPlan();
1960 }
1961
1962 {
1963 const size_t a_shape[] = { 1, 28, 28, 32 };
1964 const size_t b_shape[] = { 1, 28, 28, 32 };
1965 status = xnn_setup_add_nd_qs8(
1966 op16,
1967 4, a_shape, 4, b_shape,
1968 v16.data() /* a */, v13.data() /* b */, v17.data() /* output */,
1969 threadpool /* threadpool */);
1970 }
1971 if (status != xnn_status_success) {
1972 std::cerr << "failed to setup operation #16" << std::endl;
1973 return ExecutionPlan();
1974 }
1975
1976 status = xnn_setup_convolution2d_nhwc_qs8(
1977 op17,
1978 1 /* batch size */, 28 /* input height */, 28 /* input width */,
1979 v17.data() /* input */, v18.data() /* output */,
1980 threadpool /* threadpool */);
1981 if (status != xnn_status_success) {
1982 std::cerr << "failed to setup operation #17" << std::endl;
1983 return ExecutionPlan();
1984 }
1985
1986 status = xnn_setup_convolution2d_nhwc_qs8(
1987 op18,
1988 1 /* batch size */, 28 /* input height */, 28 /* input width */,
1989 v18.data() /* input */, v19.data() /* output */,
1990 threadpool /* threadpool */);
1991 if (status != xnn_status_success) {
1992 std::cerr << "failed to setup operation #18" << std::endl;
1993 return ExecutionPlan();
1994 }
1995
1996 status = xnn_setup_convolution2d_nhwc_qs8(
1997 op19,
1998 1 /* batch size */, 28 /* input height */, 28 /* input width */,
1999 v19.data() /* input */, v20.data() /* output */,
2000 threadpool /* threadpool */);
2001 if (status != xnn_status_success) {
2002 std::cerr << "failed to setup operation #19" << std::endl;
2003 return ExecutionPlan();
2004 }
2005
2006 {
2007 const size_t a_shape[] = { 1, 28, 28, 32 };
2008 const size_t b_shape[] = { 1, 28, 28, 32 };
2009 status = xnn_setup_add_nd_qs8(
2010 op20,
2011 4, a_shape, 4, b_shape,
2012 v20.data() /* a */, v17.data() /* b */, v21.data() /* output */,
2013 threadpool /* threadpool */);
2014 }
2015 if (status != xnn_status_success) {
2016 std::cerr << "failed to setup operation #20" << std::endl;
2017 return ExecutionPlan();
2018 }
2019
2020 status = xnn_setup_convolution2d_nhwc_qs8(
2021 op21,
2022 1 /* batch size */, 28 /* input height */, 28 /* input width */,
2023 v21.data() /* input */, v22.data() /* output */,
2024 threadpool /* threadpool */);
2025 if (status != xnn_status_success) {
2026 std::cerr << "failed to setup operation #21" << std::endl;
2027 return ExecutionPlan();
2028 }
2029
2030 status = xnn_setup_convolution2d_nhwc_qs8(
2031 op22,
2032 1 /* batch size */, 28 /* input height */, 28 /* input width */,
2033 v22.data() /* input */, v23.data() /* output */,
2034 threadpool /* threadpool */);
2035 if (status != xnn_status_success) {
2036 std::cerr << "failed to setup operation #22" << std::endl;
2037 return ExecutionPlan();
2038 }
2039
2040 status = xnn_setup_convolution2d_nhwc_qs8(
2041 op23,
2042 1 /* batch size */, 14 /* input height */, 14 /* input width */,
2043 v23.data() /* input */, v24.data() /* output */,
2044 threadpool /* threadpool */);
2045 if (status != xnn_status_success) {
2046 std::cerr << "failed to setup operation #23" << std::endl;
2047 return ExecutionPlan();
2048 }
2049
2050 status = xnn_setup_convolution2d_nhwc_qs8(
2051 op24,
2052 1 /* batch size */, 14 /* input height */, 14 /* input width */,
2053 v24.data() /* input */, v25.data() /* output */,
2054 threadpool /* threadpool */);
2055 if (status != xnn_status_success) {
2056 std::cerr << "failed to setup operation #24" << std::endl;
2057 return ExecutionPlan();
2058 }
2059
2060 status = xnn_setup_convolution2d_nhwc_qs8(
2061 op25,
2062 1 /* batch size */, 14 /* input height */, 14 /* input width */,
2063 v25.data() /* input */, v26.data() /* output */,
2064 threadpool /* threadpool */);
2065 if (status != xnn_status_success) {
2066 std::cerr << "failed to setup operation #25" << std::endl;
2067 return ExecutionPlan();
2068 }
2069
2070 status = xnn_setup_convolution2d_nhwc_qs8(
2071 op26,
2072 1 /* batch size */, 14 /* input height */, 14 /* input width */,
2073 v26.data() /* input */, v27.data() /* output */,
2074 threadpool /* threadpool */);
2075 if (status != xnn_status_success) {
2076 std::cerr << "failed to setup operation #26" << std::endl;
2077 return ExecutionPlan();
2078 }
2079
2080 {
2081 const size_t a_shape[] = { 1, 14, 14, 64 };
2082 const size_t b_shape[] = { 1, 14, 14, 64 };
2083 status = xnn_setup_add_nd_qs8(
2084 op27,
2085 4, a_shape, 4, b_shape,
2086 v27.data() /* a */, v24.data() /* b */, v28.data() /* output */,
2087 threadpool /* threadpool */);
2088 }
2089 if (status != xnn_status_success) {
2090 std::cerr << "failed to setup operation #27" << std::endl;
2091 return ExecutionPlan();
2092 }
2093
2094 status = xnn_setup_convolution2d_nhwc_qs8(
2095 op28,
2096 1 /* batch size */, 14 /* input height */, 14 /* input width */,
2097 v28.data() /* input */, v29.data() /* output */,
2098 threadpool /* threadpool */);
2099 if (status != xnn_status_success) {
2100 std::cerr << "failed to setup operation #28" << std::endl;
2101 return ExecutionPlan();
2102 }
2103
2104 status = xnn_setup_convolution2d_nhwc_qs8(
2105 op29,
2106 1 /* batch size */, 14 /* input height */, 14 /* input width */,
2107 v29.data() /* input */, v30.data() /* output */,
2108 threadpool /* threadpool */);
2109 if (status != xnn_status_success) {
2110 std::cerr << "failed to setup operation #29" << std::endl;
2111 return ExecutionPlan();
2112 }
2113
2114 status = xnn_setup_convolution2d_nhwc_qs8(
2115 op30,
2116 1 /* batch size */, 14 /* input height */, 14 /* input width */,
2117 v30.data() /* input */, v31.data() /* output */,
2118 threadpool /* threadpool */);
2119 if (status != xnn_status_success) {
2120 std::cerr << "failed to setup operation #30" << std::endl;
2121 return ExecutionPlan();
2122 }
2123
2124 {
2125 const size_t a_shape[] = { 1, 14, 14, 64 };
2126 const size_t b_shape[] = { 1, 14, 14, 64 };
2127 status = xnn_setup_add_nd_qs8(
2128 op31,
2129 4, a_shape, 4, b_shape,
2130 v31.data() /* a */, v28.data() /* b */, v32.data() /* output */,
2131 threadpool /* threadpool */);
2132 }
2133 if (status != xnn_status_success) {
2134 std::cerr << "failed to setup operation #31" << std::endl;
2135 return ExecutionPlan();
2136 }
2137
2138 status = xnn_setup_convolution2d_nhwc_qs8(
2139 op32,
2140 1 /* batch size */, 14 /* input height */, 14 /* input width */,
2141 v32.data() /* input */, v33.data() /* output */,
2142 threadpool /* threadpool */);
2143 if (status != xnn_status_success) {
2144 std::cerr << "failed to setup operation #32" << std::endl;
2145 return ExecutionPlan();
2146 }
2147
2148 status = xnn_setup_convolution2d_nhwc_qs8(
2149 op33,
2150 1 /* batch size */, 14 /* input height */, 14 /* input width */,
2151 v33.data() /* input */, v34.data() /* output */,
2152 threadpool /* threadpool */);
2153 if (status != xnn_status_success) {
2154 std::cerr << "failed to setup operation #33" << std::endl;
2155 return ExecutionPlan();
2156 }
2157
2158 status = xnn_setup_convolution2d_nhwc_qs8(
2159 op34,
2160 1 /* batch size */, 14 /* input height */, 14 /* input width */,
2161 v34.data() /* input */, v35.data() /* output */,
2162 threadpool /* threadpool */);
2163 if (status != xnn_status_success) {
2164 std::cerr << "failed to setup operation #34" << std::endl;
2165 return ExecutionPlan();
2166 }
2167
2168 {
2169 const size_t a_shape[] = { 1, 14, 14, 64 };
2170 const size_t b_shape[] = { 1, 14, 14, 64 };
2171 status = xnn_setup_add_nd_qs8(
2172 op35,
2173 4, a_shape, 4, b_shape,
2174 v35.data() /* a */, v32.data() /* b */, v36.data() /* output */,
2175 threadpool /* threadpool */);
2176 }
2177 if (status != xnn_status_success) {
2178 std::cerr << "failed to setup operation #35" << std::endl;
2179 return ExecutionPlan();
2180 }
2181
2182 status = xnn_setup_convolution2d_nhwc_qs8(
2183 op36,
2184 1 /* batch size */, 14 /* input height */, 14 /* input width */,
2185 v36.data() /* input */, v37.data() /* output */,
2186 threadpool /* threadpool */);
2187 if (status != xnn_status_success) {
2188 std::cerr << "failed to setup operation #36" << std::endl;
2189 return ExecutionPlan();
2190 }
2191
2192 status = xnn_setup_convolution2d_nhwc_qs8(
2193 op37,
2194 1 /* batch size */, 14 /* input height */, 14 /* input width */,
2195 v37.data() /* input */, v38.data() /* output */,
2196 threadpool /* threadpool */);
2197 if (status != xnn_status_success) {
2198 std::cerr << "failed to setup operation #37" << std::endl;
2199 return ExecutionPlan();
2200 }
2201
2202 status = xnn_setup_convolution2d_nhwc_qs8(
2203 op38,
2204 1 /* batch size */, 14 /* input height */, 14 /* input width */,
2205 v38.data() /* input */, v39.data() /* output */,
2206 threadpool /* threadpool */);
2207 if (status != xnn_status_success) {
2208 std::cerr << "failed to setup operation #38" << std::endl;
2209 return ExecutionPlan();
2210 }
2211
2212 status = xnn_setup_convolution2d_nhwc_qs8(
2213 op39,
2214 1 /* batch size */, 14 /* input height */, 14 /* input width */,
2215 v39.data() /* input */, v40.data() /* output */,
2216 threadpool /* threadpool */);
2217 if (status != xnn_status_success) {
2218 std::cerr << "failed to setup operation #39" << std::endl;
2219 return ExecutionPlan();
2220 }
2221
2222 status = xnn_setup_convolution2d_nhwc_qs8(
2223 op40,
2224 1 /* batch size */, 14 /* input height */, 14 /* input width */,
2225 v40.data() /* input */, v41.data() /* output */,
2226 threadpool /* threadpool */);
2227 if (status != xnn_status_success) {
2228 std::cerr << "failed to setup operation #40" << std::endl;
2229 return ExecutionPlan();
2230 }
2231
2232 status = xnn_setup_convolution2d_nhwc_qs8(
2233 op41,
2234 1 /* batch size */, 14 /* input height */, 14 /* input width */,
2235 v41.data() /* input */, v42.data() /* output */,
2236 threadpool /* threadpool */);
2237 if (status != xnn_status_success) {
2238 std::cerr << "failed to setup operation #41" << std::endl;
2239 return ExecutionPlan();
2240 }
2241
2242 {
2243 const size_t a_shape[] = { 1, 14, 14, 96 };
2244 const size_t b_shape[] = { 1, 14, 14, 96 };
2245 status = xnn_setup_add_nd_qs8(
2246 op42,
2247 4, a_shape, 4, b_shape,
2248 v42.data() /* a */, v39.data() /* b */, v43.data() /* output */,
2249 threadpool /* threadpool */);
2250 }
2251 if (status != xnn_status_success) {
2252 std::cerr << "failed to setup operation #42" << std::endl;
2253 return ExecutionPlan();
2254 }
2255
2256 status = xnn_setup_convolution2d_nhwc_qs8(
2257 op43,
2258 1 /* batch size */, 14 /* input height */, 14 /* input width */,
2259 v43.data() /* input */, v44.data() /* output */,
2260 threadpool /* threadpool */);
2261 if (status != xnn_status_success) {
2262 std::cerr << "failed to setup operation #43" << std::endl;
2263 return ExecutionPlan();
2264 }
2265
2266 status = xnn_setup_convolution2d_nhwc_qs8(
2267 op44,
2268 1 /* batch size */, 14 /* input height */, 14 /* input width */,
2269 v44.data() /* input */, v45.data() /* output */,
2270 threadpool /* threadpool */);
2271 if (status != xnn_status_success) {
2272 std::cerr << "failed to setup operation #44" << std::endl;
2273 return ExecutionPlan();
2274 }
2275
2276 status = xnn_setup_convolution2d_nhwc_qs8(
2277 op45,
2278 1 /* batch size */, 14 /* input height */, 14 /* input width */,
2279 v45.data() /* input */, v46.data() /* output */,
2280 threadpool /* threadpool */);
2281 if (status != xnn_status_success) {
2282 std::cerr << "failed to setup operation #45" << std::endl;
2283 return ExecutionPlan();
2284 }
2285
2286 {
2287 const size_t a_shape[] = { 1, 14, 14, 96 };
2288 const size_t b_shape[] = { 1, 14, 14, 96 };
2289 status = xnn_setup_add_nd_qs8(
2290 op46,
2291 4, a_shape, 4, b_shape,
2292 v46.data() /* a */, v43.data() /* b */, v47.data() /* output */,
2293 threadpool /* threadpool */);
2294 }
2295 if (status != xnn_status_success) {
2296 std::cerr << "failed to setup operation #46" << std::endl;
2297 return ExecutionPlan();
2298 }
2299
2300 status = xnn_setup_convolution2d_nhwc_qs8(
2301 op47,
2302 1 /* batch size */, 14 /* input height */, 14 /* input width */,
2303 v47.data() /* input */, v48.data() /* output */,
2304 threadpool /* threadpool */);
2305 if (status != xnn_status_success) {
2306 std::cerr << "failed to setup operation #47" << std::endl;
2307 return ExecutionPlan();
2308 }
2309
2310 status = xnn_setup_convolution2d_nhwc_qs8(
2311 op48,
2312 1 /* batch size */, 14 /* input height */, 14 /* input width */,
2313 v48.data() /* input */, v49.data() /* output */,
2314 threadpool /* threadpool */);
2315 if (status != xnn_status_success) {
2316 std::cerr << "failed to setup operation #48" << std::endl;
2317 return ExecutionPlan();
2318 }
2319
2320 status = xnn_setup_convolution2d_nhwc_qs8(
2321 op49,
2322 1 /* batch size */, 7 /* input height */, 7 /* input width */,
2323 v49.data() /* input */, v50.data() /* output */,
2324 threadpool /* threadpool */);
2325 if (status != xnn_status_success) {
2326 std::cerr << "failed to setup operation #49" << std::endl;
2327 return ExecutionPlan();
2328 }
2329
2330 status = xnn_setup_convolution2d_nhwc_qs8(
2331 op50,
2332 1 /* batch size */, 7 /* input height */, 7 /* input width */,
2333 v50.data() /* input */, v51.data() /* output */,
2334 threadpool /* threadpool */);
2335 if (status != xnn_status_success) {
2336 std::cerr << "failed to setup operation #50" << std::endl;
2337 return ExecutionPlan();
2338 }
2339
2340 status = xnn_setup_convolution2d_nhwc_qs8(
2341 op51,
2342 1 /* batch size */, 7 /* input height */, 7 /* input width */,
2343 v51.data() /* input */, v52.data() /* output */,
2344 threadpool /* threadpool */);
2345 if (status != xnn_status_success) {
2346 std::cerr << "failed to setup operation #51" << std::endl;
2347 return ExecutionPlan();
2348 }
2349
2350 status = xnn_setup_convolution2d_nhwc_qs8(
2351 op52,
2352 1 /* batch size */, 7 /* input height */, 7 /* input width */,
2353 v52.data() /* input */, v53.data() /* output */,
2354 threadpool /* threadpool */);
2355 if (status != xnn_status_success) {
2356 std::cerr << "failed to setup operation #52" << std::endl;
2357 return ExecutionPlan();
2358 }
2359
2360 {
2361 const size_t a_shape[] = { 1, 7, 7, 160 };
2362 const size_t b_shape[] = { 1, 7, 7, 160 };
2363 status = xnn_setup_add_nd_qs8(
2364 op53,
2365 4, a_shape, 4, b_shape,
2366 v53.data() /* a */, v50.data() /* b */, v54.data() /* output */,
2367 threadpool /* threadpool */);
2368 }
2369 if (status != xnn_status_success) {
2370 std::cerr << "failed to setup operation #53" << std::endl;
2371 return ExecutionPlan();
2372 }
2373
2374 status = xnn_setup_convolution2d_nhwc_qs8(
2375 op54,
2376 1 /* batch size */, 7 /* input height */, 7 /* input width */,
2377 v54.data() /* input */, v55.data() /* output */,
2378 threadpool /* threadpool */);
2379 if (status != xnn_status_success) {
2380 std::cerr << "failed to setup operation #54" << std::endl;
2381 return ExecutionPlan();
2382 }
2383
2384 status = xnn_setup_convolution2d_nhwc_qs8(
2385 op55,
2386 1 /* batch size */, 7 /* input height */, 7 /* input width */,
2387 v55.data() /* input */, v56.data() /* output */,
2388 threadpool /* threadpool */);
2389 if (status != xnn_status_success) {
2390 std::cerr << "failed to setup operation #55" << std::endl;
2391 return ExecutionPlan();
2392 }
2393
2394 status = xnn_setup_convolution2d_nhwc_qs8(
2395 op56,
2396 1 /* batch size */, 7 /* input height */, 7 /* input width */,
2397 v56.data() /* input */, v57.data() /* output */,
2398 threadpool /* threadpool */);
2399 if (status != xnn_status_success) {
2400 std::cerr << "failed to setup operation #56" << std::endl;
2401 return ExecutionPlan();
2402 }
2403
2404 {
2405 const size_t a_shape[] = { 1, 7, 7, 160 };
2406 const size_t b_shape[] = { 1, 7, 7, 160 };
2407 status = xnn_setup_add_nd_qs8(
2408 op57,
2409 4, a_shape, 4, b_shape,
2410 v57.data() /* a */, v54.data() /* b */, v58.data() /* output */,
2411 threadpool /* threadpool */);
2412 }
2413 if (status != xnn_status_success) {
2414 std::cerr << "failed to setup operation #57" << std::endl;
2415 return ExecutionPlan();
2416 }
2417
2418 status = xnn_setup_convolution2d_nhwc_qs8(
2419 op58,
2420 1 /* batch size */, 7 /* input height */, 7 /* input width */,
2421 v58.data() /* input */, v59.data() /* output */,
2422 threadpool /* threadpool */);
2423 if (status != xnn_status_success) {
2424 std::cerr << "failed to setup operation #58" << std::endl;
2425 return ExecutionPlan();
2426 }
2427
2428 status = xnn_setup_convolution2d_nhwc_qs8(
2429 op59,
2430 1 /* batch size */, 7 /* input height */, 7 /* input width */,
2431 v59.data() /* input */, v60.data() /* output */,
2432 threadpool /* threadpool */);
2433 if (status != xnn_status_success) {
2434 std::cerr << "failed to setup operation #59" << std::endl;
2435 return ExecutionPlan();
2436 }
2437
2438 status = xnn_setup_convolution2d_nhwc_qs8(
2439 op60,
2440 1 /* batch size */, 7 /* input height */, 7 /* input width */,
2441 v60.data() /* input */, v61.data() /* output */,
2442 threadpool /* threadpool */);
2443 if (status != xnn_status_success) {
2444 std::cerr << "failed to setup operation #60" << std::endl;
2445 return ExecutionPlan();
2446 }
2447
2448 status = xnn_setup_convolution2d_nhwc_qs8(
2449 op61,
2450 1 /* batch size */, 7 /* input height */, 7 /* input width */,
2451 v61.data() /* input */, v62.data() /* output */,
2452 threadpool /* threadpool */);
2453 if (status != xnn_status_success) {
2454 std::cerr << "failed to setup operation #61" << std::endl;
2455 return ExecutionPlan();
2456 }
2457
2458 status = xnn_setup_global_average_pooling_nwc_qs8(
2459 op62,
2460 1 /* batch size */, 49 /* width */,
2461 v62.data() /* input */, v63.data() /* output */,
2462 threadpool /* threadpool */);
2463 if (status != xnn_status_success) {
2464 std::cerr << "failed to setup operation #62" << std::endl;
2465 return ExecutionPlan();
2466 }
2467
2468 status = xnn_setup_convolution2d_nhwc_qs8(
2469 op63,
2470 1 /* batch size */, 1 /* input height */, 1 /* input width */,
2471 v63.data() /* input */, v64.data() /* output */,
2472 threadpool /* threadpool */);
2473 if (status != xnn_status_success) {
2474 std::cerr << "failed to setup operation #63" << std::endl;
2475 return ExecutionPlan();
2476 }
2477
2478 #pragma clang diagnostic push
2479 #pragma clang diagnostic ignored "-Wpessimizing-move"
2480 return operators;
2481 #pragma clang diagnostic pop
2482 }
2483
2484 } // namespace models
2485