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