blob: 877673f011229a15315f6c33e0e3fe6594d66af9 [file] [log] [blame]
Marat Dukhanb2164a32020-06-04 19:05:27 -07001// Copyright 2020 Google LLC
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002//
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
Marat Dukhan52e061d2021-03-09 00:02:44 -08008#include <array>
Marat Dukhanc08cdf52019-12-09 09:17:51 -08009#include <algorithm>
10#include <functional>
11#include <iostream>
12#include <limits>
13#include <random>
14
Marat Dukhan66f3ccd2020-09-14 16:09:38 -070015#include <fp16/fp16.h>
16
Marat Dukhanc08cdf52019-12-09 09:17:51 -080017#include "models/models.h"
18
19namespace models {
20
Marat Dukhan270a2c42020-06-26 16:45:52 -070021ExecutionPlan FP16MobileNetV3Small(pthreadpool_t threadpool) {
Marat Dukhan52e061d2021-03-09 00:02:44 -080022 alignas(16) static std::array<uint16_t, 150528> v0;
23 alignas(16) static std::array<uint16_t, 200704> v1;
24 alignas(16) static std::array<uint16_t, 200704> v2;
25 alignas(16) static std::array<uint16_t, 50176> v3;
26 alignas(16) static std::array<uint16_t, 16> v4;
27 alignas(16) static std::array<uint16_t, 8> v5;
28 alignas(16) static std::array<uint16_t, 16> v6;
29 alignas(16) static std::array<uint16_t, 50176> v7;
30 alignas(16) static std::array<uint16_t, 50176> v8;
31 alignas(16) static std::array<uint16_t, 225792> v9;
32 alignas(16) static std::array<uint16_t, 56448> v10;
33 alignas(16) static std::array<uint16_t, 18816> v11;
34 alignas(16) static std::array<uint16_t, 68992> v12;
35 alignas(16) static std::array<uint16_t, 68992> v13;
36 alignas(16) static std::array<uint16_t, 18816> v14;
37 alignas(16) static std::array<uint16_t, 18816> v15;
38 alignas(16) static std::array<uint16_t, 75264> v16;
39 alignas(16) static std::array<uint16_t, 75264> v17;
40 alignas(16) static std::array<uint16_t, 18816> v18;
41 alignas(16) static std::array<uint16_t, 18816> v19;
42 alignas(16) static std::array<uint16_t, 96> v20;
43 alignas(16) static std::array<uint16_t, 24> v21;
44 alignas(16) static std::array<uint16_t, 96> v22;
45 alignas(16) static std::array<uint16_t, 18816> v23;
46 alignas(16) static std::array<uint16_t, 7840> v24;
47 alignas(16) static std::array<uint16_t, 47040> v25;
48 alignas(16) static std::array<uint16_t, 47040> v26;
49 alignas(16) static std::array<uint16_t, 47040> v27;
50 alignas(16) static std::array<uint16_t, 47040> v28;
51 alignas(16) static std::array<uint16_t, 240> v29;
52 alignas(16) static std::array<uint16_t, 64> v30;
53 alignas(16) static std::array<uint16_t, 240> v31;
54 alignas(16) static std::array<uint16_t, 47040> v32;
55 alignas(16) static std::array<uint16_t, 7840> v33;
56 alignas(16) static std::array<uint16_t, 7840> v34;
57 alignas(16) static std::array<uint16_t, 47040> v35;
58 alignas(16) static std::array<uint16_t, 47040> v36;
59 alignas(16) static std::array<uint16_t, 47040> v37;
60 alignas(16) static std::array<uint16_t, 47040> v38;
61 alignas(16) static std::array<uint16_t, 240> v39;
62 alignas(16) static std::array<uint16_t, 64> v40;
63 alignas(16) static std::array<uint16_t, 240> v41;
64 alignas(16) static std::array<uint16_t, 47040> v42;
65 alignas(16) static std::array<uint16_t, 7840> v43;
66 alignas(16) static std::array<uint16_t, 7840> v44;
67 alignas(16) static std::array<uint16_t, 23520> v45;
68 alignas(16) static std::array<uint16_t, 23520> v46;
69 alignas(16) static std::array<uint16_t, 23520> v47;
70 alignas(16) static std::array<uint16_t, 23520> v48;
71 alignas(16) static std::array<uint16_t, 120> v49;
72 alignas(16) static std::array<uint16_t, 32> v50;
73 alignas(16) static std::array<uint16_t, 120> v51;
74 alignas(16) static std::array<uint16_t, 23520> v52;
75 alignas(16) static std::array<uint16_t, 9408> v53;
76 alignas(16) static std::array<uint16_t, 28224> v54;
77 alignas(16) static std::array<uint16_t, 28224> v55;
78 alignas(16) static std::array<uint16_t, 28224> v56;
79 alignas(16) static std::array<uint16_t, 28224> v57;
80 alignas(16) static std::array<uint16_t, 144> v58;
81 alignas(16) static std::array<uint16_t, 40> v59;
82 alignas(16) static std::array<uint16_t, 144> v60;
83 alignas(16) static std::array<uint16_t, 28224> v61;
84 alignas(16) static std::array<uint16_t, 9408> v62;
85 alignas(16) static std::array<uint16_t, 9408> v63;
86 alignas(16) static std::array<uint16_t, 56448> v64;
87 alignas(16) static std::array<uint16_t, 56448> v65;
88 alignas(16) static std::array<uint16_t, 14112> v66;
89 alignas(16) static std::array<uint16_t, 14112> v67;
90 alignas(16) static std::array<uint16_t, 288> v68;
91 alignas(16) static std::array<uint16_t, 72> v69;
92 alignas(16) static std::array<uint16_t, 288> v70;
93 alignas(16) static std::array<uint16_t, 14112> v71;
94 alignas(16) static std::array<uint16_t, 4704> v72;
95 alignas(16) static std::array<uint16_t, 28224> v73;
96 alignas(16) static std::array<uint16_t, 28224> v74;
97 alignas(16) static std::array<uint16_t, 28224> v75;
98 alignas(16) static std::array<uint16_t, 28224> v76;
99 alignas(16) static std::array<uint16_t, 576> v77;
100 alignas(16) static std::array<uint16_t, 144> v78;
101 alignas(16) static std::array<uint16_t, 576> v79;
102 alignas(16) static std::array<uint16_t, 28224> v80;
103 alignas(16) static std::array<uint16_t, 4704> v81;
104 alignas(16) static std::array<uint16_t, 4704> v82;
105 alignas(16) static std::array<uint16_t, 28224> v83;
106 alignas(16) static std::array<uint16_t, 28224> v84;
107 alignas(16) static std::array<uint16_t, 28224> v85;
108 alignas(16) static std::array<uint16_t, 28224> v86;
109 alignas(16) static std::array<uint16_t, 576> v87;
110 alignas(16) static std::array<uint16_t, 144> v88;
111 alignas(16) static std::array<uint16_t, 576> v89;
112 alignas(16) static std::array<uint16_t, 28224> v90;
113 alignas(16) static std::array<uint16_t, 4704> v91;
114 alignas(16) static std::array<uint16_t, 4704> v92;
115 alignas(16) static std::array<uint16_t, 28224> v93;
116 alignas(16) static std::array<uint16_t, 28224> v94;
117 alignas(16) static std::array<uint16_t, 576> v95;
118 alignas(16) static std::array<uint16_t, 1024> v96;
119 alignas(16) static std::array<uint16_t, 1024> v97;
120 alignas(16) static std::array<uint16_t, 1024> v98;
121 alignas(16) static std::array<uint16_t, 1001> v99;
122 alignas(16) static std::array<uint16_t, 432> w100;
123 alignas(16) static std::array<uint16_t, 16> w101;
124 alignas(16) static std::array<uint16_t, 144> w102;
125 alignas(16) static std::array<uint16_t, 16> w103;
126 alignas(16) static std::array<uint16_t, 128> w104;
127 alignas(16) static std::array<uint16_t, 8> w105;
128 alignas(16) static std::array<uint16_t, 128> w106;
129 alignas(16) static std::array<uint16_t, 16> w107;
130 alignas(16) static std::array<uint16_t, 256> w108;
131 alignas(16) static std::array<uint16_t, 16> w109;
132 alignas(16) static std::array<uint16_t, 1152> w110;
133 alignas(16) static std::array<uint16_t, 72> w111;
134 alignas(16) static std::array<uint16_t, 648> w112;
135 alignas(16) static std::array<uint16_t, 72> w113;
136 alignas(16) static std::array<uint16_t, 1728> w114;
137 alignas(16) static std::array<uint16_t, 24> w115;
138 alignas(16) static std::array<uint16_t, 2112> w116;
139 alignas(16) static std::array<uint16_t, 88> w117;
140 alignas(16) static std::array<uint16_t, 792> w118;
141 alignas(16) static std::array<uint16_t, 88> w119;
142 alignas(16) static std::array<uint16_t, 2112> w120;
143 alignas(16) static std::array<uint16_t, 24> w121;
144 alignas(16) static std::array<uint16_t, 2304> w122;
145 alignas(16) static std::array<uint16_t, 96> w123;
146 alignas(16) static std::array<uint16_t, 2400> w124;
147 alignas(16) static std::array<uint16_t, 96> w125;
148 alignas(16) static std::array<uint16_t, 2304> w126;
149 alignas(16) static std::array<uint16_t, 24> w127;
150 alignas(16) static std::array<uint16_t, 2304> w128;
151 alignas(16) static std::array<uint16_t, 96> w129;
152 alignas(16) static std::array<uint16_t, 3840> w130;
153 alignas(16) static std::array<uint16_t, 40> w131;
154 alignas(16) static std::array<uint16_t, 9600> w132;
155 alignas(16) static std::array<uint16_t, 240> w133;
156 alignas(16) static std::array<uint16_t, 6000> w134;
157 alignas(16) static std::array<uint16_t, 240> w135;
158 alignas(16) static std::array<uint16_t, 15360> w136;
159 alignas(16) static std::array<uint16_t, 64> w137;
160 alignas(16) static std::array<uint16_t, 15360> w138;
161 alignas(16) static std::array<uint16_t, 240> w139;
162 alignas(16) static std::array<uint16_t, 9600> w140;
163 alignas(16) static std::array<uint16_t, 40> w141;
164 alignas(16) static std::array<uint16_t, 9600> w142;
165 alignas(16) static std::array<uint16_t, 240> w143;
166 alignas(16) static std::array<uint16_t, 6000> w144;
167 alignas(16) static std::array<uint16_t, 240> w145;
168 alignas(16) static std::array<uint16_t, 15360> w146;
169 alignas(16) static std::array<uint16_t, 64> w147;
170 alignas(16) static std::array<uint16_t, 15360> w148;
171 alignas(16) static std::array<uint16_t, 240> w149;
172 alignas(16) static std::array<uint16_t, 9600> w150;
173 alignas(16) static std::array<uint16_t, 40> w151;
174 alignas(16) static std::array<uint16_t, 4800> w152;
175 alignas(16) static std::array<uint16_t, 120> w153;
176 alignas(16) static std::array<uint16_t, 3000> w154;
177 alignas(16) static std::array<uint16_t, 120> w155;
178 alignas(16) static std::array<uint16_t, 3840> w156;
179 alignas(16) static std::array<uint16_t, 32> w157;
180 alignas(16) static std::array<uint16_t, 3840> w158;
181 alignas(16) static std::array<uint16_t, 120> w159;
182 alignas(16) static std::array<uint16_t, 5760> w160;
183 alignas(16) static std::array<uint16_t, 48> w161;
184 alignas(16) static std::array<uint16_t, 6912> w162;
185 alignas(16) static std::array<uint16_t, 144> w163;
186 alignas(16) static std::array<uint16_t, 3600> w164;
187 alignas(16) static std::array<uint16_t, 144> w165;
188 alignas(16) static std::array<uint16_t, 5760> w166;
189 alignas(16) static std::array<uint16_t, 40> w167;
190 alignas(16) static std::array<uint16_t, 5760> w168;
191 alignas(16) static std::array<uint16_t, 144> w169;
192 alignas(16) static std::array<uint16_t, 6912> w170;
193 alignas(16) static std::array<uint16_t, 48> w171;
194 alignas(16) static std::array<uint16_t, 13824> w172;
195 alignas(16) static std::array<uint16_t, 288> w173;
196 alignas(16) static std::array<uint16_t, 7200> w174;
197 alignas(16) static std::array<uint16_t, 288> w175;
198 alignas(16) static std::array<uint16_t, 20736> w176;
199 alignas(16) static std::array<uint16_t, 72> w177;
200 alignas(16) static std::array<uint16_t, 20736> w178;
201 alignas(16) static std::array<uint16_t, 288> w179;
202 alignas(16) static std::array<uint16_t, 27648> w180;
203 alignas(16) static std::array<uint16_t, 96> w181;
204 alignas(16) static std::array<uint16_t, 55296> w182;
205 alignas(16) static std::array<uint16_t, 576> w183;
206 alignas(16) static std::array<uint16_t, 14400> w184;
207 alignas(16) static std::array<uint16_t, 576> w185;
208 alignas(16) static std::array<uint16_t, 82944> w186;
209 alignas(16) static std::array<uint16_t, 144> w187;
210 alignas(16) static std::array<uint16_t, 82944> w188;
211 alignas(16) static std::array<uint16_t, 576> w189;
212 alignas(16) static std::array<uint16_t, 55296> w190;
213 alignas(16) static std::array<uint16_t, 96> w191;
214 alignas(16) static std::array<uint16_t, 55296> w192;
215 alignas(16) static std::array<uint16_t, 576> w193;
216 alignas(16) static std::array<uint16_t, 14400> w194;
217 alignas(16) static std::array<uint16_t, 576> w195;
218 alignas(16) static std::array<uint16_t, 82944> w196;
219 alignas(16) static std::array<uint16_t, 144> w197;
220 alignas(16) static std::array<uint16_t, 82944> w198;
221 alignas(16) static std::array<uint16_t, 576> w199;
222 alignas(16) static std::array<uint16_t, 55296> w200;
223 alignas(16) static std::array<uint16_t, 96> w201;
224 alignas(16) static std::array<uint16_t, 55296> w202;
225 alignas(16) static std::array<uint16_t, 576> w203;
226 alignas(16) static std::array<uint16_t, 589824> w204;
227 alignas(16) static std::array<uint16_t, 1024> w205;
228 alignas(16) static std::array<uint16_t, 1025024> w206;
229 alignas(16) static std::array<uint16_t, 1001> w207;
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800230
231 std::random_device random_device;
232 auto rng = std::mt19937(random_device());
Marat Dukhan43cb20e2020-06-25 20:18:54 -0700233 auto f32rng = std::bind(std::uniform_real_distribution<float>(-1.0f, +1.0f), std::ref(rng));
Marat Dukhan270a2c42020-06-26 16:45:52 -0700234 auto f16rng = std::bind(fp16_ieee_from_fp32_value, f32rng);
Marat Dukhan52e061d2021-03-09 00:02:44 -0800235 std::generate(v0.begin(), v0.end(), std::ref(f16rng));
236 std::generate(v1.begin(), v1.end(), std::ref(f16rng));
237 std::generate(v2.begin(), v2.end(), std::ref(f16rng));
238 std::generate(v3.begin(), v3.end(), std::ref(f16rng));
239 std::generate(v4.begin(), v4.end(), std::ref(f16rng));
240 std::generate(v5.begin(), v5.end(), std::ref(f16rng));
241 std::generate(v6.begin(), v6.end(), std::ref(f16rng));
242 std::generate(v7.begin(), v7.end(), std::ref(f16rng));
243 std::generate(v8.begin(), v8.end(), std::ref(f16rng));
244 std::generate(v9.begin(), v9.end(), std::ref(f16rng));
245 std::generate(v10.begin(), v10.end(), std::ref(f16rng));
246 std::generate(v11.begin(), v11.end(), std::ref(f16rng));
247 std::generate(v12.begin(), v12.end(), std::ref(f16rng));
248 std::generate(v13.begin(), v13.end(), std::ref(f16rng));
249 std::generate(v14.begin(), v14.end(), std::ref(f16rng));
250 std::generate(v15.begin(), v15.end(), std::ref(f16rng));
251 std::generate(v16.begin(), v16.end(), std::ref(f16rng));
252 std::generate(v17.begin(), v17.end(), std::ref(f16rng));
253 std::generate(v18.begin(), v18.end(), std::ref(f16rng));
254 std::generate(v19.begin(), v19.end(), std::ref(f16rng));
255 std::generate(v20.begin(), v20.end(), std::ref(f16rng));
256 std::generate(v21.begin(), v21.end(), std::ref(f16rng));
257 std::generate(v22.begin(), v22.end(), std::ref(f16rng));
258 std::generate(v23.begin(), v23.end(), std::ref(f16rng));
259 std::generate(v24.begin(), v24.end(), std::ref(f16rng));
260 std::generate(v25.begin(), v25.end(), std::ref(f16rng));
261 std::generate(v26.begin(), v26.end(), std::ref(f16rng));
262 std::generate(v27.begin(), v27.end(), std::ref(f16rng));
263 std::generate(v28.begin(), v28.end(), std::ref(f16rng));
264 std::generate(v29.begin(), v29.end(), std::ref(f16rng));
265 std::generate(v30.begin(), v30.end(), std::ref(f16rng));
266 std::generate(v31.begin(), v31.end(), std::ref(f16rng));
267 std::generate(v32.begin(), v32.end(), std::ref(f16rng));
268 std::generate(v33.begin(), v33.end(), std::ref(f16rng));
269 std::generate(v34.begin(), v34.end(), std::ref(f16rng));
270 std::generate(v35.begin(), v35.end(), std::ref(f16rng));
271 std::generate(v36.begin(), v36.end(), std::ref(f16rng));
272 std::generate(v37.begin(), v37.end(), std::ref(f16rng));
273 std::generate(v38.begin(), v38.end(), std::ref(f16rng));
274 std::generate(v39.begin(), v39.end(), std::ref(f16rng));
275 std::generate(v40.begin(), v40.end(), std::ref(f16rng));
276 std::generate(v41.begin(), v41.end(), std::ref(f16rng));
277 std::generate(v42.begin(), v42.end(), std::ref(f16rng));
278 std::generate(v43.begin(), v43.end(), std::ref(f16rng));
279 std::generate(v44.begin(), v44.end(), std::ref(f16rng));
280 std::generate(v45.begin(), v45.end(), std::ref(f16rng));
281 std::generate(v46.begin(), v46.end(), std::ref(f16rng));
282 std::generate(v47.begin(), v47.end(), std::ref(f16rng));
283 std::generate(v48.begin(), v48.end(), std::ref(f16rng));
284 std::generate(v49.begin(), v49.end(), std::ref(f16rng));
285 std::generate(v50.begin(), v50.end(), std::ref(f16rng));
286 std::generate(v51.begin(), v51.end(), std::ref(f16rng));
287 std::generate(v52.begin(), v52.end(), std::ref(f16rng));
288 std::generate(v53.begin(), v53.end(), std::ref(f16rng));
289 std::generate(v54.begin(), v54.end(), std::ref(f16rng));
290 std::generate(v55.begin(), v55.end(), std::ref(f16rng));
291 std::generate(v56.begin(), v56.end(), std::ref(f16rng));
292 std::generate(v57.begin(), v57.end(), std::ref(f16rng));
293 std::generate(v58.begin(), v58.end(), std::ref(f16rng));
294 std::generate(v59.begin(), v59.end(), std::ref(f16rng));
295 std::generate(v60.begin(), v60.end(), std::ref(f16rng));
296 std::generate(v61.begin(), v61.end(), std::ref(f16rng));
297 std::generate(v62.begin(), v62.end(), std::ref(f16rng));
298 std::generate(v63.begin(), v63.end(), std::ref(f16rng));
299 std::generate(v64.begin(), v64.end(), std::ref(f16rng));
300 std::generate(v65.begin(), v65.end(), std::ref(f16rng));
301 std::generate(v66.begin(), v66.end(), std::ref(f16rng));
302 std::generate(v67.begin(), v67.end(), std::ref(f16rng));
303 std::generate(v68.begin(), v68.end(), std::ref(f16rng));
304 std::generate(v69.begin(), v69.end(), std::ref(f16rng));
305 std::generate(v70.begin(), v70.end(), std::ref(f16rng));
306 std::generate(v71.begin(), v71.end(), std::ref(f16rng));
307 std::generate(v72.begin(), v72.end(), std::ref(f16rng));
308 std::generate(v73.begin(), v73.end(), std::ref(f16rng));
309 std::generate(v74.begin(), v74.end(), std::ref(f16rng));
310 std::generate(v75.begin(), v75.end(), std::ref(f16rng));
311 std::generate(v76.begin(), v76.end(), std::ref(f16rng));
312 std::generate(v77.begin(), v77.end(), std::ref(f16rng));
313 std::generate(v78.begin(), v78.end(), std::ref(f16rng));
314 std::generate(v79.begin(), v79.end(), std::ref(f16rng));
315 std::generate(v80.begin(), v80.end(), std::ref(f16rng));
316 std::generate(v81.begin(), v81.end(), std::ref(f16rng));
317 std::generate(v82.begin(), v82.end(), std::ref(f16rng));
318 std::generate(v83.begin(), v83.end(), std::ref(f16rng));
319 std::generate(v84.begin(), v84.end(), std::ref(f16rng));
320 std::generate(v85.begin(), v85.end(), std::ref(f16rng));
321 std::generate(v86.begin(), v86.end(), std::ref(f16rng));
322 std::generate(v87.begin(), v87.end(), std::ref(f16rng));
323 std::generate(v88.begin(), v88.end(), std::ref(f16rng));
324 std::generate(v89.begin(), v89.end(), std::ref(f16rng));
325 std::generate(v90.begin(), v90.end(), std::ref(f16rng));
326 std::generate(v91.begin(), v91.end(), std::ref(f16rng));
327 std::generate(v92.begin(), v92.end(), std::ref(f16rng));
328 std::generate(v93.begin(), v93.end(), std::ref(f16rng));
329 std::generate(v94.begin(), v94.end(), std::ref(f16rng));
330 std::generate(v95.begin(), v95.end(), std::ref(f16rng));
331 std::generate(v96.begin(), v96.end(), std::ref(f16rng));
332 std::generate(v97.begin(), v97.end(), std::ref(f16rng));
333 std::generate(v98.begin(), v98.end(), std::ref(f16rng));
334 std::generate(v99.begin(), v99.end(), std::ref(f16rng));
335 std::generate(w100.begin(), w100.end(), std::ref(f16rng));
336 std::generate(w101.begin(), w101.end(), std::ref(f16rng));
337 std::generate(w102.begin(), w102.end(), std::ref(f16rng));
338 std::generate(w103.begin(), w103.end(), std::ref(f16rng));
339 std::generate(w104.begin(), w104.end(), std::ref(f16rng));
340 std::generate(w105.begin(), w105.end(), std::ref(f16rng));
341 std::generate(w106.begin(), w106.end(), std::ref(f16rng));
342 std::generate(w107.begin(), w107.end(), std::ref(f16rng));
343 std::generate(w108.begin(), w108.end(), std::ref(f16rng));
344 std::generate(w109.begin(), w109.end(), std::ref(f16rng));
345 std::generate(w110.begin(), w110.end(), std::ref(f16rng));
346 std::generate(w111.begin(), w111.end(), std::ref(f16rng));
347 std::generate(w112.begin(), w112.end(), std::ref(f16rng));
348 std::generate(w113.begin(), w113.end(), std::ref(f16rng));
349 std::generate(w114.begin(), w114.end(), std::ref(f16rng));
350 std::generate(w115.begin(), w115.end(), std::ref(f16rng));
351 std::generate(w116.begin(), w116.end(), std::ref(f16rng));
352 std::generate(w117.begin(), w117.end(), std::ref(f16rng));
353 std::generate(w118.begin(), w118.end(), std::ref(f16rng));
354 std::generate(w119.begin(), w119.end(), std::ref(f16rng));
355 std::generate(w120.begin(), w120.end(), std::ref(f16rng));
356 std::generate(w121.begin(), w121.end(), std::ref(f16rng));
357 std::generate(w122.begin(), w122.end(), std::ref(f16rng));
358 std::generate(w123.begin(), w123.end(), std::ref(f16rng));
359 std::generate(w124.begin(), w124.end(), std::ref(f16rng));
360 std::generate(w125.begin(), w125.end(), std::ref(f16rng));
361 std::generate(w126.begin(), w126.end(), std::ref(f16rng));
362 std::generate(w127.begin(), w127.end(), std::ref(f16rng));
363 std::generate(w128.begin(), w128.end(), std::ref(f16rng));
364 std::generate(w129.begin(), w129.end(), std::ref(f16rng));
365 std::generate(w130.begin(), w130.end(), std::ref(f16rng));
366 std::generate(w131.begin(), w131.end(), std::ref(f16rng));
367 std::generate(w132.begin(), w132.end(), std::ref(f16rng));
368 std::generate(w133.begin(), w133.end(), std::ref(f16rng));
369 std::generate(w134.begin(), w134.end(), std::ref(f16rng));
370 std::generate(w135.begin(), w135.end(), std::ref(f16rng));
371 std::generate(w136.begin(), w136.end(), std::ref(f16rng));
372 std::generate(w137.begin(), w137.end(), std::ref(f16rng));
373 std::generate(w138.begin(), w138.end(), std::ref(f16rng));
374 std::generate(w139.begin(), w139.end(), std::ref(f16rng));
375 std::generate(w140.begin(), w140.end(), std::ref(f16rng));
376 std::generate(w141.begin(), w141.end(), std::ref(f16rng));
377 std::generate(w142.begin(), w142.end(), std::ref(f16rng));
378 std::generate(w143.begin(), w143.end(), std::ref(f16rng));
379 std::generate(w144.begin(), w144.end(), std::ref(f16rng));
380 std::generate(w145.begin(), w145.end(), std::ref(f16rng));
381 std::generate(w146.begin(), w146.end(), std::ref(f16rng));
382 std::generate(w147.begin(), w147.end(), std::ref(f16rng));
383 std::generate(w148.begin(), w148.end(), std::ref(f16rng));
384 std::generate(w149.begin(), w149.end(), std::ref(f16rng));
385 std::generate(w150.begin(), w150.end(), std::ref(f16rng));
386 std::generate(w151.begin(), w151.end(), std::ref(f16rng));
387 std::generate(w152.begin(), w152.end(), std::ref(f16rng));
388 std::generate(w153.begin(), w153.end(), std::ref(f16rng));
389 std::generate(w154.begin(), w154.end(), std::ref(f16rng));
390 std::generate(w155.begin(), w155.end(), std::ref(f16rng));
391 std::generate(w156.begin(), w156.end(), std::ref(f16rng));
392 std::generate(w157.begin(), w157.end(), std::ref(f16rng));
393 std::generate(w158.begin(), w158.end(), std::ref(f16rng));
394 std::generate(w159.begin(), w159.end(), std::ref(f16rng));
395 std::generate(w160.begin(), w160.end(), std::ref(f16rng));
396 std::generate(w161.begin(), w161.end(), std::ref(f16rng));
397 std::generate(w162.begin(), w162.end(), std::ref(f16rng));
398 std::generate(w163.begin(), w163.end(), std::ref(f16rng));
399 std::generate(w164.begin(), w164.end(), std::ref(f16rng));
400 std::generate(w165.begin(), w165.end(), std::ref(f16rng));
401 std::generate(w166.begin(), w166.end(), std::ref(f16rng));
402 std::generate(w167.begin(), w167.end(), std::ref(f16rng));
403 std::generate(w168.begin(), w168.end(), std::ref(f16rng));
404 std::generate(w169.begin(), w169.end(), std::ref(f16rng));
405 std::generate(w170.begin(), w170.end(), std::ref(f16rng));
406 std::generate(w171.begin(), w171.end(), std::ref(f16rng));
407 std::generate(w172.begin(), w172.end(), std::ref(f16rng));
408 std::generate(w173.begin(), w173.end(), std::ref(f16rng));
409 std::generate(w174.begin(), w174.end(), std::ref(f16rng));
410 std::generate(w175.begin(), w175.end(), std::ref(f16rng));
411 std::generate(w176.begin(), w176.end(), std::ref(f16rng));
412 std::generate(w177.begin(), w177.end(), std::ref(f16rng));
413 std::generate(w178.begin(), w178.end(), std::ref(f16rng));
414 std::generate(w179.begin(), w179.end(), std::ref(f16rng));
415 std::generate(w180.begin(), w180.end(), std::ref(f16rng));
416 std::generate(w181.begin(), w181.end(), std::ref(f16rng));
417 std::generate(w182.begin(), w182.end(), std::ref(f16rng));
418 std::generate(w183.begin(), w183.end(), std::ref(f16rng));
419 std::generate(w184.begin(), w184.end(), std::ref(f16rng));
420 std::generate(w185.begin(), w185.end(), std::ref(f16rng));
421 std::generate(w186.begin(), w186.end(), std::ref(f16rng));
422 std::generate(w187.begin(), w187.end(), std::ref(f16rng));
423 std::generate(w188.begin(), w188.end(), std::ref(f16rng));
424 std::generate(w189.begin(), w189.end(), std::ref(f16rng));
425 std::generate(w190.begin(), w190.end(), std::ref(f16rng));
426 std::generate(w191.begin(), w191.end(), std::ref(f16rng));
427 std::generate(w192.begin(), w192.end(), std::ref(f16rng));
428 std::generate(w193.begin(), w193.end(), std::ref(f16rng));
429 std::generate(w194.begin(), w194.end(), std::ref(f16rng));
430 std::generate(w195.begin(), w195.end(), std::ref(f16rng));
431 std::generate(w196.begin(), w196.end(), std::ref(f16rng));
432 std::generate(w197.begin(), w197.end(), std::ref(f16rng));
433 std::generate(w198.begin(), w198.end(), std::ref(f16rng));
434 std::generate(w199.begin(), w199.end(), std::ref(f16rng));
435 std::generate(w200.begin(), w200.end(), std::ref(f16rng));
436 std::generate(w201.begin(), w201.end(), std::ref(f16rng));
437 std::generate(w202.begin(), w202.end(), std::ref(f16rng));
438 std::generate(w203.begin(), w203.end(), std::ref(f16rng));
439 std::generate(w204.begin(), w204.end(), std::ref(f16rng));
440 std::generate(w205.begin(), w205.end(), std::ref(f16rng));
441 std::generate(w206.begin(), w206.end(), std::ref(f16rng));
442 std::generate(w207.begin(), w207.end(), std::ref(f16rng));
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800443
444 ExecutionPlan operators;
445 xnn_status status;
446
447 xnn_operator_t op0 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -0700448 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800449 0 /* top padding */, 1 /* right padding */,
450 1 /* bottom padding */, 0 /* left padding */,
451 3 /* kernel height */, 3 /* kernel width */,
452 2 /* subsampling height */, 2 /* subsampling width */,
453 1 /* dilation_height */, 1 /* dilation_width */,
454 1 /* groups */,
455 3 /* input channels per group */,
456 16 /* output_channels_per_group */,
457 3 /* input pixel stride */,
458 16 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -0800459 w100.data(), w101.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800460 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
461 0 /* flags */,
462 &op0);
463 if (status != xnn_status_success) {
464 std::cerr << "failed to create operation #0" << std::endl;
465 return ExecutionPlan();
466 }
467 operators.emplace_back(op0, xnn_delete_operator);
468
469 xnn_operator_t op1 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -0700470 status = xnn_create_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800471 16 /* channels */,
472 16 /* input stride */,
473 16 /* output stride */,
474 0 /* flags */,
475 &op1);
476 if (status != xnn_status_success) {
477 std::cerr << "failed to create operation #1" << std::endl;
478 return ExecutionPlan();
479 }
480 operators.emplace_back(op1, xnn_delete_operator);
481
482 xnn_operator_t op2 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -0700483 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800484 0 /* top padding */, 1 /* right padding */,
485 1 /* bottom padding */, 0 /* left padding */,
486 3 /* kernel height */, 3 /* kernel width */,
487 2 /* subsampling height */, 2 /* subsampling width */,
488 1 /* dilation_height */, 1 /* dilation_width */,
489 16 /* groups */,
490 1 /* input channels per group */,
491 1 /* output_channels_per_group */,
492 16 /* input pixel stride */,
493 16 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -0800494 w102.data(), w103.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800495 0.0f /* output min */, std::numeric_limits<float>::infinity() /* output max */,
496 0 /* flags */,
497 &op2);
498 if (status != xnn_status_success) {
499 std::cerr << "failed to create operation #2" << std::endl;
500 return ExecutionPlan();
501 }
502 operators.emplace_back(op2, xnn_delete_operator);
503
504 xnn_operator_t op3 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -0700505 status = xnn_create_global_average_pooling_nwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800506 16 /* channels */, 16 /* input stride */, 16 /* output stride */,
507 -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
508 0 /* flags */,
509 &op3);
510 if (status != xnn_status_success) {
511 std::cerr << "failed to create operation #3" << std::endl;
512 return ExecutionPlan();
513 }
514 operators.emplace_back(op3, xnn_delete_operator);
515
516 xnn_operator_t op4 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -0700517 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800518 0 /* top padding */, 0 /* right padding */,
519 0 /* bottom padding */, 0 /* left padding */,
520 1 /* kernel height */, 1 /* kernel width */,
521 1 /* subsampling height */, 1 /* subsampling width */,
522 1 /* dilation_height */, 1 /* dilation_width */,
523 1 /* groups */,
524 16 /* input channels per group */,
525 8 /* output_channels_per_group */,
526 16 /* input pixel stride */,
527 8 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -0800528 w104.data(), w105.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800529 0.0f /* output min */, std::numeric_limits<float>::infinity() /* output max */,
530 0 /* flags */,
531 &op4);
532 if (status != xnn_status_success) {
533 std::cerr << "failed to create operation #4" << std::endl;
534 return ExecutionPlan();
535 }
536 operators.emplace_back(op4, xnn_delete_operator);
537
538 xnn_operator_t op5 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -0700539 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800540 0 /* top padding */, 0 /* right padding */,
541 0 /* bottom padding */, 0 /* left padding */,
542 1 /* kernel height */, 1 /* kernel width */,
543 1 /* subsampling height */, 1 /* subsampling width */,
544 1 /* dilation_height */, 1 /* dilation_width */,
545 1 /* groups */,
546 8 /* input channels per group */,
547 16 /* output_channels_per_group */,
548 8 /* input pixel stride */,
549 16 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -0800550 w106.data(), w107.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800551 0.0f /* output min */, +0x1.00014Fp+0 /* output max */,
552 0 /* flags */,
553 &op5);
554 if (status != xnn_status_success) {
555 std::cerr << "failed to create operation #5" << std::endl;
556 return ExecutionPlan();
557 }
558 operators.emplace_back(op5, xnn_delete_operator);
559
560 xnn_operator_t op6 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -0700561 status = xnn_create_multiply_nd_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800562 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
563 0 /* flags */,
564 &op6);
565 if (status != xnn_status_success) {
566 std::cerr << "failed to create operation #6" << std::endl;
567 return ExecutionPlan();
568 }
569 operators.emplace_back(op6, xnn_delete_operator);
570
571 xnn_operator_t op7 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -0700572 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800573 0 /* top padding */, 0 /* right padding */,
574 0 /* bottom padding */, 0 /* left padding */,
575 1 /* kernel height */, 1 /* kernel width */,
576 1 /* subsampling height */, 1 /* subsampling width */,
577 1 /* dilation_height */, 1 /* dilation_width */,
578 1 /* groups */,
579 16 /* input channels per group */,
580 16 /* output_channels_per_group */,
581 16 /* input pixel stride */,
582 16 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -0800583 w108.data(), w109.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800584 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
585 0 /* flags */,
586 &op7);
587 if (status != xnn_status_success) {
588 std::cerr << "failed to create operation #7" << std::endl;
589 return ExecutionPlan();
590 }
591 operators.emplace_back(op7, xnn_delete_operator);
592
593 xnn_operator_t op8 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -0700594 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800595 0 /* top padding */, 0 /* right padding */,
596 0 /* bottom padding */, 0 /* left padding */,
597 1 /* kernel height */, 1 /* kernel width */,
598 1 /* subsampling height */, 1 /* subsampling width */,
599 1 /* dilation_height */, 1 /* dilation_width */,
600 1 /* groups */,
601 16 /* input channels per group */,
602 72 /* output_channels_per_group */,
603 16 /* input pixel stride */,
604 72 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -0800605 w110.data(), w111.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800606 0.0f /* output min */, std::numeric_limits<float>::infinity() /* output max */,
607 0 /* flags */,
608 &op8);
609 if (status != xnn_status_success) {
610 std::cerr << "failed to create operation #8" << std::endl;
611 return ExecutionPlan();
612 }
613 operators.emplace_back(op8, xnn_delete_operator);
614
615 xnn_operator_t op9 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -0700616 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800617 0 /* top padding */, 1 /* right padding */,
618 1 /* bottom padding */, 0 /* left padding */,
619 3 /* kernel height */, 3 /* kernel width */,
620 2 /* subsampling height */, 2 /* subsampling width */,
621 1 /* dilation_height */, 1 /* dilation_width */,
622 72 /* groups */,
623 1 /* input channels per group */,
624 1 /* output_channels_per_group */,
625 72 /* input pixel stride */,
626 72 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -0800627 w112.data(), w113.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800628 0.0f /* output min */, std::numeric_limits<float>::infinity() /* output max */,
629 0 /* flags */,
630 &op9);
631 if (status != xnn_status_success) {
632 std::cerr << "failed to create operation #9" << std::endl;
633 return ExecutionPlan();
634 }
635 operators.emplace_back(op9, xnn_delete_operator);
636
637 xnn_operator_t op10 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -0700638 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800639 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 72 /* input channels per group */,
646 24 /* output_channels_per_group */,
647 72 /* input pixel stride */,
648 24 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -0800649 w114.data(), w115.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800650 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
651 0 /* flags */,
652 &op10);
653 if (status != xnn_status_success) {
654 std::cerr << "failed to create operation #10" << std::endl;
655 return ExecutionPlan();
656 }
657 operators.emplace_back(op10, xnn_delete_operator);
658
659 xnn_operator_t op11 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -0700660 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800661 0 /* top padding */, 0 /* right padding */,
662 0 /* bottom padding */, 0 /* left padding */,
663 1 /* kernel height */, 1 /* kernel width */,
664 1 /* subsampling height */, 1 /* subsampling width */,
665 1 /* dilation_height */, 1 /* dilation_width */,
666 1 /* groups */,
667 24 /* input channels per group */,
668 88 /* output_channels_per_group */,
669 24 /* input pixel stride */,
670 88 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -0800671 w116.data(), w117.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800672 0.0f /* output min */, std::numeric_limits<float>::infinity() /* output max */,
673 0 /* flags */,
674 &op11);
675 if (status != xnn_status_success) {
676 std::cerr << "failed to create operation #11" << std::endl;
677 return ExecutionPlan();
678 }
679 operators.emplace_back(op11, xnn_delete_operator);
680
681 xnn_operator_t op12 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -0700682 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800683 1 /* top padding */, 1 /* right padding */,
684 1 /* bottom padding */, 1 /* left padding */,
685 3 /* kernel height */, 3 /* kernel width */,
686 1 /* subsampling height */, 1 /* subsampling width */,
687 1 /* dilation_height */, 1 /* dilation_width */,
688 88 /* groups */,
689 1 /* input channels per group */,
690 1 /* output_channels_per_group */,
691 88 /* input pixel stride */,
692 88 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -0800693 w118.data(), w119.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800694 0.0f /* output min */, std::numeric_limits<float>::infinity() /* output max */,
695 0 /* flags */,
696 &op12);
697 if (status != xnn_status_success) {
698 std::cerr << "failed to create operation #12" << std::endl;
699 return ExecutionPlan();
700 }
701 operators.emplace_back(op12, xnn_delete_operator);
702
703 xnn_operator_t op13 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -0700704 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800705 0 /* top padding */, 0 /* right padding */,
706 0 /* bottom padding */, 0 /* left padding */,
707 1 /* kernel height */, 1 /* kernel width */,
708 1 /* subsampling height */, 1 /* subsampling width */,
709 1 /* dilation_height */, 1 /* dilation_width */,
710 1 /* groups */,
711 88 /* input channels per group */,
712 24 /* output_channels_per_group */,
713 88 /* input pixel stride */,
714 24 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -0800715 w120.data(), w121.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800716 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
717 0 /* flags */,
718 &op13);
719 if (status != xnn_status_success) {
720 std::cerr << "failed to create operation #13" << std::endl;
721 return ExecutionPlan();
722 }
723 operators.emplace_back(op13, xnn_delete_operator);
724
725 xnn_operator_t op14 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -0700726 status = xnn_create_add_nd_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800727 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
728 0 /* flags */,
729 &op14);
730 if (status != xnn_status_success) {
731 std::cerr << "failed to create operation #14" << std::endl;
732 return ExecutionPlan();
733 }
734 operators.emplace_back(op14, xnn_delete_operator);
735
736 xnn_operator_t op15 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -0700737 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800738 0 /* top padding */, 0 /* right padding */,
739 0 /* bottom padding */, 0 /* left padding */,
740 1 /* kernel height */, 1 /* kernel width */,
741 1 /* subsampling height */, 1 /* subsampling width */,
742 1 /* dilation_height */, 1 /* dilation_width */,
743 1 /* groups */,
744 24 /* input channels per group */,
745 96 /* output_channels_per_group */,
746 24 /* input pixel stride */,
747 96 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -0800748 w122.data(), w123.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800749 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
750 0 /* flags */,
751 &op15);
752 if (status != xnn_status_success) {
753 std::cerr << "failed to create operation #15" << std::endl;
754 return ExecutionPlan();
755 }
756 operators.emplace_back(op15, xnn_delete_operator);
757
758 xnn_operator_t op16 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -0700759 status = xnn_create_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800760 96 /* channels */,
761 96 /* input stride */,
762 96 /* output stride */,
763 0 /* flags */,
764 &op16);
765 if (status != xnn_status_success) {
766 std::cerr << "failed to create operation #16" << std::endl;
767 return ExecutionPlan();
768 }
769 operators.emplace_back(op16, xnn_delete_operator);
770
771 xnn_operator_t op17 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -0700772 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800773 1 /* top padding */, 2 /* right padding */,
774 2 /* bottom padding */, 1 /* left padding */,
775 5 /* kernel height */, 5 /* kernel width */,
776 2 /* subsampling height */, 2 /* subsampling width */,
777 1 /* dilation_height */, 1 /* dilation_width */,
778 96 /* groups */,
779 1 /* input channels per group */,
780 1 /* output_channels_per_group */,
781 96 /* input pixel stride */,
782 96 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -0800783 w124.data(), w125.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800784 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
785 0 /* flags */,
786 &op17);
787 if (status != xnn_status_success) {
788 std::cerr << "failed to create operation #17" << std::endl;
789 return ExecutionPlan();
790 }
791 operators.emplace_back(op17, xnn_delete_operator);
792
793 xnn_operator_t op18 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -0700794 status = xnn_create_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800795 96 /* channels */,
796 96 /* input stride */,
797 96 /* output stride */,
798 0 /* flags */,
799 &op18);
800 if (status != xnn_status_success) {
801 std::cerr << "failed to create operation #18" << std::endl;
802 return ExecutionPlan();
803 }
804 operators.emplace_back(op18, xnn_delete_operator);
805
806 xnn_operator_t op19 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -0700807 status = xnn_create_global_average_pooling_nwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800808 96 /* channels */, 96 /* input stride */, 96 /* output stride */,
809 -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
810 0 /* flags */,
811 &op19);
812 if (status != xnn_status_success) {
813 std::cerr << "failed to create operation #19" << std::endl;
814 return ExecutionPlan();
815 }
816 operators.emplace_back(op19, xnn_delete_operator);
817
818 xnn_operator_t op20 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -0700819 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800820 0 /* top padding */, 0 /* right padding */,
821 0 /* bottom padding */, 0 /* left padding */,
822 1 /* kernel height */, 1 /* kernel width */,
823 1 /* subsampling height */, 1 /* subsampling width */,
824 1 /* dilation_height */, 1 /* dilation_width */,
825 1 /* groups */,
826 96 /* input channels per group */,
827 24 /* output_channels_per_group */,
828 96 /* input pixel stride */,
829 24 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -0800830 w126.data(), w127.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800831 0.0f /* output min */, std::numeric_limits<float>::infinity() /* output max */,
832 0 /* flags */,
833 &op20);
834 if (status != xnn_status_success) {
835 std::cerr << "failed to create operation #20" << std::endl;
836 return ExecutionPlan();
837 }
838 operators.emplace_back(op20, xnn_delete_operator);
839
840 xnn_operator_t op21 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -0700841 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800842 0 /* top padding */, 0 /* right padding */,
843 0 /* bottom padding */, 0 /* left padding */,
844 1 /* kernel height */, 1 /* kernel width */,
845 1 /* subsampling height */, 1 /* subsampling width */,
846 1 /* dilation_height */, 1 /* dilation_width */,
847 1 /* groups */,
848 24 /* input channels per group */,
849 96 /* output_channels_per_group */,
850 24 /* input pixel stride */,
851 96 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -0800852 w128.data(), w129.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800853 0.0f /* output min */, +0x1.00014Fp+0 /* output max */,
854 0 /* flags */,
855 &op21);
856 if (status != xnn_status_success) {
857 std::cerr << "failed to create operation #21" << std::endl;
858 return ExecutionPlan();
859 }
860 operators.emplace_back(op21, xnn_delete_operator);
861
862 xnn_operator_t op22 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -0700863 status = xnn_create_multiply_nd_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800864 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
865 0 /* flags */,
866 &op22);
867 if (status != xnn_status_success) {
868 std::cerr << "failed to create operation #22" << std::endl;
869 return ExecutionPlan();
870 }
871 operators.emplace_back(op22, xnn_delete_operator);
872
873 xnn_operator_t op23 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -0700874 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800875 0 /* top padding */, 0 /* right padding */,
876 0 /* bottom padding */, 0 /* left padding */,
877 1 /* kernel height */, 1 /* kernel width */,
878 1 /* subsampling height */, 1 /* subsampling width */,
879 1 /* dilation_height */, 1 /* dilation_width */,
880 1 /* groups */,
881 96 /* input channels per group */,
882 40 /* output_channels_per_group */,
883 96 /* input pixel stride */,
884 40 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -0800885 w130.data(), w131.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800886 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
887 0 /* flags */,
888 &op23);
889 if (status != xnn_status_success) {
890 std::cerr << "failed to create operation #23" << std::endl;
891 return ExecutionPlan();
892 }
893 operators.emplace_back(op23, xnn_delete_operator);
894
895 xnn_operator_t op24 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -0700896 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800897 0 /* top padding */, 0 /* right padding */,
898 0 /* bottom padding */, 0 /* left padding */,
899 1 /* kernel height */, 1 /* kernel width */,
900 1 /* subsampling height */, 1 /* subsampling width */,
901 1 /* dilation_height */, 1 /* dilation_width */,
902 1 /* groups */,
903 40 /* input channels per group */,
904 240 /* output_channels_per_group */,
905 40 /* input pixel stride */,
906 240 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -0800907 w132.data(), w133.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800908 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
909 0 /* flags */,
910 &op24);
911 if (status != xnn_status_success) {
912 std::cerr << "failed to create operation #24" << std::endl;
913 return ExecutionPlan();
914 }
915 operators.emplace_back(op24, xnn_delete_operator);
916
917 xnn_operator_t op25 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -0700918 status = xnn_create_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800919 240 /* channels */,
920 240 /* input stride */,
921 240 /* output stride */,
922 0 /* flags */,
923 &op25);
924 if (status != xnn_status_success) {
925 std::cerr << "failed to create operation #25" << std::endl;
926 return ExecutionPlan();
927 }
928 operators.emplace_back(op25, xnn_delete_operator);
929
930 xnn_operator_t op26 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -0700931 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800932 2 /* top padding */, 2 /* right padding */,
933 2 /* bottom padding */, 2 /* left padding */,
934 5 /* kernel height */, 5 /* kernel width */,
935 1 /* subsampling height */, 1 /* subsampling width */,
936 1 /* dilation_height */, 1 /* dilation_width */,
937 240 /* groups */,
938 1 /* input channels per group */,
939 1 /* output_channels_per_group */,
940 240 /* input pixel stride */,
941 240 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -0800942 w134.data(), w135.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800943 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
944 0 /* flags */,
945 &op26);
946 if (status != xnn_status_success) {
947 std::cerr << "failed to create operation #26" << std::endl;
948 return ExecutionPlan();
949 }
950 operators.emplace_back(op26, xnn_delete_operator);
951
952 xnn_operator_t op27 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -0700953 status = xnn_create_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800954 240 /* channels */,
955 240 /* input stride */,
956 240 /* output stride */,
957 0 /* flags */,
958 &op27);
959 if (status != xnn_status_success) {
960 std::cerr << "failed to create operation #27" << std::endl;
961 return ExecutionPlan();
962 }
963 operators.emplace_back(op27, xnn_delete_operator);
964
965 xnn_operator_t op28 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -0700966 status = xnn_create_global_average_pooling_nwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800967 240 /* channels */, 240 /* input stride */, 240 /* output stride */,
968 -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
969 0 /* flags */,
970 &op28);
971 if (status != xnn_status_success) {
972 std::cerr << "failed to create operation #28" << std::endl;
973 return ExecutionPlan();
974 }
975 operators.emplace_back(op28, xnn_delete_operator);
976
977 xnn_operator_t op29 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -0700978 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800979 0 /* top padding */, 0 /* right padding */,
980 0 /* bottom padding */, 0 /* left padding */,
981 1 /* kernel height */, 1 /* kernel width */,
982 1 /* subsampling height */, 1 /* subsampling width */,
983 1 /* dilation_height */, 1 /* dilation_width */,
984 1 /* groups */,
985 240 /* input channels per group */,
986 64 /* output_channels_per_group */,
987 240 /* input pixel stride */,
988 64 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -0800989 w136.data(), w137.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800990 0.0f /* output min */, std::numeric_limits<float>::infinity() /* output max */,
991 0 /* flags */,
992 &op29);
993 if (status != xnn_status_success) {
994 std::cerr << "failed to create operation #29" << std::endl;
995 return ExecutionPlan();
996 }
997 operators.emplace_back(op29, xnn_delete_operator);
998
999 xnn_operator_t op30 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001000 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001001 0 /* top padding */, 0 /* right padding */,
1002 0 /* bottom padding */, 0 /* left padding */,
1003 1 /* kernel height */, 1 /* kernel width */,
1004 1 /* subsampling height */, 1 /* subsampling width */,
1005 1 /* dilation_height */, 1 /* dilation_width */,
1006 1 /* groups */,
1007 64 /* input channels per group */,
1008 240 /* output_channels_per_group */,
1009 64 /* input pixel stride */,
1010 240 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001011 w138.data(), w139.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001012 0.0f /* output min */, +0x1.00014Fp+0 /* output max */,
1013 0 /* flags */,
1014 &op30);
1015 if (status != xnn_status_success) {
1016 std::cerr << "failed to create operation #30" << std::endl;
1017 return ExecutionPlan();
1018 }
1019 operators.emplace_back(op30, xnn_delete_operator);
1020
1021 xnn_operator_t op31 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001022 status = xnn_create_multiply_nd_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001023 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1024 0 /* flags */,
1025 &op31);
1026 if (status != xnn_status_success) {
1027 std::cerr << "failed to create operation #31" << std::endl;
1028 return ExecutionPlan();
1029 }
1030 operators.emplace_back(op31, xnn_delete_operator);
1031
1032 xnn_operator_t op32 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001033 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001034 0 /* top padding */, 0 /* right padding */,
1035 0 /* bottom padding */, 0 /* left padding */,
1036 1 /* kernel height */, 1 /* kernel width */,
1037 1 /* subsampling height */, 1 /* subsampling width */,
1038 1 /* dilation_height */, 1 /* dilation_width */,
1039 1 /* groups */,
1040 240 /* input channels per group */,
1041 40 /* output_channels_per_group */,
1042 240 /* input pixel stride */,
1043 40 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001044 w140.data(), w141.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001045 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1046 0 /* flags */,
1047 &op32);
1048 if (status != xnn_status_success) {
1049 std::cerr << "failed to create operation #32" << std::endl;
1050 return ExecutionPlan();
1051 }
1052 operators.emplace_back(op32, xnn_delete_operator);
1053
1054 xnn_operator_t op33 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001055 status = xnn_create_add_nd_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001056 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1057 0 /* flags */,
1058 &op33);
1059 if (status != xnn_status_success) {
1060 std::cerr << "failed to create operation #33" << std::endl;
1061 return ExecutionPlan();
1062 }
1063 operators.emplace_back(op33, xnn_delete_operator);
1064
1065 xnn_operator_t op34 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001066 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001067 0 /* top padding */, 0 /* right padding */,
1068 0 /* bottom padding */, 0 /* left padding */,
1069 1 /* kernel height */, 1 /* kernel width */,
1070 1 /* subsampling height */, 1 /* subsampling width */,
1071 1 /* dilation_height */, 1 /* dilation_width */,
1072 1 /* groups */,
1073 40 /* input channels per group */,
1074 240 /* output_channels_per_group */,
1075 40 /* input pixel stride */,
1076 240 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001077 w142.data(), w143.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001078 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1079 0 /* flags */,
1080 &op34);
1081 if (status != xnn_status_success) {
1082 std::cerr << "failed to create operation #34" << std::endl;
1083 return ExecutionPlan();
1084 }
1085 operators.emplace_back(op34, xnn_delete_operator);
1086
1087 xnn_operator_t op35 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001088 status = xnn_create_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001089 240 /* channels */,
1090 240 /* input stride */,
1091 240 /* output stride */,
1092 0 /* flags */,
1093 &op35);
1094 if (status != xnn_status_success) {
1095 std::cerr << "failed to create operation #35" << std::endl;
1096 return ExecutionPlan();
1097 }
1098 operators.emplace_back(op35, xnn_delete_operator);
1099
1100 xnn_operator_t op36 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001101 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001102 2 /* top padding */, 2 /* right padding */,
1103 2 /* bottom padding */, 2 /* left padding */,
1104 5 /* kernel height */, 5 /* kernel width */,
1105 1 /* subsampling height */, 1 /* subsampling width */,
1106 1 /* dilation_height */, 1 /* dilation_width */,
1107 240 /* groups */,
1108 1 /* input channels per group */,
1109 1 /* output_channels_per_group */,
1110 240 /* input pixel stride */,
1111 240 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001112 w144.data(), w145.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001113 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1114 0 /* flags */,
1115 &op36);
1116 if (status != xnn_status_success) {
1117 std::cerr << "failed to create operation #36" << std::endl;
1118 return ExecutionPlan();
1119 }
1120 operators.emplace_back(op36, xnn_delete_operator);
1121
1122 xnn_operator_t op37 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001123 status = xnn_create_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001124 240 /* channels */,
1125 240 /* input stride */,
1126 240 /* output stride */,
1127 0 /* flags */,
1128 &op37);
1129 if (status != xnn_status_success) {
1130 std::cerr << "failed to create operation #37" << std::endl;
1131 return ExecutionPlan();
1132 }
1133 operators.emplace_back(op37, xnn_delete_operator);
1134
1135 xnn_operator_t op38 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001136 status = xnn_create_global_average_pooling_nwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001137 240 /* channels */, 240 /* input stride */, 240 /* output stride */,
1138 -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
1139 0 /* flags */,
1140 &op38);
1141 if (status != xnn_status_success) {
1142 std::cerr << "failed to create operation #38" << std::endl;
1143 return ExecutionPlan();
1144 }
1145 operators.emplace_back(op38, xnn_delete_operator);
1146
1147 xnn_operator_t op39 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001148 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001149 0 /* top padding */, 0 /* right padding */,
1150 0 /* bottom padding */, 0 /* left padding */,
1151 1 /* kernel height */, 1 /* kernel width */,
1152 1 /* subsampling height */, 1 /* subsampling width */,
1153 1 /* dilation_height */, 1 /* dilation_width */,
1154 1 /* groups */,
1155 240 /* input channels per group */,
1156 64 /* output_channels_per_group */,
1157 240 /* input pixel stride */,
1158 64 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001159 w146.data(), w147.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001160 0.0f /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1161 0 /* flags */,
1162 &op39);
1163 if (status != xnn_status_success) {
1164 std::cerr << "failed to create operation #39" << std::endl;
1165 return ExecutionPlan();
1166 }
1167 operators.emplace_back(op39, xnn_delete_operator);
1168
1169 xnn_operator_t op40 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001170 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001171 0 /* top padding */, 0 /* right padding */,
1172 0 /* bottom padding */, 0 /* left padding */,
1173 1 /* kernel height */, 1 /* kernel width */,
1174 1 /* subsampling height */, 1 /* subsampling width */,
1175 1 /* dilation_height */, 1 /* dilation_width */,
1176 1 /* groups */,
1177 64 /* input channels per group */,
1178 240 /* output_channels_per_group */,
1179 64 /* input pixel stride */,
1180 240 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001181 w148.data(), w149.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001182 0.0f /* output min */, +0x1.00014Fp+0 /* output max */,
1183 0 /* flags */,
1184 &op40);
1185 if (status != xnn_status_success) {
1186 std::cerr << "failed to create operation #40" << std::endl;
1187 return ExecutionPlan();
1188 }
1189 operators.emplace_back(op40, xnn_delete_operator);
1190
1191 xnn_operator_t op41 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001192 status = xnn_create_multiply_nd_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001193 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1194 0 /* flags */,
1195 &op41);
1196 if (status != xnn_status_success) {
1197 std::cerr << "failed to create operation #41" << std::endl;
1198 return ExecutionPlan();
1199 }
1200 operators.emplace_back(op41, xnn_delete_operator);
1201
1202 xnn_operator_t op42 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001203 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001204 0 /* top padding */, 0 /* right padding */,
1205 0 /* bottom padding */, 0 /* left padding */,
1206 1 /* kernel height */, 1 /* kernel width */,
1207 1 /* subsampling height */, 1 /* subsampling width */,
1208 1 /* dilation_height */, 1 /* dilation_width */,
1209 1 /* groups */,
1210 240 /* input channels per group */,
1211 40 /* output_channels_per_group */,
1212 240 /* input pixel stride */,
1213 40 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001214 w150.data(), w151.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001215 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1216 0 /* flags */,
1217 &op42);
1218 if (status != xnn_status_success) {
1219 std::cerr << "failed to create operation #42" << std::endl;
1220 return ExecutionPlan();
1221 }
1222 operators.emplace_back(op42, xnn_delete_operator);
1223
1224 xnn_operator_t op43 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001225 status = xnn_create_add_nd_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001226 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1227 0 /* flags */,
1228 &op43);
1229 if (status != xnn_status_success) {
1230 std::cerr << "failed to create operation #43" << std::endl;
1231 return ExecutionPlan();
1232 }
1233 operators.emplace_back(op43, xnn_delete_operator);
1234
1235 xnn_operator_t op44 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001236 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001237 0 /* top padding */, 0 /* right padding */,
1238 0 /* bottom padding */, 0 /* left padding */,
1239 1 /* kernel height */, 1 /* kernel width */,
1240 1 /* subsampling height */, 1 /* subsampling width */,
1241 1 /* dilation_height */, 1 /* dilation_width */,
1242 1 /* groups */,
1243 40 /* input channels per group */,
1244 120 /* output_channels_per_group */,
1245 40 /* input pixel stride */,
1246 120 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001247 w152.data(), w153.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001248 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1249 0 /* flags */,
1250 &op44);
1251 if (status != xnn_status_success) {
1252 std::cerr << "failed to create operation #44" << std::endl;
1253 return ExecutionPlan();
1254 }
1255 operators.emplace_back(op44, xnn_delete_operator);
1256
1257 xnn_operator_t op45 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001258 status = xnn_create_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001259 120 /* channels */,
1260 120 /* input stride */,
1261 120 /* output stride */,
1262 0 /* flags */,
1263 &op45);
1264 if (status != xnn_status_success) {
1265 std::cerr << "failed to create operation #45" << std::endl;
1266 return ExecutionPlan();
1267 }
1268 operators.emplace_back(op45, xnn_delete_operator);
1269
1270 xnn_operator_t op46 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001271 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001272 2 /* top padding */, 2 /* right padding */,
1273 2 /* bottom padding */, 2 /* left padding */,
1274 5 /* kernel height */, 5 /* kernel width */,
1275 1 /* subsampling height */, 1 /* subsampling width */,
1276 1 /* dilation_height */, 1 /* dilation_width */,
1277 120 /* groups */,
1278 1 /* input channels per group */,
1279 1 /* output_channels_per_group */,
1280 120 /* input pixel stride */,
1281 120 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001282 w154.data(), w155.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001283 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1284 0 /* flags */,
1285 &op46);
1286 if (status != xnn_status_success) {
1287 std::cerr << "failed to create operation #46" << std::endl;
1288 return ExecutionPlan();
1289 }
1290 operators.emplace_back(op46, xnn_delete_operator);
1291
1292 xnn_operator_t op47 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001293 status = xnn_create_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001294 120 /* channels */,
1295 120 /* input stride */,
1296 120 /* output stride */,
1297 0 /* flags */,
1298 &op47);
1299 if (status != xnn_status_success) {
1300 std::cerr << "failed to create operation #47" << std::endl;
1301 return ExecutionPlan();
1302 }
1303 operators.emplace_back(op47, xnn_delete_operator);
1304
1305 xnn_operator_t op48 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001306 status = xnn_create_global_average_pooling_nwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001307 120 /* channels */, 120 /* input stride */, 120 /* output stride */,
1308 -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
1309 0 /* flags */,
1310 &op48);
1311 if (status != xnn_status_success) {
1312 std::cerr << "failed to create operation #48" << std::endl;
1313 return ExecutionPlan();
1314 }
1315 operators.emplace_back(op48, xnn_delete_operator);
1316
1317 xnn_operator_t op49 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001318 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001319 0 /* top padding */, 0 /* right padding */,
1320 0 /* bottom padding */, 0 /* left padding */,
1321 1 /* kernel height */, 1 /* kernel width */,
1322 1 /* subsampling height */, 1 /* subsampling width */,
1323 1 /* dilation_height */, 1 /* dilation_width */,
1324 1 /* groups */,
1325 120 /* input channels per group */,
1326 32 /* output_channels_per_group */,
1327 120 /* input pixel stride */,
1328 32 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001329 w156.data(), w157.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001330 0.0f /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1331 0 /* flags */,
1332 &op49);
1333 if (status != xnn_status_success) {
1334 std::cerr << "failed to create operation #49" << std::endl;
1335 return ExecutionPlan();
1336 }
1337 operators.emplace_back(op49, xnn_delete_operator);
1338
1339 xnn_operator_t op50 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001340 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001341 0 /* top padding */, 0 /* right padding */,
1342 0 /* bottom padding */, 0 /* left padding */,
1343 1 /* kernel height */, 1 /* kernel width */,
1344 1 /* subsampling height */, 1 /* subsampling width */,
1345 1 /* dilation_height */, 1 /* dilation_width */,
1346 1 /* groups */,
1347 32 /* input channels per group */,
1348 120 /* output_channels_per_group */,
1349 32 /* input pixel stride */,
1350 120 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001351 w158.data(), w159.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001352 0.0f /* output min */, +0x1.00014Fp+0 /* output max */,
1353 0 /* flags */,
1354 &op50);
1355 if (status != xnn_status_success) {
1356 std::cerr << "failed to create operation #50" << std::endl;
1357 return ExecutionPlan();
1358 }
1359 operators.emplace_back(op50, xnn_delete_operator);
1360
1361 xnn_operator_t op51 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001362 status = xnn_create_multiply_nd_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001363 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1364 0 /* flags */,
1365 &op51);
1366 if (status != xnn_status_success) {
1367 std::cerr << "failed to create operation #51" << std::endl;
1368 return ExecutionPlan();
1369 }
1370 operators.emplace_back(op51, xnn_delete_operator);
1371
1372 xnn_operator_t op52 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001373 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001374 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 120 /* input channels per group */,
1381 48 /* output_channels_per_group */,
1382 120 /* input pixel stride */,
1383 48 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001384 w160.data(), w161.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001385 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1386 0 /* flags */,
1387 &op52);
1388 if (status != xnn_status_success) {
1389 std::cerr << "failed to create operation #52" << std::endl;
1390 return ExecutionPlan();
1391 }
1392 operators.emplace_back(op52, xnn_delete_operator);
1393
1394 xnn_operator_t op53 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001395 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001396 0 /* top padding */, 0 /* right padding */,
1397 0 /* bottom padding */, 0 /* left padding */,
1398 1 /* kernel height */, 1 /* kernel width */,
1399 1 /* subsampling height */, 1 /* subsampling width */,
1400 1 /* dilation_height */, 1 /* dilation_width */,
1401 1 /* groups */,
1402 48 /* input channels per group */,
1403 144 /* output_channels_per_group */,
1404 48 /* input pixel stride */,
1405 144 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001406 w162.data(), w163.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001407 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1408 0 /* flags */,
1409 &op53);
1410 if (status != xnn_status_success) {
1411 std::cerr << "failed to create operation #53" << std::endl;
1412 return ExecutionPlan();
1413 }
1414 operators.emplace_back(op53, xnn_delete_operator);
1415
1416 xnn_operator_t op54 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001417 status = xnn_create_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001418 144 /* channels */,
1419 144 /* input stride */,
1420 144 /* output stride */,
1421 0 /* flags */,
1422 &op54);
1423 if (status != xnn_status_success) {
1424 std::cerr << "failed to create operation #54" << std::endl;
1425 return ExecutionPlan();
1426 }
1427 operators.emplace_back(op54, xnn_delete_operator);
1428
1429 xnn_operator_t op55 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001430 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001431 2 /* top padding */, 2 /* right padding */,
1432 2 /* bottom padding */, 2 /* left padding */,
1433 5 /* kernel height */, 5 /* kernel width */,
1434 1 /* subsampling height */, 1 /* subsampling width */,
1435 1 /* dilation_height */, 1 /* dilation_width */,
1436 144 /* groups */,
1437 1 /* input channels per group */,
1438 1 /* output_channels_per_group */,
1439 144 /* input pixel stride */,
1440 144 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001441 w164.data(), w165.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001442 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1443 0 /* flags */,
1444 &op55);
1445 if (status != xnn_status_success) {
1446 std::cerr << "failed to create operation #55" << std::endl;
1447 return ExecutionPlan();
1448 }
1449 operators.emplace_back(op55, xnn_delete_operator);
1450
1451 xnn_operator_t op56 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001452 status = xnn_create_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001453 144 /* channels */,
1454 144 /* input stride */,
1455 144 /* output stride */,
1456 0 /* flags */,
1457 &op56);
1458 if (status != xnn_status_success) {
1459 std::cerr << "failed to create operation #56" << std::endl;
1460 return ExecutionPlan();
1461 }
1462 operators.emplace_back(op56, xnn_delete_operator);
1463
1464 xnn_operator_t op57 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001465 status = xnn_create_global_average_pooling_nwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001466 144 /* channels */, 144 /* input stride */, 144 /* output stride */,
1467 -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
1468 0 /* flags */,
1469 &op57);
1470 if (status != xnn_status_success) {
1471 std::cerr << "failed to create operation #57" << std::endl;
1472 return ExecutionPlan();
1473 }
1474 operators.emplace_back(op57, xnn_delete_operator);
1475
1476 xnn_operator_t op58 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001477 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001478 0 /* top padding */, 0 /* right padding */,
1479 0 /* bottom padding */, 0 /* left padding */,
1480 1 /* kernel height */, 1 /* kernel width */,
1481 1 /* subsampling height */, 1 /* subsampling width */,
1482 1 /* dilation_height */, 1 /* dilation_width */,
1483 1 /* groups */,
1484 144 /* input channels per group */,
1485 40 /* output_channels_per_group */,
1486 144 /* input pixel stride */,
1487 40 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001488 w166.data(), w167.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001489 0.0f /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1490 0 /* flags */,
1491 &op58);
1492 if (status != xnn_status_success) {
1493 std::cerr << "failed to create operation #58" << std::endl;
1494 return ExecutionPlan();
1495 }
1496 operators.emplace_back(op58, xnn_delete_operator);
1497
1498 xnn_operator_t op59 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001499 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001500 0 /* top padding */, 0 /* right padding */,
1501 0 /* bottom padding */, 0 /* left padding */,
1502 1 /* kernel height */, 1 /* kernel width */,
1503 1 /* subsampling height */, 1 /* subsampling width */,
1504 1 /* dilation_height */, 1 /* dilation_width */,
1505 1 /* groups */,
1506 40 /* input channels per group */,
1507 144 /* output_channels_per_group */,
1508 40 /* input pixel stride */,
1509 144 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001510 w168.data(), w169.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001511 0.0f /* output min */, +0x1.00014Fp+0 /* output max */,
1512 0 /* flags */,
1513 &op59);
1514 if (status != xnn_status_success) {
1515 std::cerr << "failed to create operation #59" << std::endl;
1516 return ExecutionPlan();
1517 }
1518 operators.emplace_back(op59, xnn_delete_operator);
1519
1520 xnn_operator_t op60 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001521 status = xnn_create_multiply_nd_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001522 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1523 0 /* flags */,
1524 &op60);
1525 if (status != xnn_status_success) {
1526 std::cerr << "failed to create operation #60" << std::endl;
1527 return ExecutionPlan();
1528 }
1529 operators.emplace_back(op60, xnn_delete_operator);
1530
1531 xnn_operator_t op61 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001532 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001533 0 /* top padding */, 0 /* right padding */,
1534 0 /* bottom padding */, 0 /* left padding */,
1535 1 /* kernel height */, 1 /* kernel width */,
1536 1 /* subsampling height */, 1 /* subsampling width */,
1537 1 /* dilation_height */, 1 /* dilation_width */,
1538 1 /* groups */,
1539 144 /* input channels per group */,
1540 48 /* output_channels_per_group */,
1541 144 /* input pixel stride */,
1542 48 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001543 w170.data(), w171.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001544 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1545 0 /* flags */,
1546 &op61);
1547 if (status != xnn_status_success) {
1548 std::cerr << "failed to create operation #61" << std::endl;
1549 return ExecutionPlan();
1550 }
1551 operators.emplace_back(op61, xnn_delete_operator);
1552
1553 xnn_operator_t op62 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001554 status = xnn_create_add_nd_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001555 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1556 0 /* flags */,
1557 &op62);
1558 if (status != xnn_status_success) {
1559 std::cerr << "failed to create operation #62" << std::endl;
1560 return ExecutionPlan();
1561 }
1562 operators.emplace_back(op62, xnn_delete_operator);
1563
1564 xnn_operator_t op63 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001565 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001566 0 /* top padding */, 0 /* right padding */,
1567 0 /* bottom padding */, 0 /* left padding */,
1568 1 /* kernel height */, 1 /* kernel width */,
1569 1 /* subsampling height */, 1 /* subsampling width */,
1570 1 /* dilation_height */, 1 /* dilation_width */,
1571 1 /* groups */,
1572 48 /* input channels per group */,
1573 288 /* output_channels_per_group */,
1574 48 /* input pixel stride */,
1575 288 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001576 w172.data(), w173.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001577 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1578 0 /* flags */,
1579 &op63);
1580 if (status != xnn_status_success) {
1581 std::cerr << "failed to create operation #63" << std::endl;
1582 return ExecutionPlan();
1583 }
1584 operators.emplace_back(op63, xnn_delete_operator);
1585
1586 xnn_operator_t op64 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001587 status = xnn_create_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001588 288 /* channels */,
1589 288 /* input stride */,
1590 288 /* output stride */,
1591 0 /* flags */,
1592 &op64);
1593 if (status != xnn_status_success) {
1594 std::cerr << "failed to create operation #64" << std::endl;
1595 return ExecutionPlan();
1596 }
1597 operators.emplace_back(op64, xnn_delete_operator);
1598
1599 xnn_operator_t op65 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001600 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001601 1 /* top padding */, 2 /* right padding */,
1602 2 /* bottom padding */, 1 /* left padding */,
1603 5 /* kernel height */, 5 /* kernel width */,
1604 2 /* subsampling height */, 2 /* subsampling width */,
1605 1 /* dilation_height */, 1 /* dilation_width */,
1606 288 /* groups */,
1607 1 /* input channels per group */,
1608 1 /* output_channels_per_group */,
1609 288 /* input pixel stride */,
1610 288 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001611 w174.data(), w175.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001612 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1613 0 /* flags */,
1614 &op65);
1615 if (status != xnn_status_success) {
1616 std::cerr << "failed to create operation #65" << std::endl;
1617 return ExecutionPlan();
1618 }
1619 operators.emplace_back(op65, xnn_delete_operator);
1620
1621 xnn_operator_t op66 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001622 status = xnn_create_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001623 288 /* channels */,
1624 288 /* input stride */,
1625 288 /* output stride */,
1626 0 /* flags */,
1627 &op66);
1628 if (status != xnn_status_success) {
1629 std::cerr << "failed to create operation #66" << std::endl;
1630 return ExecutionPlan();
1631 }
1632 operators.emplace_back(op66, xnn_delete_operator);
1633
1634 xnn_operator_t op67 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001635 status = xnn_create_global_average_pooling_nwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001636 288 /* channels */, 288 /* input stride */, 288 /* output stride */,
1637 -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
1638 0 /* flags */,
1639 &op67);
1640 if (status != xnn_status_success) {
1641 std::cerr << "failed to create operation #67" << std::endl;
1642 return ExecutionPlan();
1643 }
1644 operators.emplace_back(op67, xnn_delete_operator);
1645
1646 xnn_operator_t op68 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001647 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001648 0 /* top padding */, 0 /* right padding */,
1649 0 /* bottom padding */, 0 /* left padding */,
1650 1 /* kernel height */, 1 /* kernel width */,
1651 1 /* subsampling height */, 1 /* subsampling width */,
1652 1 /* dilation_height */, 1 /* dilation_width */,
1653 1 /* groups */,
1654 288 /* input channels per group */,
1655 72 /* output_channels_per_group */,
1656 288 /* input pixel stride */,
1657 72 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001658 w176.data(), w177.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001659 0.0f /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1660 0 /* flags */,
1661 &op68);
1662 if (status != xnn_status_success) {
1663 std::cerr << "failed to create operation #68" << std::endl;
1664 return ExecutionPlan();
1665 }
1666 operators.emplace_back(op68, xnn_delete_operator);
1667
1668 xnn_operator_t op69 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001669 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001670 0 /* top padding */, 0 /* right padding */,
1671 0 /* bottom padding */, 0 /* left padding */,
1672 1 /* kernel height */, 1 /* kernel width */,
1673 1 /* subsampling height */, 1 /* subsampling width */,
1674 1 /* dilation_height */, 1 /* dilation_width */,
1675 1 /* groups */,
1676 72 /* input channels per group */,
1677 288 /* output_channels_per_group */,
1678 72 /* input pixel stride */,
1679 288 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001680 w178.data(), w179.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001681 0.0f /* output min */, +0x1.00014Fp+0 /* output max */,
1682 0 /* flags */,
1683 &op69);
1684 if (status != xnn_status_success) {
1685 std::cerr << "failed to create operation #69" << std::endl;
1686 return ExecutionPlan();
1687 }
1688 operators.emplace_back(op69, xnn_delete_operator);
1689
1690 xnn_operator_t op70 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001691 status = xnn_create_multiply_nd_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001692 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1693 0 /* flags */,
1694 &op70);
1695 if (status != xnn_status_success) {
1696 std::cerr << "failed to create operation #70" << std::endl;
1697 return ExecutionPlan();
1698 }
1699 operators.emplace_back(op70, xnn_delete_operator);
1700
1701 xnn_operator_t op71 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001702 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001703 0 /* top padding */, 0 /* right padding */,
1704 0 /* bottom padding */, 0 /* left padding */,
1705 1 /* kernel height */, 1 /* kernel width */,
1706 1 /* subsampling height */, 1 /* subsampling width */,
1707 1 /* dilation_height */, 1 /* dilation_width */,
1708 1 /* groups */,
1709 288 /* input channels per group */,
1710 96 /* output_channels_per_group */,
1711 288 /* input pixel stride */,
1712 96 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001713 w180.data(), w181.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001714 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1715 0 /* flags */,
1716 &op71);
1717 if (status != xnn_status_success) {
1718 std::cerr << "failed to create operation #71" << std::endl;
1719 return ExecutionPlan();
1720 }
1721 operators.emplace_back(op71, xnn_delete_operator);
1722
1723 xnn_operator_t op72 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001724 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001725 0 /* top padding */, 0 /* right padding */,
1726 0 /* bottom padding */, 0 /* left padding */,
1727 1 /* kernel height */, 1 /* kernel width */,
1728 1 /* subsampling height */, 1 /* subsampling width */,
1729 1 /* dilation_height */, 1 /* dilation_width */,
1730 1 /* groups */,
1731 96 /* input channels per group */,
1732 576 /* output_channels_per_group */,
1733 96 /* input pixel stride */,
1734 576 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001735 w182.data(), w183.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001736 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1737 0 /* flags */,
1738 &op72);
1739 if (status != xnn_status_success) {
1740 std::cerr << "failed to create operation #72" << std::endl;
1741 return ExecutionPlan();
1742 }
1743 operators.emplace_back(op72, xnn_delete_operator);
1744
1745 xnn_operator_t op73 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001746 status = xnn_create_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001747 576 /* channels */,
1748 576 /* input stride */,
1749 576 /* output stride */,
1750 0 /* flags */,
1751 &op73);
1752 if (status != xnn_status_success) {
1753 std::cerr << "failed to create operation #73" << std::endl;
1754 return ExecutionPlan();
1755 }
1756 operators.emplace_back(op73, xnn_delete_operator);
1757
1758 xnn_operator_t op74 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001759 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001760 2 /* top padding */, 2 /* right padding */,
1761 2 /* bottom padding */, 2 /* left padding */,
1762 5 /* kernel height */, 5 /* kernel width */,
1763 1 /* subsampling height */, 1 /* subsampling width */,
1764 1 /* dilation_height */, 1 /* dilation_width */,
1765 576 /* groups */,
1766 1 /* input channels per group */,
1767 1 /* output_channels_per_group */,
1768 576 /* input pixel stride */,
1769 576 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001770 w184.data(), w185.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001771 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1772 0 /* flags */,
1773 &op74);
1774 if (status != xnn_status_success) {
1775 std::cerr << "failed to create operation #74" << std::endl;
1776 return ExecutionPlan();
1777 }
1778 operators.emplace_back(op74, xnn_delete_operator);
1779
1780 xnn_operator_t op75 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001781 status = xnn_create_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001782 576 /* channels */,
1783 576 /* input stride */,
1784 576 /* output stride */,
1785 0 /* flags */,
1786 &op75);
1787 if (status != xnn_status_success) {
1788 std::cerr << "failed to create operation #75" << std::endl;
1789 return ExecutionPlan();
1790 }
1791 operators.emplace_back(op75, xnn_delete_operator);
1792
1793 xnn_operator_t op76 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001794 status = xnn_create_global_average_pooling_nwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001795 576 /* channels */, 576 /* input stride */, 576 /* output stride */,
1796 -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
1797 0 /* flags */,
1798 &op76);
1799 if (status != xnn_status_success) {
1800 std::cerr << "failed to create operation #76" << std::endl;
1801 return ExecutionPlan();
1802 }
1803 operators.emplace_back(op76, xnn_delete_operator);
1804
1805 xnn_operator_t op77 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001806 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001807 0 /* top padding */, 0 /* right padding */,
1808 0 /* bottom padding */, 0 /* left padding */,
1809 1 /* kernel height */, 1 /* kernel width */,
1810 1 /* subsampling height */, 1 /* subsampling width */,
1811 1 /* dilation_height */, 1 /* dilation_width */,
1812 1 /* groups */,
1813 576 /* input channels per group */,
1814 144 /* output_channels_per_group */,
1815 576 /* input pixel stride */,
1816 144 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001817 w186.data(), w187.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001818 0.0f /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1819 0 /* flags */,
1820 &op77);
1821 if (status != xnn_status_success) {
1822 std::cerr << "failed to create operation #77" << std::endl;
1823 return ExecutionPlan();
1824 }
1825 operators.emplace_back(op77, xnn_delete_operator);
1826
1827 xnn_operator_t op78 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001828 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001829 0 /* top padding */, 0 /* right padding */,
1830 0 /* bottom padding */, 0 /* left padding */,
1831 1 /* kernel height */, 1 /* kernel width */,
1832 1 /* subsampling height */, 1 /* subsampling width */,
1833 1 /* dilation_height */, 1 /* dilation_width */,
1834 1 /* groups */,
1835 144 /* input channels per group */,
1836 576 /* output_channels_per_group */,
1837 144 /* input pixel stride */,
1838 576 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001839 w188.data(), w189.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001840 0.0f /* output min */, +0x1.00014Fp+0 /* output max */,
1841 0 /* flags */,
1842 &op78);
1843 if (status != xnn_status_success) {
1844 std::cerr << "failed to create operation #78" << std::endl;
1845 return ExecutionPlan();
1846 }
1847 operators.emplace_back(op78, xnn_delete_operator);
1848
1849 xnn_operator_t op79 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001850 status = xnn_create_multiply_nd_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001851 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1852 0 /* flags */,
1853 &op79);
1854 if (status != xnn_status_success) {
1855 std::cerr << "failed to create operation #79" << std::endl;
1856 return ExecutionPlan();
1857 }
1858 operators.emplace_back(op79, xnn_delete_operator);
1859
1860 xnn_operator_t op80 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001861 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001862 0 /* top padding */, 0 /* right padding */,
1863 0 /* bottom padding */, 0 /* left padding */,
1864 1 /* kernel height */, 1 /* kernel width */,
1865 1 /* subsampling height */, 1 /* subsampling width */,
1866 1 /* dilation_height */, 1 /* dilation_width */,
1867 1 /* groups */,
1868 576 /* input channels per group */,
1869 96 /* output_channels_per_group */,
1870 576 /* input pixel stride */,
1871 96 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001872 w190.data(), w191.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001873 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1874 0 /* flags */,
1875 &op80);
1876 if (status != xnn_status_success) {
1877 std::cerr << "failed to create operation #80" << std::endl;
1878 return ExecutionPlan();
1879 }
1880 operators.emplace_back(op80, xnn_delete_operator);
1881
1882 xnn_operator_t op81 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001883 status = xnn_create_add_nd_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001884 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1885 0 /* flags */,
1886 &op81);
1887 if (status != xnn_status_success) {
1888 std::cerr << "failed to create operation #81" << std::endl;
1889 return ExecutionPlan();
1890 }
1891 operators.emplace_back(op81, xnn_delete_operator);
1892
1893 xnn_operator_t op82 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001894 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001895 0 /* top padding */, 0 /* right padding */,
1896 0 /* bottom padding */, 0 /* left padding */,
1897 1 /* kernel height */, 1 /* kernel width */,
1898 1 /* subsampling height */, 1 /* subsampling width */,
1899 1 /* dilation_height */, 1 /* dilation_width */,
1900 1 /* groups */,
1901 96 /* input channels per group */,
1902 576 /* output_channels_per_group */,
1903 96 /* input pixel stride */,
1904 576 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001905 w192.data(), w193.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001906 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1907 0 /* flags */,
1908 &op82);
1909 if (status != xnn_status_success) {
1910 std::cerr << "failed to create operation #82" << std::endl;
1911 return ExecutionPlan();
1912 }
1913 operators.emplace_back(op82, xnn_delete_operator);
1914
1915 xnn_operator_t op83 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001916 status = xnn_create_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001917 576 /* channels */,
1918 576 /* input stride */,
1919 576 /* output stride */,
1920 0 /* flags */,
1921 &op83);
1922 if (status != xnn_status_success) {
1923 std::cerr << "failed to create operation #83" << std::endl;
1924 return ExecutionPlan();
1925 }
1926 operators.emplace_back(op83, xnn_delete_operator);
1927
1928 xnn_operator_t op84 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001929 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001930 2 /* top padding */, 2 /* right padding */,
1931 2 /* bottom padding */, 2 /* left padding */,
1932 5 /* kernel height */, 5 /* kernel width */,
1933 1 /* subsampling height */, 1 /* subsampling width */,
1934 1 /* dilation_height */, 1 /* dilation_width */,
1935 576 /* groups */,
1936 1 /* input channels per group */,
1937 1 /* output_channels_per_group */,
1938 576 /* input pixel stride */,
1939 576 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001940 w194.data(), w195.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001941 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1942 0 /* flags */,
1943 &op84);
1944 if (status != xnn_status_success) {
1945 std::cerr << "failed to create operation #84" << std::endl;
1946 return ExecutionPlan();
1947 }
1948 operators.emplace_back(op84, xnn_delete_operator);
1949
1950 xnn_operator_t op85 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001951 status = xnn_create_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001952 576 /* channels */,
1953 576 /* input stride */,
1954 576 /* output stride */,
1955 0 /* flags */,
1956 &op85);
1957 if (status != xnn_status_success) {
1958 std::cerr << "failed to create operation #85" << std::endl;
1959 return ExecutionPlan();
1960 }
1961 operators.emplace_back(op85, xnn_delete_operator);
1962
1963 xnn_operator_t op86 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001964 status = xnn_create_global_average_pooling_nwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001965 576 /* channels */, 576 /* input stride */, 576 /* output stride */,
1966 -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
1967 0 /* flags */,
1968 &op86);
1969 if (status != xnn_status_success) {
1970 std::cerr << "failed to create operation #86" << std::endl;
1971 return ExecutionPlan();
1972 }
1973 operators.emplace_back(op86, xnn_delete_operator);
1974
1975 xnn_operator_t op87 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001976 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001977 0 /* top padding */, 0 /* right padding */,
1978 0 /* bottom padding */, 0 /* left padding */,
1979 1 /* kernel height */, 1 /* kernel width */,
1980 1 /* subsampling height */, 1 /* subsampling width */,
1981 1 /* dilation_height */, 1 /* dilation_width */,
1982 1 /* groups */,
1983 576 /* input channels per group */,
1984 144 /* output_channels_per_group */,
1985 576 /* input pixel stride */,
1986 144 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001987 w196.data(), w197.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001988 0.0f /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1989 0 /* flags */,
1990 &op87);
1991 if (status != xnn_status_success) {
1992 std::cerr << "failed to create operation #87" << std::endl;
1993 return ExecutionPlan();
1994 }
1995 operators.emplace_back(op87, xnn_delete_operator);
1996
1997 xnn_operator_t op88 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001998 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001999 0 /* top padding */, 0 /* right padding */,
2000 0 /* bottom padding */, 0 /* left padding */,
2001 1 /* kernel height */, 1 /* kernel width */,
2002 1 /* subsampling height */, 1 /* subsampling width */,
2003 1 /* dilation_height */, 1 /* dilation_width */,
2004 1 /* groups */,
2005 144 /* input channels per group */,
2006 576 /* output_channels_per_group */,
2007 144 /* input pixel stride */,
2008 576 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002009 w198.data(), w199.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002010 0.0f /* output min */, +0x1.00014Fp+0 /* output max */,
2011 0 /* flags */,
2012 &op88);
2013 if (status != xnn_status_success) {
2014 std::cerr << "failed to create operation #88" << std::endl;
2015 return ExecutionPlan();
2016 }
2017 operators.emplace_back(op88, xnn_delete_operator);
2018
2019 xnn_operator_t op89 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07002020 status = xnn_create_multiply_nd_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002021 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
2022 0 /* flags */,
2023 &op89);
2024 if (status != xnn_status_success) {
2025 std::cerr << "failed to create operation #89" << std::endl;
2026 return ExecutionPlan();
2027 }
2028 operators.emplace_back(op89, xnn_delete_operator);
2029
2030 xnn_operator_t op90 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07002031 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002032 0 /* top padding */, 0 /* right padding */,
2033 0 /* bottom padding */, 0 /* left padding */,
2034 1 /* kernel height */, 1 /* kernel width */,
2035 1 /* subsampling height */, 1 /* subsampling width */,
2036 1 /* dilation_height */, 1 /* dilation_width */,
2037 1 /* groups */,
2038 576 /* input channels per group */,
2039 96 /* output_channels_per_group */,
2040 576 /* input pixel stride */,
2041 96 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002042 w200.data(), w201.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002043 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
2044 0 /* flags */,
2045 &op90);
2046 if (status != xnn_status_success) {
2047 std::cerr << "failed to create operation #90" << std::endl;
2048 return ExecutionPlan();
2049 }
2050 operators.emplace_back(op90, xnn_delete_operator);
2051
2052 xnn_operator_t op91 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07002053 status = xnn_create_add_nd_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002054 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
2055 0 /* flags */,
2056 &op91);
2057 if (status != xnn_status_success) {
2058 std::cerr << "failed to create operation #91" << std::endl;
2059 return ExecutionPlan();
2060 }
2061 operators.emplace_back(op91, xnn_delete_operator);
2062
2063 xnn_operator_t op92 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07002064 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002065 0 /* top padding */, 0 /* right padding */,
2066 0 /* bottom padding */, 0 /* left padding */,
2067 1 /* kernel height */, 1 /* kernel width */,
2068 1 /* subsampling height */, 1 /* subsampling width */,
2069 1 /* dilation_height */, 1 /* dilation_width */,
2070 1 /* groups */,
2071 96 /* input channels per group */,
2072 576 /* output_channels_per_group */,
2073 96 /* input pixel stride */,
2074 576 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002075 w202.data(), w203.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002076 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
2077 0 /* flags */,
2078 &op92);
2079 if (status != xnn_status_success) {
2080 std::cerr << "failed to create operation #92" << std::endl;
2081 return ExecutionPlan();
2082 }
2083 operators.emplace_back(op92, xnn_delete_operator);
2084
2085 xnn_operator_t op93 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07002086 status = xnn_create_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002087 576 /* channels */,
2088 576 /* input stride */,
2089 576 /* output stride */,
2090 0 /* flags */,
2091 &op93);
2092 if (status != xnn_status_success) {
2093 std::cerr << "failed to create operation #93" << std::endl;
2094 return ExecutionPlan();
2095 }
2096 operators.emplace_back(op93, xnn_delete_operator);
2097
2098 xnn_operator_t op94 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07002099 status = xnn_create_global_average_pooling_nwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002100 576 /* channels */, 576 /* input stride */, 576 /* output stride */,
2101 -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
2102 0 /* flags */,
2103 &op94);
2104 if (status != xnn_status_success) {
2105 std::cerr << "failed to create operation #94" << std::endl;
2106 return ExecutionPlan();
2107 }
2108 operators.emplace_back(op94, xnn_delete_operator);
2109
2110 xnn_operator_t op95 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07002111 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002112 0 /* top padding */, 0 /* right padding */,
2113 0 /* bottom padding */, 0 /* left padding */,
2114 1 /* kernel height */, 1 /* kernel width */,
2115 1 /* subsampling height */, 1 /* subsampling width */,
2116 1 /* dilation_height */, 1 /* dilation_width */,
2117 1 /* groups */,
2118 576 /* input channels per group */,
2119 1024 /* output_channels_per_group */,
2120 576 /* input pixel stride */,
2121 1024 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002122 w204.data(), w205.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002123 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
2124 0 /* flags */,
2125 &op95);
2126 if (status != xnn_status_success) {
2127 std::cerr << "failed to create operation #95" << std::endl;
2128 return ExecutionPlan();
2129 }
2130 operators.emplace_back(op95, xnn_delete_operator);
2131
2132 xnn_operator_t op96 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07002133 status = xnn_create_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002134 1024 /* channels */,
2135 1024 /* input stride */,
2136 1024 /* output stride */,
2137 0 /* flags */,
2138 &op96);
2139 if (status != xnn_status_success) {
2140 std::cerr << "failed to create operation #96" << std::endl;
2141 return ExecutionPlan();
2142 }
2143 operators.emplace_back(op96, xnn_delete_operator);
2144
2145 xnn_operator_t op97 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07002146 status = xnn_create_global_average_pooling_nwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002147 1024 /* channels */, 1024 /* input stride */, 1024 /* output stride */,
2148 -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
2149 0 /* flags */,
2150 &op97);
2151 if (status != xnn_status_success) {
2152 std::cerr << "failed to create operation #97" << std::endl;
2153 return ExecutionPlan();
2154 }
2155 operators.emplace_back(op97, xnn_delete_operator);
2156
2157 xnn_operator_t op98 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07002158 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002159 0 /* top padding */, 0 /* right padding */,
2160 0 /* bottom padding */, 0 /* left padding */,
2161 1 /* kernel height */, 1 /* kernel width */,
2162 1 /* subsampling height */, 1 /* subsampling width */,
2163 1 /* dilation_height */, 1 /* dilation_width */,
2164 1 /* groups */,
2165 1024 /* input channels per group */,
2166 1001 /* output_channels_per_group */,
2167 1024 /* input pixel stride */,
2168 1001 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002169 w206.data(), w207.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002170 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
2171 0 /* flags */,
2172 &op98);
2173 if (status != xnn_status_success) {
2174 std::cerr << "failed to create operation #98" << std::endl;
2175 return ExecutionPlan();
2176 }
2177 operators.emplace_back(op98, xnn_delete_operator);
2178
2179
2180
Marat Dukhan270a2c42020-06-26 16:45:52 -07002181 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002182 op0,
2183 1 /* batch size */, 224 /* input height */, 224 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002184 v0.data() /* input */, v1.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002185 threadpool /* threadpool */);
2186 if (status != xnn_status_success) {
2187 std::cerr << "failed to setup operation #0" << std::endl;
2188 return ExecutionPlan();
2189 }
2190
Marat Dukhan270a2c42020-06-26 16:45:52 -07002191 status = xnn_setup_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002192 op1,
2193 12544 /* batch size */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002194 v1.data() /* input */, v2.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002195 threadpool /* threadpool */);
2196 if (status != xnn_status_success) {
2197 std::cerr << "failed to setup operation #1" << std::endl;
2198 return ExecutionPlan();
2199 }
2200
Marat Dukhan270a2c42020-06-26 16:45:52 -07002201 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002202 op2,
2203 1 /* batch size */, 112 /* input height */, 112 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002204 v2.data() /* input */, v3.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002205 threadpool /* threadpool */);
2206 if (status != xnn_status_success) {
2207 std::cerr << "failed to setup operation #2" << std::endl;
2208 return ExecutionPlan();
2209 }
2210
Marat Dukhan270a2c42020-06-26 16:45:52 -07002211 status = xnn_setup_global_average_pooling_nwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002212 op3,
2213 1 /* batch size */, 3136 /* width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002214 v3.data() /* input */, v4.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002215 threadpool /* threadpool */);
2216 if (status != xnn_status_success) {
2217 std::cerr << "failed to setup operation #3" << std::endl;
2218 return ExecutionPlan();
2219 }
2220
Marat Dukhan270a2c42020-06-26 16:45:52 -07002221 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002222 op4,
2223 1 /* batch size */, 1 /* input height */, 1 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002224 v4.data() /* input */, v5.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002225 threadpool /* threadpool */);
2226 if (status != xnn_status_success) {
2227 std::cerr << "failed to setup operation #4" << std::endl;
2228 return ExecutionPlan();
2229 }
2230
Marat Dukhan270a2c42020-06-26 16:45:52 -07002231 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002232 op5,
2233 1 /* batch size */, 1 /* input height */, 1 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002234 v5.data() /* input */, v6.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002235 threadpool /* threadpool */);
2236 if (status != xnn_status_success) {
2237 std::cerr << "failed to setup operation #5" << std::endl;
2238 return ExecutionPlan();
2239 }
2240
2241 {
2242 const size_t a_shape[] = { 1, 56, 56, 16 };
2243 const size_t b_shape[] = { 1, 1, 1, 16 };
Marat Dukhan270a2c42020-06-26 16:45:52 -07002244 status = xnn_setup_multiply_nd_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002245 op6,
2246 4, a_shape, 4, b_shape,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002247 v3.data() /* a */, v6.data() /* b */, v7.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002248 threadpool /* threadpool */);
2249 }
2250 if (status != xnn_status_success) {
2251 std::cerr << "failed to setup operation #6" << std::endl;
2252 return ExecutionPlan();
2253 }
2254
Marat Dukhan270a2c42020-06-26 16:45:52 -07002255 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002256 op7,
2257 1 /* batch size */, 56 /* input height */, 56 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002258 v7.data() /* input */, v8.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002259 threadpool /* threadpool */);
2260 if (status != xnn_status_success) {
2261 std::cerr << "failed to setup operation #7" << std::endl;
2262 return ExecutionPlan();
2263 }
2264
Marat Dukhan270a2c42020-06-26 16:45:52 -07002265 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002266 op8,
2267 1 /* batch size */, 56 /* input height */, 56 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002268 v8.data() /* input */, v9.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002269 threadpool /* threadpool */);
2270 if (status != xnn_status_success) {
2271 std::cerr << "failed to setup operation #8" << std::endl;
2272 return ExecutionPlan();
2273 }
2274
Marat Dukhan270a2c42020-06-26 16:45:52 -07002275 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002276 op9,
2277 1 /* batch size */, 56 /* input height */, 56 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002278 v9.data() /* input */, v10.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002279 threadpool /* threadpool */);
2280 if (status != xnn_status_success) {
2281 std::cerr << "failed to setup operation #9" << std::endl;
2282 return ExecutionPlan();
2283 }
2284
Marat Dukhan270a2c42020-06-26 16:45:52 -07002285 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002286 op10,
2287 1 /* batch size */, 28 /* input height */, 28 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002288 v10.data() /* input */, v11.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002289 threadpool /* threadpool */);
2290 if (status != xnn_status_success) {
2291 std::cerr << "failed to setup operation #10" << std::endl;
2292 return ExecutionPlan();
2293 }
2294
Marat Dukhan270a2c42020-06-26 16:45:52 -07002295 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002296 op11,
2297 1 /* batch size */, 28 /* input height */, 28 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002298 v11.data() /* input */, v12.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002299 threadpool /* threadpool */);
2300 if (status != xnn_status_success) {
2301 std::cerr << "failed to setup operation #11" << std::endl;
2302 return ExecutionPlan();
2303 }
2304
Marat Dukhan270a2c42020-06-26 16:45:52 -07002305 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002306 op12,
2307 1 /* batch size */, 28 /* input height */, 28 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002308 v12.data() /* input */, v13.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002309 threadpool /* threadpool */);
2310 if (status != xnn_status_success) {
2311 std::cerr << "failed to setup operation #12" << std::endl;
2312 return ExecutionPlan();
2313 }
2314
Marat Dukhan270a2c42020-06-26 16:45:52 -07002315 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002316 op13,
2317 1 /* batch size */, 28 /* input height */, 28 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002318 v13.data() /* input */, v14.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002319 threadpool /* threadpool */);
2320 if (status != xnn_status_success) {
2321 std::cerr << "failed to setup operation #13" << std::endl;
2322 return ExecutionPlan();
2323 }
2324
Marat Dukhanb2164a32020-06-04 19:05:27 -07002325 {
2326 const size_t a_shape[] = { 1, 28, 28, 24 };
2327 const size_t b_shape[] = { 1, 28, 28, 24 };
Marat Dukhan270a2c42020-06-26 16:45:52 -07002328 status = xnn_setup_add_nd_f16(
Marat Dukhanb2164a32020-06-04 19:05:27 -07002329 op14,
2330 4, a_shape, 4, b_shape,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002331 v14.data() /* a */, v11.data() /* b */, v15.data() /* output */,
Marat Dukhanb2164a32020-06-04 19:05:27 -07002332 threadpool /* threadpool */);
2333 }
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002334 if (status != xnn_status_success) {
2335 std::cerr << "failed to setup operation #14" << std::endl;
2336 return ExecutionPlan();
2337 }
2338
Marat Dukhan270a2c42020-06-26 16:45:52 -07002339 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002340 op15,
2341 1 /* batch size */, 28 /* input height */, 28 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002342 v15.data() /* input */, v16.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002343 threadpool /* threadpool */);
2344 if (status != xnn_status_success) {
2345 std::cerr << "failed to setup operation #15" << std::endl;
2346 return ExecutionPlan();
2347 }
2348
Marat Dukhan270a2c42020-06-26 16:45:52 -07002349 status = xnn_setup_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002350 op16,
2351 784 /* batch size */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002352 v16.data() /* input */, v17.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002353 threadpool /* threadpool */);
2354 if (status != xnn_status_success) {
2355 std::cerr << "failed to setup operation #16" << std::endl;
2356 return ExecutionPlan();
2357 }
2358
Marat Dukhan270a2c42020-06-26 16:45:52 -07002359 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002360 op17,
2361 1 /* batch size */, 28 /* input height */, 28 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002362 v17.data() /* input */, v18.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002363 threadpool /* threadpool */);
2364 if (status != xnn_status_success) {
2365 std::cerr << "failed to setup operation #17" << std::endl;
2366 return ExecutionPlan();
2367 }
2368
Marat Dukhan270a2c42020-06-26 16:45:52 -07002369 status = xnn_setup_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002370 op18,
2371 196 /* batch size */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002372 v18.data() /* input */, v19.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002373 threadpool /* threadpool */);
2374 if (status != xnn_status_success) {
2375 std::cerr << "failed to setup operation #18" << std::endl;
2376 return ExecutionPlan();
2377 }
2378
Marat Dukhan270a2c42020-06-26 16:45:52 -07002379 status = xnn_setup_global_average_pooling_nwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002380 op19,
2381 1 /* batch size */, 196 /* width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002382 v19.data() /* input */, v20.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002383 threadpool /* threadpool */);
2384 if (status != xnn_status_success) {
2385 std::cerr << "failed to setup operation #19" << std::endl;
2386 return ExecutionPlan();
2387 }
2388
Marat Dukhan270a2c42020-06-26 16:45:52 -07002389 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002390 op20,
2391 1 /* batch size */, 1 /* input height */, 1 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002392 v20.data() /* input */, v21.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002393 threadpool /* threadpool */);
2394 if (status != xnn_status_success) {
2395 std::cerr << "failed to setup operation #20" << std::endl;
2396 return ExecutionPlan();
2397 }
2398
Marat Dukhan270a2c42020-06-26 16:45:52 -07002399 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002400 op21,
2401 1 /* batch size */, 1 /* input height */, 1 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002402 v21.data() /* input */, v22.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002403 threadpool /* threadpool */);
2404 if (status != xnn_status_success) {
2405 std::cerr << "failed to setup operation #21" << std::endl;
2406 return ExecutionPlan();
2407 }
2408
2409 {
2410 const size_t a_shape[] = { 1, 14, 14, 96 };
2411 const size_t b_shape[] = { 1, 1, 1, 96 };
Marat Dukhan270a2c42020-06-26 16:45:52 -07002412 status = xnn_setup_multiply_nd_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002413 op22,
2414 4, a_shape, 4, b_shape,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002415 v19.data() /* a */, v22.data() /* b */, v23.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002416 threadpool /* threadpool */);
2417 }
2418 if (status != xnn_status_success) {
2419 std::cerr << "failed to setup operation #22" << std::endl;
2420 return ExecutionPlan();
2421 }
2422
Marat Dukhan270a2c42020-06-26 16:45:52 -07002423 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002424 op23,
2425 1 /* batch size */, 14 /* input height */, 14 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002426 v23.data() /* input */, v24.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002427 threadpool /* threadpool */);
2428 if (status != xnn_status_success) {
2429 std::cerr << "failed to setup operation #23" << std::endl;
2430 return ExecutionPlan();
2431 }
2432
Marat Dukhan270a2c42020-06-26 16:45:52 -07002433 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002434 op24,
2435 1 /* batch size */, 14 /* input height */, 14 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002436 v24.data() /* input */, v25.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002437 threadpool /* threadpool */);
2438 if (status != xnn_status_success) {
2439 std::cerr << "failed to setup operation #24" << std::endl;
2440 return ExecutionPlan();
2441 }
2442
Marat Dukhan270a2c42020-06-26 16:45:52 -07002443 status = xnn_setup_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002444 op25,
2445 196 /* batch size */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002446 v25.data() /* input */, v26.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002447 threadpool /* threadpool */);
2448 if (status != xnn_status_success) {
2449 std::cerr << "failed to setup operation #25" << std::endl;
2450 return ExecutionPlan();
2451 }
2452
Marat Dukhan270a2c42020-06-26 16:45:52 -07002453 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002454 op26,
2455 1 /* batch size */, 14 /* input height */, 14 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002456 v26.data() /* input */, v27.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002457 threadpool /* threadpool */);
2458 if (status != xnn_status_success) {
2459 std::cerr << "failed to setup operation #26" << std::endl;
2460 return ExecutionPlan();
2461 }
2462
Marat Dukhan270a2c42020-06-26 16:45:52 -07002463 status = xnn_setup_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002464 op27,
2465 196 /* batch size */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002466 v27.data() /* input */, v28.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002467 threadpool /* threadpool */);
2468 if (status != xnn_status_success) {
2469 std::cerr << "failed to setup operation #27" << std::endl;
2470 return ExecutionPlan();
2471 }
2472
Marat Dukhan270a2c42020-06-26 16:45:52 -07002473 status = xnn_setup_global_average_pooling_nwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002474 op28,
2475 1 /* batch size */, 196 /* width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002476 v28.data() /* input */, v29.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002477 threadpool /* threadpool */);
2478 if (status != xnn_status_success) {
2479 std::cerr << "failed to setup operation #28" << std::endl;
2480 return ExecutionPlan();
2481 }
2482
Marat Dukhan270a2c42020-06-26 16:45:52 -07002483 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002484 op29,
2485 1 /* batch size */, 1 /* input height */, 1 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002486 v29.data() /* input */, v30.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002487 threadpool /* threadpool */);
2488 if (status != xnn_status_success) {
2489 std::cerr << "failed to setup operation #29" << std::endl;
2490 return ExecutionPlan();
2491 }
2492
Marat Dukhan270a2c42020-06-26 16:45:52 -07002493 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002494 op30,
2495 1 /* batch size */, 1 /* input height */, 1 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002496 v30.data() /* input */, v31.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002497 threadpool /* threadpool */);
2498 if (status != xnn_status_success) {
2499 std::cerr << "failed to setup operation #30" << std::endl;
2500 return ExecutionPlan();
2501 }
2502
2503 {
2504 const size_t a_shape[] = { 1, 14, 14, 240 };
2505 const size_t b_shape[] = { 1, 1, 1, 240 };
Marat Dukhan270a2c42020-06-26 16:45:52 -07002506 status = xnn_setup_multiply_nd_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002507 op31,
2508 4, a_shape, 4, b_shape,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002509 v28.data() /* a */, v31.data() /* b */, v32.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002510 threadpool /* threadpool */);
2511 }
2512 if (status != xnn_status_success) {
2513 std::cerr << "failed to setup operation #31" << std::endl;
2514 return ExecutionPlan();
2515 }
2516
Marat Dukhan270a2c42020-06-26 16:45:52 -07002517 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002518 op32,
2519 1 /* batch size */, 14 /* input height */, 14 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002520 v32.data() /* input */, v33.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002521 threadpool /* threadpool */);
2522 if (status != xnn_status_success) {
2523 std::cerr << "failed to setup operation #32" << std::endl;
2524 return ExecutionPlan();
2525 }
2526
Marat Dukhanb2164a32020-06-04 19:05:27 -07002527 {
2528 const size_t a_shape[] = { 1, 14, 14, 40 };
2529 const size_t b_shape[] = { 1, 14, 14, 40 };
Marat Dukhan270a2c42020-06-26 16:45:52 -07002530 status = xnn_setup_add_nd_f16(
Marat Dukhanb2164a32020-06-04 19:05:27 -07002531 op33,
2532 4, a_shape, 4, b_shape,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002533 v33.data() /* a */, v24.data() /* b */, v34.data() /* output */,
Marat Dukhanb2164a32020-06-04 19:05:27 -07002534 threadpool /* threadpool */);
2535 }
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002536 if (status != xnn_status_success) {
2537 std::cerr << "failed to setup operation #33" << std::endl;
2538 return ExecutionPlan();
2539 }
2540
Marat Dukhan270a2c42020-06-26 16:45:52 -07002541 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002542 op34,
2543 1 /* batch size */, 14 /* input height */, 14 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002544 v34.data() /* input */, v35.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002545 threadpool /* threadpool */);
2546 if (status != xnn_status_success) {
2547 std::cerr << "failed to setup operation #34" << std::endl;
2548 return ExecutionPlan();
2549 }
2550
Marat Dukhan270a2c42020-06-26 16:45:52 -07002551 status = xnn_setup_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002552 op35,
2553 196 /* batch size */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002554 v35.data() /* input */, v36.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002555 threadpool /* threadpool */);
2556 if (status != xnn_status_success) {
2557 std::cerr << "failed to setup operation #35" << std::endl;
2558 return ExecutionPlan();
2559 }
2560
Marat Dukhan270a2c42020-06-26 16:45:52 -07002561 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002562 op36,
2563 1 /* batch size */, 14 /* input height */, 14 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002564 v36.data() /* input */, v37.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002565 threadpool /* threadpool */);
2566 if (status != xnn_status_success) {
2567 std::cerr << "failed to setup operation #36" << std::endl;
2568 return ExecutionPlan();
2569 }
2570
Marat Dukhan270a2c42020-06-26 16:45:52 -07002571 status = xnn_setup_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002572 op37,
2573 196 /* batch size */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002574 v37.data() /* input */, v38.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002575 threadpool /* threadpool */);
2576 if (status != xnn_status_success) {
2577 std::cerr << "failed to setup operation #37" << std::endl;
2578 return ExecutionPlan();
2579 }
2580
Marat Dukhan270a2c42020-06-26 16:45:52 -07002581 status = xnn_setup_global_average_pooling_nwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002582 op38,
2583 1 /* batch size */, 196 /* width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002584 v38.data() /* input */, v39.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002585 threadpool /* threadpool */);
2586 if (status != xnn_status_success) {
2587 std::cerr << "failed to setup operation #38" << std::endl;
2588 return ExecutionPlan();
2589 }
2590
Marat Dukhan270a2c42020-06-26 16:45:52 -07002591 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002592 op39,
2593 1 /* batch size */, 1 /* input height */, 1 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002594 v39.data() /* input */, v40.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002595 threadpool /* threadpool */);
2596 if (status != xnn_status_success) {
2597 std::cerr << "failed to setup operation #39" << std::endl;
2598 return ExecutionPlan();
2599 }
2600
Marat Dukhan270a2c42020-06-26 16:45:52 -07002601 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002602 op40,
2603 1 /* batch size */, 1 /* input height */, 1 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002604 v40.data() /* input */, v41.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002605 threadpool /* threadpool */);
2606 if (status != xnn_status_success) {
2607 std::cerr << "failed to setup operation #40" << std::endl;
2608 return ExecutionPlan();
2609 }
2610
2611 {
2612 const size_t a_shape[] = { 1, 14, 14, 240 };
2613 const size_t b_shape[] = { 1, 1, 1, 240 };
Marat Dukhan270a2c42020-06-26 16:45:52 -07002614 status = xnn_setup_multiply_nd_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002615 op41,
2616 4, a_shape, 4, b_shape,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002617 v38.data() /* a */, v41.data() /* b */, v42.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002618 threadpool /* threadpool */);
2619 }
2620 if (status != xnn_status_success) {
2621 std::cerr << "failed to setup operation #41" << std::endl;
2622 return ExecutionPlan();
2623 }
2624
Marat Dukhan270a2c42020-06-26 16:45:52 -07002625 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002626 op42,
2627 1 /* batch size */, 14 /* input height */, 14 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002628 v42.data() /* input */, v43.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002629 threadpool /* threadpool */);
2630 if (status != xnn_status_success) {
2631 std::cerr << "failed to setup operation #42" << std::endl;
2632 return ExecutionPlan();
2633 }
2634
Marat Dukhanb2164a32020-06-04 19:05:27 -07002635 {
2636 const size_t a_shape[] = { 1, 14, 14, 40 };
2637 const size_t b_shape[] = { 1, 14, 14, 40 };
Marat Dukhan270a2c42020-06-26 16:45:52 -07002638 status = xnn_setup_add_nd_f16(
Marat Dukhanb2164a32020-06-04 19:05:27 -07002639 op43,
2640 4, a_shape, 4, b_shape,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002641 v43.data() /* a */, v34.data() /* b */, v44.data() /* output */,
Marat Dukhanb2164a32020-06-04 19:05:27 -07002642 threadpool /* threadpool */);
2643 }
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002644 if (status != xnn_status_success) {
2645 std::cerr << "failed to setup operation #43" << std::endl;
2646 return ExecutionPlan();
2647 }
2648
Marat Dukhan270a2c42020-06-26 16:45:52 -07002649 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002650 op44,
2651 1 /* batch size */, 14 /* input height */, 14 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002652 v44.data() /* input */, v45.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002653 threadpool /* threadpool */);
2654 if (status != xnn_status_success) {
2655 std::cerr << "failed to setup operation #44" << std::endl;
2656 return ExecutionPlan();
2657 }
2658
Marat Dukhan270a2c42020-06-26 16:45:52 -07002659 status = xnn_setup_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002660 op45,
2661 196 /* batch size */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002662 v45.data() /* input */, v46.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002663 threadpool /* threadpool */);
2664 if (status != xnn_status_success) {
2665 std::cerr << "failed to setup operation #45" << std::endl;
2666 return ExecutionPlan();
2667 }
2668
Marat Dukhan270a2c42020-06-26 16:45:52 -07002669 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002670 op46,
2671 1 /* batch size */, 14 /* input height */, 14 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002672 v46.data() /* input */, v47.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002673 threadpool /* threadpool */);
2674 if (status != xnn_status_success) {
2675 std::cerr << "failed to setup operation #46" << std::endl;
2676 return ExecutionPlan();
2677 }
2678
Marat Dukhan270a2c42020-06-26 16:45:52 -07002679 status = xnn_setup_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002680 op47,
2681 196 /* batch size */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002682 v47.data() /* input */, v48.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002683 threadpool /* threadpool */);
2684 if (status != xnn_status_success) {
2685 std::cerr << "failed to setup operation #47" << std::endl;
2686 return ExecutionPlan();
2687 }
2688
Marat Dukhan270a2c42020-06-26 16:45:52 -07002689 status = xnn_setup_global_average_pooling_nwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002690 op48,
2691 1 /* batch size */, 196 /* width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002692 v48.data() /* input */, v49.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002693 threadpool /* threadpool */);
2694 if (status != xnn_status_success) {
2695 std::cerr << "failed to setup operation #48" << std::endl;
2696 return ExecutionPlan();
2697 }
2698
Marat Dukhan270a2c42020-06-26 16:45:52 -07002699 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002700 op49,
2701 1 /* batch size */, 1 /* input height */, 1 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002702 v49.data() /* input */, v50.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002703 threadpool /* threadpool */);
2704 if (status != xnn_status_success) {
2705 std::cerr << "failed to setup operation #49" << std::endl;
2706 return ExecutionPlan();
2707 }
2708
Marat Dukhan270a2c42020-06-26 16:45:52 -07002709 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002710 op50,
2711 1 /* batch size */, 1 /* input height */, 1 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002712 v50.data() /* input */, v51.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002713 threadpool /* threadpool */);
2714 if (status != xnn_status_success) {
2715 std::cerr << "failed to setup operation #50" << std::endl;
2716 return ExecutionPlan();
2717 }
2718
2719 {
2720 const size_t a_shape[] = { 1, 14, 14, 120 };
2721 const size_t b_shape[] = { 1, 1, 1, 120 };
Marat Dukhan270a2c42020-06-26 16:45:52 -07002722 status = xnn_setup_multiply_nd_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002723 op51,
2724 4, a_shape, 4, b_shape,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002725 v48.data() /* a */, v51.data() /* b */, v52.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002726 threadpool /* threadpool */);
2727 }
2728 if (status != xnn_status_success) {
2729 std::cerr << "failed to setup operation #51" << std::endl;
2730 return ExecutionPlan();
2731 }
2732
Marat Dukhan270a2c42020-06-26 16:45:52 -07002733 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002734 op52,
2735 1 /* batch size */, 14 /* input height */, 14 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002736 v52.data() /* input */, v53.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002737 threadpool /* threadpool */);
2738 if (status != xnn_status_success) {
2739 std::cerr << "failed to setup operation #52" << std::endl;
2740 return ExecutionPlan();
2741 }
2742
Marat Dukhan270a2c42020-06-26 16:45:52 -07002743 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002744 op53,
2745 1 /* batch size */, 14 /* input height */, 14 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002746 v53.data() /* input */, v54.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002747 threadpool /* threadpool */);
2748 if (status != xnn_status_success) {
2749 std::cerr << "failed to setup operation #53" << std::endl;
2750 return ExecutionPlan();
2751 }
2752
Marat Dukhan270a2c42020-06-26 16:45:52 -07002753 status = xnn_setup_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002754 op54,
2755 196 /* batch size */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002756 v54.data() /* input */, v55.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002757 threadpool /* threadpool */);
2758 if (status != xnn_status_success) {
2759 std::cerr << "failed to setup operation #54" << std::endl;
2760 return ExecutionPlan();
2761 }
2762
Marat Dukhan270a2c42020-06-26 16:45:52 -07002763 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002764 op55,
2765 1 /* batch size */, 14 /* input height */, 14 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002766 v55.data() /* input */, v56.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002767 threadpool /* threadpool */);
2768 if (status != xnn_status_success) {
2769 std::cerr << "failed to setup operation #55" << std::endl;
2770 return ExecutionPlan();
2771 }
2772
Marat Dukhan270a2c42020-06-26 16:45:52 -07002773 status = xnn_setup_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002774 op56,
2775 196 /* batch size */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002776 v56.data() /* input */, v57.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002777 threadpool /* threadpool */);
2778 if (status != xnn_status_success) {
2779 std::cerr << "failed to setup operation #56" << std::endl;
2780 return ExecutionPlan();
2781 }
2782
Marat Dukhan270a2c42020-06-26 16:45:52 -07002783 status = xnn_setup_global_average_pooling_nwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002784 op57,
2785 1 /* batch size */, 196 /* width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002786 v57.data() /* input */, v58.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002787 threadpool /* threadpool */);
2788 if (status != xnn_status_success) {
2789 std::cerr << "failed to setup operation #57" << std::endl;
2790 return ExecutionPlan();
2791 }
2792
Marat Dukhan270a2c42020-06-26 16:45:52 -07002793 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002794 op58,
2795 1 /* batch size */, 1 /* input height */, 1 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002796 v58.data() /* input */, v59.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002797 threadpool /* threadpool */);
2798 if (status != xnn_status_success) {
2799 std::cerr << "failed to setup operation #58" << std::endl;
2800 return ExecutionPlan();
2801 }
2802
Marat Dukhan270a2c42020-06-26 16:45:52 -07002803 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002804 op59,
2805 1 /* batch size */, 1 /* input height */, 1 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002806 v59.data() /* input */, v60.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002807 threadpool /* threadpool */);
2808 if (status != xnn_status_success) {
2809 std::cerr << "failed to setup operation #59" << std::endl;
2810 return ExecutionPlan();
2811 }
2812
2813 {
2814 const size_t a_shape[] = { 1, 14, 14, 144 };
2815 const size_t b_shape[] = { 1, 1, 1, 144 };
Marat Dukhan270a2c42020-06-26 16:45:52 -07002816 status = xnn_setup_multiply_nd_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002817 op60,
2818 4, a_shape, 4, b_shape,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002819 v57.data() /* a */, v60.data() /* b */, v61.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002820 threadpool /* threadpool */);
2821 }
2822 if (status != xnn_status_success) {
2823 std::cerr << "failed to setup operation #60" << std::endl;
2824 return ExecutionPlan();
2825 }
2826
Marat Dukhan270a2c42020-06-26 16:45:52 -07002827 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002828 op61,
2829 1 /* batch size */, 14 /* input height */, 14 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002830 v61.data() /* input */, v62.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002831 threadpool /* threadpool */);
2832 if (status != xnn_status_success) {
2833 std::cerr << "failed to setup operation #61" << std::endl;
2834 return ExecutionPlan();
2835 }
2836
Marat Dukhanb2164a32020-06-04 19:05:27 -07002837 {
2838 const size_t a_shape[] = { 1, 14, 14, 48 };
2839 const size_t b_shape[] = { 1, 14, 14, 48 };
Marat Dukhan270a2c42020-06-26 16:45:52 -07002840 status = xnn_setup_add_nd_f16(
Marat Dukhanb2164a32020-06-04 19:05:27 -07002841 op62,
2842 4, a_shape, 4, b_shape,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002843 v62.data() /* a */, v53.data() /* b */, v63.data() /* output */,
Marat Dukhanb2164a32020-06-04 19:05:27 -07002844 threadpool /* threadpool */);
2845 }
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002846 if (status != xnn_status_success) {
2847 std::cerr << "failed to setup operation #62" << std::endl;
2848 return ExecutionPlan();
2849 }
2850
Marat Dukhan270a2c42020-06-26 16:45:52 -07002851 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002852 op63,
2853 1 /* batch size */, 14 /* input height */, 14 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002854 v63.data() /* input */, v64.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002855 threadpool /* threadpool */);
2856 if (status != xnn_status_success) {
2857 std::cerr << "failed to setup operation #63" << std::endl;
2858 return ExecutionPlan();
2859 }
2860
Marat Dukhan270a2c42020-06-26 16:45:52 -07002861 status = xnn_setup_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002862 op64,
2863 196 /* batch size */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002864 v64.data() /* input */, v65.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002865 threadpool /* threadpool */);
2866 if (status != xnn_status_success) {
2867 std::cerr << "failed to setup operation #64" << std::endl;
2868 return ExecutionPlan();
2869 }
2870
Marat Dukhan270a2c42020-06-26 16:45:52 -07002871 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002872 op65,
2873 1 /* batch size */, 14 /* input height */, 14 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002874 v65.data() /* input */, v66.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002875 threadpool /* threadpool */);
2876 if (status != xnn_status_success) {
2877 std::cerr << "failed to setup operation #65" << std::endl;
2878 return ExecutionPlan();
2879 }
2880
Marat Dukhan270a2c42020-06-26 16:45:52 -07002881 status = xnn_setup_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002882 op66,
2883 49 /* batch size */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002884 v66.data() /* input */, v67.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002885 threadpool /* threadpool */);
2886 if (status != xnn_status_success) {
2887 std::cerr << "failed to setup operation #66" << std::endl;
2888 return ExecutionPlan();
2889 }
2890
Marat Dukhan270a2c42020-06-26 16:45:52 -07002891 status = xnn_setup_global_average_pooling_nwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002892 op67,
2893 1 /* batch size */, 49 /* width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002894 v67.data() /* input */, v68.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002895 threadpool /* threadpool */);
2896 if (status != xnn_status_success) {
2897 std::cerr << "failed to setup operation #67" << std::endl;
2898 return ExecutionPlan();
2899 }
2900
Marat Dukhan270a2c42020-06-26 16:45:52 -07002901 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002902 op68,
2903 1 /* batch size */, 1 /* input height */, 1 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002904 v68.data() /* input */, v69.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002905 threadpool /* threadpool */);
2906 if (status != xnn_status_success) {
2907 std::cerr << "failed to setup operation #68" << std::endl;
2908 return ExecutionPlan();
2909 }
2910
Marat Dukhan270a2c42020-06-26 16:45:52 -07002911 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002912 op69,
2913 1 /* batch size */, 1 /* input height */, 1 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002914 v69.data() /* input */, v70.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002915 threadpool /* threadpool */);
2916 if (status != xnn_status_success) {
2917 std::cerr << "failed to setup operation #69" << std::endl;
2918 return ExecutionPlan();
2919 }
2920
2921 {
2922 const size_t a_shape[] = { 1, 7, 7, 288 };
2923 const size_t b_shape[] = { 1, 1, 1, 288 };
Marat Dukhan270a2c42020-06-26 16:45:52 -07002924 status = xnn_setup_multiply_nd_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002925 op70,
2926 4, a_shape, 4, b_shape,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002927 v67.data() /* a */, v70.data() /* b */, v71.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002928 threadpool /* threadpool */);
2929 }
2930 if (status != xnn_status_success) {
2931 std::cerr << "failed to setup operation #70" << std::endl;
2932 return ExecutionPlan();
2933 }
2934
Marat Dukhan270a2c42020-06-26 16:45:52 -07002935 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002936 op71,
2937 1 /* batch size */, 7 /* input height */, 7 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002938 v71.data() /* input */, v72.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002939 threadpool /* threadpool */);
2940 if (status != xnn_status_success) {
2941 std::cerr << "failed to setup operation #71" << std::endl;
2942 return ExecutionPlan();
2943 }
2944
Marat Dukhan270a2c42020-06-26 16:45:52 -07002945 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002946 op72,
2947 1 /* batch size */, 7 /* input height */, 7 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002948 v72.data() /* input */, v73.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002949 threadpool /* threadpool */);
2950 if (status != xnn_status_success) {
2951 std::cerr << "failed to setup operation #72" << std::endl;
2952 return ExecutionPlan();
2953 }
2954
Marat Dukhan270a2c42020-06-26 16:45:52 -07002955 status = xnn_setup_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002956 op73,
2957 49 /* batch size */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002958 v73.data() /* input */, v74.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002959 threadpool /* threadpool */);
2960 if (status != xnn_status_success) {
2961 std::cerr << "failed to setup operation #73" << std::endl;
2962 return ExecutionPlan();
2963 }
2964
Marat Dukhan270a2c42020-06-26 16:45:52 -07002965 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002966 op74,
2967 1 /* batch size */, 7 /* input height */, 7 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002968 v74.data() /* input */, v75.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002969 threadpool /* threadpool */);
2970 if (status != xnn_status_success) {
2971 std::cerr << "failed to setup operation #74" << std::endl;
2972 return ExecutionPlan();
2973 }
2974
Marat Dukhan270a2c42020-06-26 16:45:52 -07002975 status = xnn_setup_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002976 op75,
2977 49 /* batch size */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002978 v75.data() /* input */, v76.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002979 threadpool /* threadpool */);
2980 if (status != xnn_status_success) {
2981 std::cerr << "failed to setup operation #75" << std::endl;
2982 return ExecutionPlan();
2983 }
2984
Marat Dukhan270a2c42020-06-26 16:45:52 -07002985 status = xnn_setup_global_average_pooling_nwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002986 op76,
2987 1 /* batch size */, 49 /* width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002988 v76.data() /* input */, v77.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002989 threadpool /* threadpool */);
2990 if (status != xnn_status_success) {
2991 std::cerr << "failed to setup operation #76" << std::endl;
2992 return ExecutionPlan();
2993 }
2994
Marat Dukhan270a2c42020-06-26 16:45:52 -07002995 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002996 op77,
2997 1 /* batch size */, 1 /* input height */, 1 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002998 v77.data() /* input */, v78.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002999 threadpool /* threadpool */);
3000 if (status != xnn_status_success) {
3001 std::cerr << "failed to setup operation #77" << std::endl;
3002 return ExecutionPlan();
3003 }
3004
Marat Dukhan270a2c42020-06-26 16:45:52 -07003005 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003006 op78,
3007 1 /* batch size */, 1 /* input height */, 1 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003008 v78.data() /* input */, v79.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003009 threadpool /* threadpool */);
3010 if (status != xnn_status_success) {
3011 std::cerr << "failed to setup operation #78" << std::endl;
3012 return ExecutionPlan();
3013 }
3014
3015 {
3016 const size_t a_shape[] = { 1, 7, 7, 576 };
3017 const size_t b_shape[] = { 1, 1, 1, 576 };
Marat Dukhan270a2c42020-06-26 16:45:52 -07003018 status = xnn_setup_multiply_nd_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003019 op79,
3020 4, a_shape, 4, b_shape,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003021 v76.data() /* a */, v79.data() /* b */, v80.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003022 threadpool /* threadpool */);
3023 }
3024 if (status != xnn_status_success) {
3025 std::cerr << "failed to setup operation #79" << std::endl;
3026 return ExecutionPlan();
3027 }
3028
Marat Dukhan270a2c42020-06-26 16:45:52 -07003029 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003030 op80,
3031 1 /* batch size */, 7 /* input height */, 7 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003032 v80.data() /* input */, v81.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003033 threadpool /* threadpool */);
3034 if (status != xnn_status_success) {
3035 std::cerr << "failed to setup operation #80" << std::endl;
3036 return ExecutionPlan();
3037 }
3038
Marat Dukhanb2164a32020-06-04 19:05:27 -07003039 {
3040 const size_t a_shape[] = { 1, 7, 7, 96 };
3041 const size_t b_shape[] = { 1, 7, 7, 96 };
Marat Dukhan270a2c42020-06-26 16:45:52 -07003042 status = xnn_setup_add_nd_f16(
Marat Dukhanb2164a32020-06-04 19:05:27 -07003043 op81,
3044 4, a_shape, 4, b_shape,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003045 v81.data() /* a */, v72.data() /* b */, v82.data() /* output */,
Marat Dukhanb2164a32020-06-04 19:05:27 -07003046 threadpool /* threadpool */);
3047 }
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003048 if (status != xnn_status_success) {
3049 std::cerr << "failed to setup operation #81" << std::endl;
3050 return ExecutionPlan();
3051 }
3052
Marat Dukhan270a2c42020-06-26 16:45:52 -07003053 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003054 op82,
3055 1 /* batch size */, 7 /* input height */, 7 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003056 v82.data() /* input */, v83.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003057 threadpool /* threadpool */);
3058 if (status != xnn_status_success) {
3059 std::cerr << "failed to setup operation #82" << std::endl;
3060 return ExecutionPlan();
3061 }
3062
Marat Dukhan270a2c42020-06-26 16:45:52 -07003063 status = xnn_setup_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003064 op83,
3065 49 /* batch size */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003066 v83.data() /* input */, v84.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003067 threadpool /* threadpool */);
3068 if (status != xnn_status_success) {
3069 std::cerr << "failed to setup operation #83" << std::endl;
3070 return ExecutionPlan();
3071 }
3072
Marat Dukhan270a2c42020-06-26 16:45:52 -07003073 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003074 op84,
3075 1 /* batch size */, 7 /* input height */, 7 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003076 v84.data() /* input */, v85.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003077 threadpool /* threadpool */);
3078 if (status != xnn_status_success) {
3079 std::cerr << "failed to setup operation #84" << std::endl;
3080 return ExecutionPlan();
3081 }
3082
Marat Dukhan270a2c42020-06-26 16:45:52 -07003083 status = xnn_setup_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003084 op85,
3085 49 /* batch size */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003086 v85.data() /* input */, v86.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003087 threadpool /* threadpool */);
3088 if (status != xnn_status_success) {
3089 std::cerr << "failed to setup operation #85" << std::endl;
3090 return ExecutionPlan();
3091 }
3092
Marat Dukhan270a2c42020-06-26 16:45:52 -07003093 status = xnn_setup_global_average_pooling_nwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003094 op86,
3095 1 /* batch size */, 49 /* width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003096 v86.data() /* input */, v87.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003097 threadpool /* threadpool */);
3098 if (status != xnn_status_success) {
3099 std::cerr << "failed to setup operation #86" << std::endl;
3100 return ExecutionPlan();
3101 }
3102
Marat Dukhan270a2c42020-06-26 16:45:52 -07003103 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003104 op87,
3105 1 /* batch size */, 1 /* input height */, 1 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003106 v87.data() /* input */, v88.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003107 threadpool /* threadpool */);
3108 if (status != xnn_status_success) {
3109 std::cerr << "failed to setup operation #87" << std::endl;
3110 return ExecutionPlan();
3111 }
3112
Marat Dukhan270a2c42020-06-26 16:45:52 -07003113 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003114 op88,
3115 1 /* batch size */, 1 /* input height */, 1 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003116 v88.data() /* input */, v89.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003117 threadpool /* threadpool */);
3118 if (status != xnn_status_success) {
3119 std::cerr << "failed to setup operation #88" << std::endl;
3120 return ExecutionPlan();
3121 }
3122
3123 {
3124 const size_t a_shape[] = { 1, 7, 7, 576 };
3125 const size_t b_shape[] = { 1, 1, 1, 576 };
Marat Dukhan270a2c42020-06-26 16:45:52 -07003126 status = xnn_setup_multiply_nd_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003127 op89,
3128 4, a_shape, 4, b_shape,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003129 v86.data() /* a */, v89.data() /* b */, v90.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003130 threadpool /* threadpool */);
3131 }
3132 if (status != xnn_status_success) {
3133 std::cerr << "failed to setup operation #89" << std::endl;
3134 return ExecutionPlan();
3135 }
3136
Marat Dukhan270a2c42020-06-26 16:45:52 -07003137 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003138 op90,
3139 1 /* batch size */, 7 /* input height */, 7 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003140 v90.data() /* input */, v91.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003141 threadpool /* threadpool */);
3142 if (status != xnn_status_success) {
3143 std::cerr << "failed to setup operation #90" << std::endl;
3144 return ExecutionPlan();
3145 }
3146
Marat Dukhanb2164a32020-06-04 19:05:27 -07003147 {
3148 const size_t a_shape[] = { 1, 7, 7, 96 };
3149 const size_t b_shape[] = { 1, 7, 7, 96 };
Marat Dukhan270a2c42020-06-26 16:45:52 -07003150 status = xnn_setup_add_nd_f16(
Marat Dukhanb2164a32020-06-04 19:05:27 -07003151 op91,
3152 4, a_shape, 4, b_shape,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003153 v91.data() /* a */, v82.data() /* b */, v92.data() /* output */,
Marat Dukhanb2164a32020-06-04 19:05:27 -07003154 threadpool /* threadpool */);
3155 }
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003156 if (status != xnn_status_success) {
3157 std::cerr << "failed to setup operation #91" << std::endl;
3158 return ExecutionPlan();
3159 }
3160
Marat Dukhan270a2c42020-06-26 16:45:52 -07003161 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003162 op92,
3163 1 /* batch size */, 7 /* input height */, 7 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003164 v92.data() /* input */, v93.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003165 threadpool /* threadpool */);
3166 if (status != xnn_status_success) {
3167 std::cerr << "failed to setup operation #92" << std::endl;
3168 return ExecutionPlan();
3169 }
3170
Marat Dukhan270a2c42020-06-26 16:45:52 -07003171 status = xnn_setup_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003172 op93,
3173 49 /* batch size */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003174 v93.data() /* input */, v94.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003175 threadpool /* threadpool */);
3176 if (status != xnn_status_success) {
3177 std::cerr << "failed to setup operation #93" << std::endl;
3178 return ExecutionPlan();
3179 }
3180
Marat Dukhan270a2c42020-06-26 16:45:52 -07003181 status = xnn_setup_global_average_pooling_nwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003182 op94,
3183 1 /* batch size */, 49 /* width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003184 v94.data() /* input */, v95.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003185 threadpool /* threadpool */);
3186 if (status != xnn_status_success) {
3187 std::cerr << "failed to setup operation #94" << std::endl;
3188 return ExecutionPlan();
3189 }
3190
Marat Dukhan270a2c42020-06-26 16:45:52 -07003191 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003192 op95,
3193 1 /* batch size */, 1 /* input height */, 1 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003194 v95.data() /* input */, v96.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003195 threadpool /* threadpool */);
3196 if (status != xnn_status_success) {
3197 std::cerr << "failed to setup operation #95" << std::endl;
3198 return ExecutionPlan();
3199 }
3200
Marat Dukhan270a2c42020-06-26 16:45:52 -07003201 status = xnn_setup_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003202 op96,
3203 1 /* batch size */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003204 v96.data() /* input */, v97.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003205 threadpool /* threadpool */);
3206 if (status != xnn_status_success) {
3207 std::cerr << "failed to setup operation #96" << std::endl;
3208 return ExecutionPlan();
3209 }
3210
Marat Dukhan270a2c42020-06-26 16:45:52 -07003211 status = xnn_setup_global_average_pooling_nwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003212 op97,
3213 1 /* batch size */, 1 /* width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003214 v97.data() /* input */, v98.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003215 threadpool /* threadpool */);
3216 if (status != xnn_status_success) {
3217 std::cerr << "failed to setup operation #97" << std::endl;
3218 return ExecutionPlan();
3219 }
3220
Marat Dukhan270a2c42020-06-26 16:45:52 -07003221 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003222 op98,
3223 1 /* batch size */, 1 /* input height */, 1 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003224 v98.data() /* input */, v99.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003225 threadpool /* threadpool */);
3226 if (status != xnn_status_success) {
3227 std::cerr << "failed to setup operation #98" << std::endl;
3228 return ExecutionPlan();
3229 }
3230
3231 #pragma clang diagnostic push
3232 #pragma clang diagnostic ignored "-Wpessimizing-move"
3233 return operators;
3234 #pragma clang diagnostic pop
3235}
3236
3237} // namespace models