blob: 756293111f3522c6e316688176964b415e3b797e [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 FP16MobileNetV3Large(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, 200704> v3;
26 alignas(16) static std::array<uint16_t, 200704> v4;
27 alignas(16) static std::array<uint16_t, 200704> v5;
28 alignas(16) static std::array<uint16_t, 802816> v6;
29 alignas(16) static std::array<uint16_t, 200704> v7;
30 alignas(16) static std::array<uint16_t, 75264> v8;
31 alignas(16) static std::array<uint16_t, 225792> v9;
32 alignas(16) static std::array<uint16_t, 225792> v10;
33 alignas(16) static std::array<uint16_t, 75264> v11;
34 alignas(16) static std::array<uint16_t, 75264> v12;
35 alignas(16) static std::array<uint16_t, 225792> v13;
36 alignas(16) static std::array<uint16_t, 56448> v14;
37 alignas(16) static std::array<uint16_t, 72> v15;
38 alignas(16) static std::array<uint16_t, 24> v16;
39 alignas(16) static std::array<uint16_t, 72> v17;
40 alignas(16) static std::array<uint16_t, 56448> v18;
41 alignas(16) static std::array<uint16_t, 31360> v19;
42 alignas(16) static std::array<uint16_t, 94080> v20;
43 alignas(16) static std::array<uint16_t, 94080> v21;
44 alignas(16) static std::array<uint16_t, 120> v22;
45 alignas(16) static std::array<uint16_t, 32> v23;
46 alignas(16) static std::array<uint16_t, 120> v24;
47 alignas(16) static std::array<uint16_t, 94080> v25;
48 alignas(16) static std::array<uint16_t, 31360> v26;
49 alignas(16) static std::array<uint16_t, 31360> v27;
50 alignas(16) static std::array<uint16_t, 94080> v28;
51 alignas(16) static std::array<uint16_t, 94080> v29;
52 alignas(16) static std::array<uint16_t, 120> v30;
53 alignas(16) static std::array<uint16_t, 32> v31;
54 alignas(16) static std::array<uint16_t, 120> v32;
55 alignas(16) static std::array<uint16_t, 94080> v33;
56 alignas(16) static std::array<uint16_t, 31360> v34;
57 alignas(16) static std::array<uint16_t, 31360> v35;
58 alignas(16) static std::array<uint16_t, 188160> v36;
59 alignas(16) static std::array<uint16_t, 188160> v37;
60 alignas(16) static std::array<uint16_t, 47040> v38;
61 alignas(16) static std::array<uint16_t, 47040> v39;
62 alignas(16) static std::array<uint16_t, 15680> v40;
63 alignas(16) static std::array<uint16_t, 39200> v41;
64 alignas(16) static std::array<uint16_t, 39200> v42;
65 alignas(16) static std::array<uint16_t, 39200> v43;
66 alignas(16) static std::array<uint16_t, 39200> v44;
67 alignas(16) static std::array<uint16_t, 15680> v45;
68 alignas(16) static std::array<uint16_t, 15680> v46;
69 alignas(16) static std::array<uint16_t, 36064> v47;
70 alignas(16) static std::array<uint16_t, 36064> v48;
71 alignas(16) static std::array<uint16_t, 36064> v49;
72 alignas(16) static std::array<uint16_t, 36064> v50;
73 alignas(16) static std::array<uint16_t, 15680> v51;
74 alignas(16) static std::array<uint16_t, 15680> v52;
75 alignas(16) static std::array<uint16_t, 36064> v53;
76 alignas(16) static std::array<uint16_t, 36064> v54;
77 alignas(16) static std::array<uint16_t, 36064> v55;
78 alignas(16) static std::array<uint16_t, 36064> v56;
79 alignas(16) static std::array<uint16_t, 15680> v57;
80 alignas(16) static std::array<uint16_t, 15680> v58;
81 alignas(16) static std::array<uint16_t, 94080> v59;
82 alignas(16) static std::array<uint16_t, 94080> v60;
83 alignas(16) static std::array<uint16_t, 94080> v61;
84 alignas(16) static std::array<uint16_t, 94080> v62;
85 alignas(16) static std::array<uint16_t, 480> v63;
86 alignas(16) static std::array<uint16_t, 120> v64;
87 alignas(16) static std::array<uint16_t, 480> v65;
88 alignas(16) static std::array<uint16_t, 94080> v66;
89 alignas(16) static std::array<uint16_t, 21952> v67;
90 alignas(16) static std::array<uint16_t, 131712> v68;
91 alignas(16) static std::array<uint16_t, 131712> v69;
92 alignas(16) static std::array<uint16_t, 131712> v70;
93 alignas(16) static std::array<uint16_t, 131712> v71;
94 alignas(16) static std::array<uint16_t, 672> v72;
95 alignas(16) static std::array<uint16_t, 168> v73;
96 alignas(16) static std::array<uint16_t, 672> v74;
97 alignas(16) static std::array<uint16_t, 131712> v75;
98 alignas(16) static std::array<uint16_t, 21952> v76;
99 alignas(16) static std::array<uint16_t, 21952> v77;
100 alignas(16) static std::array<uint16_t, 131712> v78;
101 alignas(16) static std::array<uint16_t, 131712> v79;
102 alignas(16) static std::array<uint16_t, 32928> v80;
103 alignas(16) static std::array<uint16_t, 32928> v81;
104 alignas(16) static std::array<uint16_t, 672> v82;
105 alignas(16) static std::array<uint16_t, 168> v83;
106 alignas(16) static std::array<uint16_t, 672> v84;
107 alignas(16) static std::array<uint16_t, 32928> v85;
108 alignas(16) static std::array<uint16_t, 7840> v86;
109 alignas(16) static std::array<uint16_t, 47040> v87;
110 alignas(16) static std::array<uint16_t, 47040> v88;
111 alignas(16) static std::array<uint16_t, 47040> v89;
112 alignas(16) static std::array<uint16_t, 47040> v90;
113 alignas(16) static std::array<uint16_t, 960> v91;
114 alignas(16) static std::array<uint16_t, 240> v92;
115 alignas(16) static std::array<uint16_t, 960> v93;
116 alignas(16) static std::array<uint16_t, 47040> v94;
117 alignas(16) static std::array<uint16_t, 7840> v95;
118 alignas(16) static std::array<uint16_t, 7840> v96;
119 alignas(16) static std::array<uint16_t, 47040> v97;
120 alignas(16) static std::array<uint16_t, 47040> v98;
121 alignas(16) static std::array<uint16_t, 47040> v99;
122 alignas(16) static std::array<uint16_t, 47040> v100;
123 alignas(16) static std::array<uint16_t, 960> v101;
124 alignas(16) static std::array<uint16_t, 240> v102;
125 alignas(16) static std::array<uint16_t, 960> v103;
126 alignas(16) static std::array<uint16_t, 47040> v104;
127 alignas(16) static std::array<uint16_t, 7840> v105;
128 alignas(16) static std::array<uint16_t, 7840> v106;
129 alignas(16) static std::array<uint16_t, 47040> v107;
130 alignas(16) static std::array<uint16_t, 47040> v108;
131 alignas(16) static std::array<uint16_t, 960> v109;
132 alignas(16) static std::array<uint16_t, 1280> v110;
133 alignas(16) static std::array<uint16_t, 1280> v111;
134 alignas(16) static std::array<uint16_t, 1280> v112;
135 alignas(16) static std::array<uint16_t, 1001> v113;
136 alignas(16) static std::array<uint16_t, 432> w114;
137 alignas(16) static std::array<uint16_t, 16> w115;
138 alignas(16) static std::array<uint16_t, 144> w116;
139 alignas(16) static std::array<uint16_t, 16> w117;
140 alignas(16) static std::array<uint16_t, 256> w118;
141 alignas(16) static std::array<uint16_t, 16> w119;
142 alignas(16) static std::array<uint16_t, 1024> w120;
143 alignas(16) static std::array<uint16_t, 64> w121;
144 alignas(16) static std::array<uint16_t, 576> w122;
145 alignas(16) static std::array<uint16_t, 64> w123;
146 alignas(16) static std::array<uint16_t, 1536> w124;
147 alignas(16) static std::array<uint16_t, 24> w125;
148 alignas(16) static std::array<uint16_t, 1728> w126;
149 alignas(16) static std::array<uint16_t, 72> w127;
150 alignas(16) static std::array<uint16_t, 648> w128;
151 alignas(16) static std::array<uint16_t, 72> w129;
152 alignas(16) static std::array<uint16_t, 1728> w130;
153 alignas(16) static std::array<uint16_t, 24> w131;
154 alignas(16) static std::array<uint16_t, 1728> w132;
155 alignas(16) static std::array<uint16_t, 72> w133;
156 alignas(16) static std::array<uint16_t, 1800> w134;
157 alignas(16) static std::array<uint16_t, 72> w135;
158 alignas(16) static std::array<uint16_t, 1728> w136;
159 alignas(16) static std::array<uint16_t, 24> w137;
160 alignas(16) static std::array<uint16_t, 1728> w138;
161 alignas(16) static std::array<uint16_t, 72> w139;
162 alignas(16) static std::array<uint16_t, 2880> w140;
163 alignas(16) static std::array<uint16_t, 40> w141;
164 alignas(16) static std::array<uint16_t, 4800> w142;
165 alignas(16) static std::array<uint16_t, 120> w143;
166 alignas(16) static std::array<uint16_t, 3000> w144;
167 alignas(16) static std::array<uint16_t, 120> w145;
168 alignas(16) static std::array<uint16_t, 3840> w146;
169 alignas(16) static std::array<uint16_t, 32> w147;
170 alignas(16) static std::array<uint16_t, 3840> w148;
171 alignas(16) static std::array<uint16_t, 120> w149;
172 alignas(16) static std::array<uint16_t, 4800> 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, 4800> w160;
183 alignas(16) static std::array<uint16_t, 40> w161;
184 alignas(16) static std::array<uint16_t, 9600> w162;
185 alignas(16) static std::array<uint16_t, 240> w163;
186 alignas(16) static std::array<uint16_t, 2160> w164;
187 alignas(16) static std::array<uint16_t, 240> w165;
188 alignas(16) static std::array<uint16_t, 19200> w166;
189 alignas(16) static std::array<uint16_t, 80> w167;
190 alignas(16) static std::array<uint16_t, 16000> w168;
191 alignas(16) static std::array<uint16_t, 200> w169;
192 alignas(16) static std::array<uint16_t, 1800> w170;
193 alignas(16) static std::array<uint16_t, 200> w171;
194 alignas(16) static std::array<uint16_t, 16000> w172;
195 alignas(16) static std::array<uint16_t, 80> w173;
196 alignas(16) static std::array<uint16_t, 14720> w174;
197 alignas(16) static std::array<uint16_t, 184> w175;
198 alignas(16) static std::array<uint16_t, 1656> w176;
199 alignas(16) static std::array<uint16_t, 184> w177;
200 alignas(16) static std::array<uint16_t, 14720> w178;
201 alignas(16) static std::array<uint16_t, 80> w179;
202 alignas(16) static std::array<uint16_t, 14720> w180;
203 alignas(16) static std::array<uint16_t, 184> w181;
204 alignas(16) static std::array<uint16_t, 1656> w182;
205 alignas(16) static std::array<uint16_t, 184> w183;
206 alignas(16) static std::array<uint16_t, 14720> w184;
207 alignas(16) static std::array<uint16_t, 80> w185;
208 alignas(16) static std::array<uint16_t, 38400> w186;
209 alignas(16) static std::array<uint16_t, 480> w187;
210 alignas(16) static std::array<uint16_t, 4320> w188;
211 alignas(16) static std::array<uint16_t, 480> w189;
212 alignas(16) static std::array<uint16_t, 57600> w190;
213 alignas(16) static std::array<uint16_t, 120> w191;
214 alignas(16) static std::array<uint16_t, 57600> w192;
215 alignas(16) static std::array<uint16_t, 480> w193;
216 alignas(16) static std::array<uint16_t, 53760> w194;
217 alignas(16) static std::array<uint16_t, 112> w195;
218 alignas(16) static std::array<uint16_t, 75264> w196;
219 alignas(16) static std::array<uint16_t, 672> w197;
220 alignas(16) static std::array<uint16_t, 6048> w198;
221 alignas(16) static std::array<uint16_t, 672> w199;
222 alignas(16) static std::array<uint16_t, 112896> w200;
223 alignas(16) static std::array<uint16_t, 168> w201;
224 alignas(16) static std::array<uint16_t, 112896> w202;
225 alignas(16) static std::array<uint16_t, 672> w203;
226 alignas(16) static std::array<uint16_t, 75264> w204;
227 alignas(16) static std::array<uint16_t, 112> w205;
228 alignas(16) static std::array<uint16_t, 75264> w206;
229 alignas(16) static std::array<uint16_t, 672> w207;
230 alignas(16) static std::array<uint16_t, 16800> w208;
231 alignas(16) static std::array<uint16_t, 672> w209;
232 alignas(16) static std::array<uint16_t, 112896> w210;
233 alignas(16) static std::array<uint16_t, 168> w211;
234 alignas(16) static std::array<uint16_t, 112896> w212;
235 alignas(16) static std::array<uint16_t, 672> w213;
236 alignas(16) static std::array<uint16_t, 107520> w214;
237 alignas(16) static std::array<uint16_t, 160> w215;
238 alignas(16) static std::array<uint16_t, 153600> w216;
239 alignas(16) static std::array<uint16_t, 960> w217;
240 alignas(16) static std::array<uint16_t, 24000> w218;
241 alignas(16) static std::array<uint16_t, 960> w219;
242 alignas(16) static std::array<uint16_t, 230400> w220;
243 alignas(16) static std::array<uint16_t, 240> w221;
244 alignas(16) static std::array<uint16_t, 230400> w222;
245 alignas(16) static std::array<uint16_t, 960> w223;
246 alignas(16) static std::array<uint16_t, 153600> w224;
247 alignas(16) static std::array<uint16_t, 160> w225;
248 alignas(16) static std::array<uint16_t, 153600> w226;
249 alignas(16) static std::array<uint16_t, 960> w227;
250 alignas(16) static std::array<uint16_t, 24000> w228;
251 alignas(16) static std::array<uint16_t, 960> w229;
252 alignas(16) static std::array<uint16_t, 230400> w230;
253 alignas(16) static std::array<uint16_t, 240> w231;
254 alignas(16) static std::array<uint16_t, 230400> w232;
255 alignas(16) static std::array<uint16_t, 960> w233;
256 alignas(16) static std::array<uint16_t, 153600> w234;
257 alignas(16) static std::array<uint16_t, 160> w235;
258 alignas(16) static std::array<uint16_t, 153600> w236;
259 alignas(16) static std::array<uint16_t, 960> w237;
260 alignas(16) static std::array<uint16_t, 1228800> w238;
261 alignas(16) static std::array<uint16_t, 1280> w239;
262 alignas(16) static std::array<uint16_t, 1281280> w240;
263 alignas(16) static std::array<uint16_t, 1001> w241;
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800264
265 std::random_device random_device;
266 auto rng = std::mt19937(random_device());
Marat Dukhan43cb20e2020-06-25 20:18:54 -0700267 auto f32rng = std::bind(std::uniform_real_distribution<float>(-1.0f, +1.0f), std::ref(rng));
Marat Dukhan270a2c42020-06-26 16:45:52 -0700268 auto f16rng = std::bind(fp16_ieee_from_fp32_value, f32rng);
Marat Dukhan52e061d2021-03-09 00:02:44 -0800269 std::generate(v0.begin(), v0.end(), std::ref(f16rng));
270 std::generate(v1.begin(), v1.end(), std::ref(f16rng));
271 std::generate(v2.begin(), v2.end(), std::ref(f16rng));
272 std::generate(v3.begin(), v3.end(), std::ref(f16rng));
273 std::generate(v4.begin(), v4.end(), std::ref(f16rng));
274 std::generate(v5.begin(), v5.end(), std::ref(f16rng));
275 std::generate(v6.begin(), v6.end(), std::ref(f16rng));
276 std::generate(v7.begin(), v7.end(), std::ref(f16rng));
277 std::generate(v8.begin(), v8.end(), std::ref(f16rng));
278 std::generate(v9.begin(), v9.end(), std::ref(f16rng));
279 std::generate(v10.begin(), v10.end(), std::ref(f16rng));
280 std::generate(v11.begin(), v11.end(), std::ref(f16rng));
281 std::generate(v12.begin(), v12.end(), std::ref(f16rng));
282 std::generate(v13.begin(), v13.end(), std::ref(f16rng));
283 std::generate(v14.begin(), v14.end(), std::ref(f16rng));
284 std::generate(v15.begin(), v15.end(), std::ref(f16rng));
285 std::generate(v16.begin(), v16.end(), std::ref(f16rng));
286 std::generate(v17.begin(), v17.end(), std::ref(f16rng));
287 std::generate(v18.begin(), v18.end(), std::ref(f16rng));
288 std::generate(v19.begin(), v19.end(), std::ref(f16rng));
289 std::generate(v20.begin(), v20.end(), std::ref(f16rng));
290 std::generate(v21.begin(), v21.end(), std::ref(f16rng));
291 std::generate(v22.begin(), v22.end(), std::ref(f16rng));
292 std::generate(v23.begin(), v23.end(), std::ref(f16rng));
293 std::generate(v24.begin(), v24.end(), std::ref(f16rng));
294 std::generate(v25.begin(), v25.end(), std::ref(f16rng));
295 std::generate(v26.begin(), v26.end(), std::ref(f16rng));
296 std::generate(v27.begin(), v27.end(), std::ref(f16rng));
297 std::generate(v28.begin(), v28.end(), std::ref(f16rng));
298 std::generate(v29.begin(), v29.end(), std::ref(f16rng));
299 std::generate(v30.begin(), v30.end(), std::ref(f16rng));
300 std::generate(v31.begin(), v31.end(), std::ref(f16rng));
301 std::generate(v32.begin(), v32.end(), std::ref(f16rng));
302 std::generate(v33.begin(), v33.end(), std::ref(f16rng));
303 std::generate(v34.begin(), v34.end(), std::ref(f16rng));
304 std::generate(v35.begin(), v35.end(), std::ref(f16rng));
305 std::generate(v36.begin(), v36.end(), std::ref(f16rng));
306 std::generate(v37.begin(), v37.end(), std::ref(f16rng));
307 std::generate(v38.begin(), v38.end(), std::ref(f16rng));
308 std::generate(v39.begin(), v39.end(), std::ref(f16rng));
309 std::generate(v40.begin(), v40.end(), std::ref(f16rng));
310 std::generate(v41.begin(), v41.end(), std::ref(f16rng));
311 std::generate(v42.begin(), v42.end(), std::ref(f16rng));
312 std::generate(v43.begin(), v43.end(), std::ref(f16rng));
313 std::generate(v44.begin(), v44.end(), std::ref(f16rng));
314 std::generate(v45.begin(), v45.end(), std::ref(f16rng));
315 std::generate(v46.begin(), v46.end(), std::ref(f16rng));
316 std::generate(v47.begin(), v47.end(), std::ref(f16rng));
317 std::generate(v48.begin(), v48.end(), std::ref(f16rng));
318 std::generate(v49.begin(), v49.end(), std::ref(f16rng));
319 std::generate(v50.begin(), v50.end(), std::ref(f16rng));
320 std::generate(v51.begin(), v51.end(), std::ref(f16rng));
321 std::generate(v52.begin(), v52.end(), std::ref(f16rng));
322 std::generate(v53.begin(), v53.end(), std::ref(f16rng));
323 std::generate(v54.begin(), v54.end(), std::ref(f16rng));
324 std::generate(v55.begin(), v55.end(), std::ref(f16rng));
325 std::generate(v56.begin(), v56.end(), std::ref(f16rng));
326 std::generate(v57.begin(), v57.end(), std::ref(f16rng));
327 std::generate(v58.begin(), v58.end(), std::ref(f16rng));
328 std::generate(v59.begin(), v59.end(), std::ref(f16rng));
329 std::generate(v60.begin(), v60.end(), std::ref(f16rng));
330 std::generate(v61.begin(), v61.end(), std::ref(f16rng));
331 std::generate(v62.begin(), v62.end(), std::ref(f16rng));
332 std::generate(v63.begin(), v63.end(), std::ref(f16rng));
333 std::generate(v64.begin(), v64.end(), std::ref(f16rng));
334 std::generate(v65.begin(), v65.end(), std::ref(f16rng));
335 std::generate(v66.begin(), v66.end(), std::ref(f16rng));
336 std::generate(v67.begin(), v67.end(), std::ref(f16rng));
337 std::generate(v68.begin(), v68.end(), std::ref(f16rng));
338 std::generate(v69.begin(), v69.end(), std::ref(f16rng));
339 std::generate(v70.begin(), v70.end(), std::ref(f16rng));
340 std::generate(v71.begin(), v71.end(), std::ref(f16rng));
341 std::generate(v72.begin(), v72.end(), std::ref(f16rng));
342 std::generate(v73.begin(), v73.end(), std::ref(f16rng));
343 std::generate(v74.begin(), v74.end(), std::ref(f16rng));
344 std::generate(v75.begin(), v75.end(), std::ref(f16rng));
345 std::generate(v76.begin(), v76.end(), std::ref(f16rng));
346 std::generate(v77.begin(), v77.end(), std::ref(f16rng));
347 std::generate(v78.begin(), v78.end(), std::ref(f16rng));
348 std::generate(v79.begin(), v79.end(), std::ref(f16rng));
349 std::generate(v80.begin(), v80.end(), std::ref(f16rng));
350 std::generate(v81.begin(), v81.end(), std::ref(f16rng));
351 std::generate(v82.begin(), v82.end(), std::ref(f16rng));
352 std::generate(v83.begin(), v83.end(), std::ref(f16rng));
353 std::generate(v84.begin(), v84.end(), std::ref(f16rng));
354 std::generate(v85.begin(), v85.end(), std::ref(f16rng));
355 std::generate(v86.begin(), v86.end(), std::ref(f16rng));
356 std::generate(v87.begin(), v87.end(), std::ref(f16rng));
357 std::generate(v88.begin(), v88.end(), std::ref(f16rng));
358 std::generate(v89.begin(), v89.end(), std::ref(f16rng));
359 std::generate(v90.begin(), v90.end(), std::ref(f16rng));
360 std::generate(v91.begin(), v91.end(), std::ref(f16rng));
361 std::generate(v92.begin(), v92.end(), std::ref(f16rng));
362 std::generate(v93.begin(), v93.end(), std::ref(f16rng));
363 std::generate(v94.begin(), v94.end(), std::ref(f16rng));
364 std::generate(v95.begin(), v95.end(), std::ref(f16rng));
365 std::generate(v96.begin(), v96.end(), std::ref(f16rng));
366 std::generate(v97.begin(), v97.end(), std::ref(f16rng));
367 std::generate(v98.begin(), v98.end(), std::ref(f16rng));
368 std::generate(v99.begin(), v99.end(), std::ref(f16rng));
369 std::generate(v100.begin(), v100.end(), std::ref(f16rng));
370 std::generate(v101.begin(), v101.end(), std::ref(f16rng));
371 std::generate(v102.begin(), v102.end(), std::ref(f16rng));
372 std::generate(v103.begin(), v103.end(), std::ref(f16rng));
373 std::generate(v104.begin(), v104.end(), std::ref(f16rng));
374 std::generate(v105.begin(), v105.end(), std::ref(f16rng));
375 std::generate(v106.begin(), v106.end(), std::ref(f16rng));
376 std::generate(v107.begin(), v107.end(), std::ref(f16rng));
377 std::generate(v108.begin(), v108.end(), std::ref(f16rng));
378 std::generate(v109.begin(), v109.end(), std::ref(f16rng));
379 std::generate(v110.begin(), v110.end(), std::ref(f16rng));
380 std::generate(v111.begin(), v111.end(), std::ref(f16rng));
381 std::generate(v112.begin(), v112.end(), std::ref(f16rng));
382 std::generate(v113.begin(), v113.end(), std::ref(f16rng));
383 std::generate(w114.begin(), w114.end(), std::ref(f16rng));
384 std::generate(w115.begin(), w115.end(), std::ref(f16rng));
385 std::generate(w116.begin(), w116.end(), std::ref(f16rng));
386 std::generate(w117.begin(), w117.end(), std::ref(f16rng));
387 std::generate(w118.begin(), w118.end(), std::ref(f16rng));
388 std::generate(w119.begin(), w119.end(), std::ref(f16rng));
389 std::generate(w120.begin(), w120.end(), std::ref(f16rng));
390 std::generate(w121.begin(), w121.end(), std::ref(f16rng));
391 std::generate(w122.begin(), w122.end(), std::ref(f16rng));
392 std::generate(w123.begin(), w123.end(), std::ref(f16rng));
393 std::generate(w124.begin(), w124.end(), std::ref(f16rng));
394 std::generate(w125.begin(), w125.end(), std::ref(f16rng));
395 std::generate(w126.begin(), w126.end(), std::ref(f16rng));
396 std::generate(w127.begin(), w127.end(), std::ref(f16rng));
397 std::generate(w128.begin(), w128.end(), std::ref(f16rng));
398 std::generate(w129.begin(), w129.end(), std::ref(f16rng));
399 std::generate(w130.begin(), w130.end(), std::ref(f16rng));
400 std::generate(w131.begin(), w131.end(), std::ref(f16rng));
401 std::generate(w132.begin(), w132.end(), std::ref(f16rng));
402 std::generate(w133.begin(), w133.end(), std::ref(f16rng));
403 std::generate(w134.begin(), w134.end(), std::ref(f16rng));
404 std::generate(w135.begin(), w135.end(), std::ref(f16rng));
405 std::generate(w136.begin(), w136.end(), std::ref(f16rng));
406 std::generate(w137.begin(), w137.end(), std::ref(f16rng));
407 std::generate(w138.begin(), w138.end(), std::ref(f16rng));
408 std::generate(w139.begin(), w139.end(), std::ref(f16rng));
409 std::generate(w140.begin(), w140.end(), std::ref(f16rng));
410 std::generate(w141.begin(), w141.end(), std::ref(f16rng));
411 std::generate(w142.begin(), w142.end(), std::ref(f16rng));
412 std::generate(w143.begin(), w143.end(), std::ref(f16rng));
413 std::generate(w144.begin(), w144.end(), std::ref(f16rng));
414 std::generate(w145.begin(), w145.end(), std::ref(f16rng));
415 std::generate(w146.begin(), w146.end(), std::ref(f16rng));
416 std::generate(w147.begin(), w147.end(), std::ref(f16rng));
417 std::generate(w148.begin(), w148.end(), std::ref(f16rng));
418 std::generate(w149.begin(), w149.end(), std::ref(f16rng));
419 std::generate(w150.begin(), w150.end(), std::ref(f16rng));
420 std::generate(w151.begin(), w151.end(), std::ref(f16rng));
421 std::generate(w152.begin(), w152.end(), std::ref(f16rng));
422 std::generate(w153.begin(), w153.end(), std::ref(f16rng));
423 std::generate(w154.begin(), w154.end(), std::ref(f16rng));
424 std::generate(w155.begin(), w155.end(), std::ref(f16rng));
425 std::generate(w156.begin(), w156.end(), std::ref(f16rng));
426 std::generate(w157.begin(), w157.end(), std::ref(f16rng));
427 std::generate(w158.begin(), w158.end(), std::ref(f16rng));
428 std::generate(w159.begin(), w159.end(), std::ref(f16rng));
429 std::generate(w160.begin(), w160.end(), std::ref(f16rng));
430 std::generate(w161.begin(), w161.end(), std::ref(f16rng));
431 std::generate(w162.begin(), w162.end(), std::ref(f16rng));
432 std::generate(w163.begin(), w163.end(), std::ref(f16rng));
433 std::generate(w164.begin(), w164.end(), std::ref(f16rng));
434 std::generate(w165.begin(), w165.end(), std::ref(f16rng));
435 std::generate(w166.begin(), w166.end(), std::ref(f16rng));
436 std::generate(w167.begin(), w167.end(), std::ref(f16rng));
437 std::generate(w168.begin(), w168.end(), std::ref(f16rng));
438 std::generate(w169.begin(), w169.end(), std::ref(f16rng));
439 std::generate(w170.begin(), w170.end(), std::ref(f16rng));
440 std::generate(w171.begin(), w171.end(), std::ref(f16rng));
441 std::generate(w172.begin(), w172.end(), std::ref(f16rng));
442 std::generate(w173.begin(), w173.end(), std::ref(f16rng));
443 std::generate(w174.begin(), w174.end(), std::ref(f16rng));
444 std::generate(w175.begin(), w175.end(), std::ref(f16rng));
445 std::generate(w176.begin(), w176.end(), std::ref(f16rng));
446 std::generate(w177.begin(), w177.end(), std::ref(f16rng));
447 std::generate(w178.begin(), w178.end(), std::ref(f16rng));
448 std::generate(w179.begin(), w179.end(), std::ref(f16rng));
449 std::generate(w180.begin(), w180.end(), std::ref(f16rng));
450 std::generate(w181.begin(), w181.end(), std::ref(f16rng));
451 std::generate(w182.begin(), w182.end(), std::ref(f16rng));
452 std::generate(w183.begin(), w183.end(), std::ref(f16rng));
453 std::generate(w184.begin(), w184.end(), std::ref(f16rng));
454 std::generate(w185.begin(), w185.end(), std::ref(f16rng));
455 std::generate(w186.begin(), w186.end(), std::ref(f16rng));
456 std::generate(w187.begin(), w187.end(), std::ref(f16rng));
457 std::generate(w188.begin(), w188.end(), std::ref(f16rng));
458 std::generate(w189.begin(), w189.end(), std::ref(f16rng));
459 std::generate(w190.begin(), w190.end(), std::ref(f16rng));
460 std::generate(w191.begin(), w191.end(), std::ref(f16rng));
461 std::generate(w192.begin(), w192.end(), std::ref(f16rng));
462 std::generate(w193.begin(), w193.end(), std::ref(f16rng));
463 std::generate(w194.begin(), w194.end(), std::ref(f16rng));
464 std::generate(w195.begin(), w195.end(), std::ref(f16rng));
465 std::generate(w196.begin(), w196.end(), std::ref(f16rng));
466 std::generate(w197.begin(), w197.end(), std::ref(f16rng));
467 std::generate(w198.begin(), w198.end(), std::ref(f16rng));
468 std::generate(w199.begin(), w199.end(), std::ref(f16rng));
469 std::generate(w200.begin(), w200.end(), std::ref(f16rng));
470 std::generate(w201.begin(), w201.end(), std::ref(f16rng));
471 std::generate(w202.begin(), w202.end(), std::ref(f16rng));
472 std::generate(w203.begin(), w203.end(), std::ref(f16rng));
473 std::generate(w204.begin(), w204.end(), std::ref(f16rng));
474 std::generate(w205.begin(), w205.end(), std::ref(f16rng));
475 std::generate(w206.begin(), w206.end(), std::ref(f16rng));
476 std::generate(w207.begin(), w207.end(), std::ref(f16rng));
477 std::generate(w208.begin(), w208.end(), std::ref(f16rng));
478 std::generate(w209.begin(), w209.end(), std::ref(f16rng));
479 std::generate(w210.begin(), w210.end(), std::ref(f16rng));
480 std::generate(w211.begin(), w211.end(), std::ref(f16rng));
481 std::generate(w212.begin(), w212.end(), std::ref(f16rng));
482 std::generate(w213.begin(), w213.end(), std::ref(f16rng));
483 std::generate(w214.begin(), w214.end(), std::ref(f16rng));
484 std::generate(w215.begin(), w215.end(), std::ref(f16rng));
485 std::generate(w216.begin(), w216.end(), std::ref(f16rng));
486 std::generate(w217.begin(), w217.end(), std::ref(f16rng));
487 std::generate(w218.begin(), w218.end(), std::ref(f16rng));
488 std::generate(w219.begin(), w219.end(), std::ref(f16rng));
489 std::generate(w220.begin(), w220.end(), std::ref(f16rng));
490 std::generate(w221.begin(), w221.end(), std::ref(f16rng));
491 std::generate(w222.begin(), w222.end(), std::ref(f16rng));
492 std::generate(w223.begin(), w223.end(), std::ref(f16rng));
493 std::generate(w224.begin(), w224.end(), std::ref(f16rng));
494 std::generate(w225.begin(), w225.end(), std::ref(f16rng));
495 std::generate(w226.begin(), w226.end(), std::ref(f16rng));
496 std::generate(w227.begin(), w227.end(), std::ref(f16rng));
497 std::generate(w228.begin(), w228.end(), std::ref(f16rng));
498 std::generate(w229.begin(), w229.end(), std::ref(f16rng));
499 std::generate(w230.begin(), w230.end(), std::ref(f16rng));
500 std::generate(w231.begin(), w231.end(), std::ref(f16rng));
501 std::generate(w232.begin(), w232.end(), std::ref(f16rng));
502 std::generate(w233.begin(), w233.end(), std::ref(f16rng));
503 std::generate(w234.begin(), w234.end(), std::ref(f16rng));
504 std::generate(w235.begin(), w235.end(), std::ref(f16rng));
505 std::generate(w236.begin(), w236.end(), std::ref(f16rng));
506 std::generate(w237.begin(), w237.end(), std::ref(f16rng));
507 std::generate(w238.begin(), w238.end(), std::ref(f16rng));
508 std::generate(w239.begin(), w239.end(), std::ref(f16rng));
509 std::generate(w240.begin(), w240.end(), std::ref(f16rng));
510 std::generate(w241.begin(), w241.end(), std::ref(f16rng));
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800511
512 ExecutionPlan operators;
513 xnn_status status;
514
515 xnn_operator_t op0 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -0700516 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800517 0 /* top padding */, 1 /* right padding */,
518 1 /* bottom padding */, 0 /* left padding */,
519 3 /* kernel height */, 3 /* kernel width */,
520 2 /* subsampling height */, 2 /* subsampling width */,
521 1 /* dilation_height */, 1 /* dilation_width */,
522 1 /* groups */,
523 3 /* input channels per group */,
524 16 /* output_channels_per_group */,
525 3 /* input pixel stride */,
526 16 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -0800527 w114.data(), w115.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800528 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
529 0 /* flags */,
530 &op0);
531 if (status != xnn_status_success) {
532 std::cerr << "failed to create operation #0" << std::endl;
533 return ExecutionPlan();
534 }
535 operators.emplace_back(op0, xnn_delete_operator);
536
537 xnn_operator_t op1 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -0700538 status = xnn_create_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800539 16 /* channels */,
540 16 /* input stride */,
541 16 /* output stride */,
542 0 /* flags */,
543 &op1);
544 if (status != xnn_status_success) {
545 std::cerr << "failed to create operation #1" << std::endl;
546 return ExecutionPlan();
547 }
548 operators.emplace_back(op1, xnn_delete_operator);
549
550 xnn_operator_t op2 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -0700551 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800552 1 /* top padding */, 1 /* right padding */,
553 1 /* bottom padding */, 1 /* left padding */,
554 3 /* kernel height */, 3 /* kernel width */,
555 1 /* subsampling height */, 1 /* subsampling width */,
556 1 /* dilation_height */, 1 /* dilation_width */,
557 16 /* groups */,
558 1 /* input channels per group */,
559 1 /* output_channels_per_group */,
560 16 /* input pixel stride */,
561 16 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -0800562 w116.data(), w117.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800563 0.0f /* output min */, std::numeric_limits<float>::infinity() /* output max */,
564 0 /* flags */,
565 &op2);
566 if (status != xnn_status_success) {
567 std::cerr << "failed to create operation #2" << std::endl;
568 return ExecutionPlan();
569 }
570 operators.emplace_back(op2, xnn_delete_operator);
571
572 xnn_operator_t op3 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -0700573 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800574 0 /* top padding */, 0 /* right padding */,
575 0 /* bottom padding */, 0 /* left padding */,
576 1 /* kernel height */, 1 /* kernel width */,
577 1 /* subsampling height */, 1 /* subsampling width */,
578 1 /* dilation_height */, 1 /* dilation_width */,
579 1 /* groups */,
580 16 /* input channels per group */,
581 16 /* output_channels_per_group */,
582 16 /* input pixel stride */,
583 16 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -0800584 w118.data(), w119.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800585 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
586 0 /* flags */,
587 &op3);
588 if (status != xnn_status_success) {
589 std::cerr << "failed to create operation #3" << std::endl;
590 return ExecutionPlan();
591 }
592 operators.emplace_back(op3, xnn_delete_operator);
593
594 xnn_operator_t op4 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -0700595 status = xnn_create_add_nd_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800596 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
597 0 /* flags */,
598 &op4);
599 if (status != xnn_status_success) {
600 std::cerr << "failed to create operation #4" << std::endl;
601 return ExecutionPlan();
602 }
603 operators.emplace_back(op4, xnn_delete_operator);
604
605 xnn_operator_t op5 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -0700606 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800607 0 /* top padding */, 0 /* right padding */,
608 0 /* bottom padding */, 0 /* left padding */,
609 1 /* kernel height */, 1 /* kernel width */,
610 1 /* subsampling height */, 1 /* subsampling width */,
611 1 /* dilation_height */, 1 /* dilation_width */,
612 1 /* groups */,
613 16 /* input channels per group */,
614 64 /* output_channels_per_group */,
615 16 /* input pixel stride */,
616 64 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -0800617 w120.data(), w121.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800618 0.0f /* output min */, std::numeric_limits<float>::infinity() /* output max */,
619 0 /* flags */,
620 &op5);
621 if (status != xnn_status_success) {
622 std::cerr << "failed to create operation #5" << std::endl;
623 return ExecutionPlan();
624 }
625 operators.emplace_back(op5, xnn_delete_operator);
626
627 xnn_operator_t op6 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -0700628 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800629 0 /* top padding */, 1 /* right padding */,
630 1 /* bottom padding */, 0 /* left padding */,
631 3 /* kernel height */, 3 /* kernel width */,
632 2 /* subsampling height */, 2 /* subsampling width */,
633 1 /* dilation_height */, 1 /* dilation_width */,
634 64 /* groups */,
635 1 /* input channels per group */,
636 1 /* output_channels_per_group */,
637 64 /* input pixel stride */,
638 64 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -0800639 w122.data(), w123.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800640 0.0f /* output min */, std::numeric_limits<float>::infinity() /* output max */,
641 0 /* flags */,
642 &op6);
643 if (status != xnn_status_success) {
644 std::cerr << "failed to create operation #6" << std::endl;
645 return ExecutionPlan();
646 }
647 operators.emplace_back(op6, xnn_delete_operator);
648
649 xnn_operator_t op7 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -0700650 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800651 0 /* top padding */, 0 /* right padding */,
652 0 /* bottom padding */, 0 /* left padding */,
653 1 /* kernel height */, 1 /* kernel width */,
654 1 /* subsampling height */, 1 /* subsampling width */,
655 1 /* dilation_height */, 1 /* dilation_width */,
656 1 /* groups */,
657 64 /* input channels per group */,
658 24 /* output_channels_per_group */,
659 64 /* input pixel stride */,
660 24 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -0800661 w124.data(), w125.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800662 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
663 0 /* flags */,
664 &op7);
665 if (status != xnn_status_success) {
666 std::cerr << "failed to create operation #7" << std::endl;
667 return ExecutionPlan();
668 }
669 operators.emplace_back(op7, xnn_delete_operator);
670
671 xnn_operator_t op8 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -0700672 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800673 0 /* top padding */, 0 /* right padding */,
674 0 /* bottom padding */, 0 /* left padding */,
675 1 /* kernel height */, 1 /* kernel width */,
676 1 /* subsampling height */, 1 /* subsampling width */,
677 1 /* dilation_height */, 1 /* dilation_width */,
678 1 /* groups */,
679 24 /* input channels per group */,
680 72 /* output_channels_per_group */,
681 24 /* input pixel stride */,
682 72 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -0800683 w126.data(), w127.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800684 0.0f /* output min */, std::numeric_limits<float>::infinity() /* output max */,
685 0 /* flags */,
686 &op8);
687 if (status != xnn_status_success) {
688 std::cerr << "failed to create operation #8" << std::endl;
689 return ExecutionPlan();
690 }
691 operators.emplace_back(op8, xnn_delete_operator);
692
693 xnn_operator_t op9 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -0700694 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800695 1 /* top padding */, 1 /* right padding */,
696 1 /* bottom padding */, 1 /* left padding */,
697 3 /* kernel height */, 3 /* kernel width */,
698 1 /* subsampling height */, 1 /* subsampling width */,
699 1 /* dilation_height */, 1 /* dilation_width */,
700 72 /* groups */,
701 1 /* input channels per group */,
702 1 /* output_channels_per_group */,
703 72 /* input pixel stride */,
704 72 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -0800705 w128.data(), w129.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800706 0.0f /* output min */, std::numeric_limits<float>::infinity() /* output max */,
707 0 /* flags */,
708 &op9);
709 if (status != xnn_status_success) {
710 std::cerr << "failed to create operation #9" << std::endl;
711 return ExecutionPlan();
712 }
713 operators.emplace_back(op9, xnn_delete_operator);
714
715 xnn_operator_t op10 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -0700716 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800717 0 /* top padding */, 0 /* right padding */,
718 0 /* bottom padding */, 0 /* left padding */,
719 1 /* kernel height */, 1 /* kernel width */,
720 1 /* subsampling height */, 1 /* subsampling width */,
721 1 /* dilation_height */, 1 /* dilation_width */,
722 1 /* groups */,
723 72 /* input channels per group */,
724 24 /* output_channels_per_group */,
725 72 /* input pixel stride */,
726 24 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -0800727 w130.data(), w131.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800728 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
729 0 /* flags */,
730 &op10);
731 if (status != xnn_status_success) {
732 std::cerr << "failed to create operation #10" << std::endl;
733 return ExecutionPlan();
734 }
735 operators.emplace_back(op10, xnn_delete_operator);
736
737 xnn_operator_t op11 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -0700738 status = xnn_create_add_nd_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800739 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
740 0 /* flags */,
741 &op11);
742 if (status != xnn_status_success) {
743 std::cerr << "failed to create operation #11" << std::endl;
744 return ExecutionPlan();
745 }
746 operators.emplace_back(op11, xnn_delete_operator);
747
748 xnn_operator_t op12 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -0700749 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800750 0 /* top padding */, 0 /* right padding */,
751 0 /* bottom padding */, 0 /* left padding */,
752 1 /* kernel height */, 1 /* kernel width */,
753 1 /* subsampling height */, 1 /* subsampling width */,
754 1 /* dilation_height */, 1 /* dilation_width */,
755 1 /* groups */,
756 24 /* input channels per group */,
757 72 /* output_channels_per_group */,
758 24 /* input pixel stride */,
759 72 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -0800760 w132.data(), w133.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800761 0.0f /* output min */, std::numeric_limits<float>::infinity() /* output max */,
762 0 /* flags */,
763 &op12);
764 if (status != xnn_status_success) {
765 std::cerr << "failed to create operation #12" << std::endl;
766 return ExecutionPlan();
767 }
768 operators.emplace_back(op12, xnn_delete_operator);
769
770 xnn_operator_t op13 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -0700771 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800772 1 /* top padding */, 2 /* right padding */,
773 2 /* bottom padding */, 1 /* left padding */,
774 5 /* kernel height */, 5 /* kernel width */,
775 2 /* subsampling height */, 2 /* subsampling width */,
776 1 /* dilation_height */, 1 /* dilation_width */,
777 72 /* groups */,
778 1 /* input channels per group */,
779 1 /* output_channels_per_group */,
780 72 /* input pixel stride */,
781 72 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -0800782 w134.data(), w135.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800783 0.0f /* output min */, std::numeric_limits<float>::infinity() /* output max */,
784 0 /* flags */,
785 &op13);
786 if (status != xnn_status_success) {
787 std::cerr << "failed to create operation #13" << std::endl;
788 return ExecutionPlan();
789 }
790 operators.emplace_back(op13, xnn_delete_operator);
791
792 xnn_operator_t op14 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -0700793 status = xnn_create_global_average_pooling_nwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800794 72 /* channels */, 72 /* input stride */, 72 /* output stride */,
795 -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
796 0 /* flags */,
797 &op14);
798 if (status != xnn_status_success) {
799 std::cerr << "failed to create operation #14" << std::endl;
800 return ExecutionPlan();
801 }
802 operators.emplace_back(op14, xnn_delete_operator);
803
804 xnn_operator_t op15 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -0700805 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800806 0 /* top padding */, 0 /* right padding */,
807 0 /* bottom padding */, 0 /* left padding */,
808 1 /* kernel height */, 1 /* kernel width */,
809 1 /* subsampling height */, 1 /* subsampling width */,
810 1 /* dilation_height */, 1 /* dilation_width */,
811 1 /* groups */,
812 72 /* input channels per group */,
813 24 /* output_channels_per_group */,
814 72 /* input pixel stride */,
815 24 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -0800816 w136.data(), w137.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800817 0.0f /* output min */, std::numeric_limits<float>::infinity() /* output max */,
818 0 /* flags */,
819 &op15);
820 if (status != xnn_status_success) {
821 std::cerr << "failed to create operation #15" << std::endl;
822 return ExecutionPlan();
823 }
824 operators.emplace_back(op15, xnn_delete_operator);
825
826 xnn_operator_t op16 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -0700827 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800828 0 /* top padding */, 0 /* right padding */,
829 0 /* bottom padding */, 0 /* left padding */,
830 1 /* kernel height */, 1 /* kernel width */,
831 1 /* subsampling height */, 1 /* subsampling width */,
832 1 /* dilation_height */, 1 /* dilation_width */,
833 1 /* groups */,
834 24 /* input channels per group */,
835 72 /* output_channels_per_group */,
836 24 /* input pixel stride */,
837 72 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -0800838 w138.data(), w139.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800839 0.0f /* output min */, +0x1.00014Fp+0 /* output max */,
840 0 /* flags */,
841 &op16);
842 if (status != xnn_status_success) {
843 std::cerr << "failed to create operation #16" << std::endl;
844 return ExecutionPlan();
845 }
846 operators.emplace_back(op16, xnn_delete_operator);
847
848 xnn_operator_t op17 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -0700849 status = xnn_create_multiply_nd_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800850 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
851 0 /* flags */,
852 &op17);
853 if (status != xnn_status_success) {
854 std::cerr << "failed to create operation #17" << std::endl;
855 return ExecutionPlan();
856 }
857 operators.emplace_back(op17, xnn_delete_operator);
858
859 xnn_operator_t op18 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -0700860 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800861 0 /* top padding */, 0 /* right padding */,
862 0 /* bottom padding */, 0 /* left padding */,
863 1 /* kernel height */, 1 /* kernel width */,
864 1 /* subsampling height */, 1 /* subsampling width */,
865 1 /* dilation_height */, 1 /* dilation_width */,
866 1 /* groups */,
867 72 /* input channels per group */,
868 40 /* output_channels_per_group */,
869 72 /* input pixel stride */,
870 40 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -0800871 w140.data(), w141.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800872 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
873 0 /* flags */,
874 &op18);
875 if (status != xnn_status_success) {
876 std::cerr << "failed to create operation #18" << std::endl;
877 return ExecutionPlan();
878 }
879 operators.emplace_back(op18, xnn_delete_operator);
880
881 xnn_operator_t op19 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -0700882 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800883 0 /* top padding */, 0 /* right padding */,
884 0 /* bottom padding */, 0 /* left padding */,
885 1 /* kernel height */, 1 /* kernel width */,
886 1 /* subsampling height */, 1 /* subsampling width */,
887 1 /* dilation_height */, 1 /* dilation_width */,
888 1 /* groups */,
889 40 /* input channels per group */,
890 120 /* output_channels_per_group */,
891 40 /* input pixel stride */,
892 120 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -0800893 w142.data(), w143.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800894 0.0f /* output min */, std::numeric_limits<float>::infinity() /* output max */,
895 0 /* flags */,
896 &op19);
897 if (status != xnn_status_success) {
898 std::cerr << "failed to create operation #19" << std::endl;
899 return ExecutionPlan();
900 }
901 operators.emplace_back(op19, xnn_delete_operator);
902
903 xnn_operator_t op20 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -0700904 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800905 2 /* top padding */, 2 /* right padding */,
906 2 /* bottom padding */, 2 /* left padding */,
907 5 /* kernel height */, 5 /* kernel width */,
908 1 /* subsampling height */, 1 /* subsampling width */,
909 1 /* dilation_height */, 1 /* dilation_width */,
910 120 /* groups */,
911 1 /* input channels per group */,
912 1 /* output_channels_per_group */,
913 120 /* input pixel stride */,
914 120 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -0800915 w144.data(), w145.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800916 0.0f /* output min */, std::numeric_limits<float>::infinity() /* output max */,
917 0 /* flags */,
918 &op20);
919 if (status != xnn_status_success) {
920 std::cerr << "failed to create operation #20" << std::endl;
921 return ExecutionPlan();
922 }
923 operators.emplace_back(op20, xnn_delete_operator);
924
925 xnn_operator_t op21 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -0700926 status = xnn_create_global_average_pooling_nwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800927 120 /* channels */, 120 /* input stride */, 120 /* output stride */,
928 -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
929 0 /* flags */,
930 &op21);
931 if (status != xnn_status_success) {
932 std::cerr << "failed to create operation #21" << std::endl;
933 return ExecutionPlan();
934 }
935 operators.emplace_back(op21, xnn_delete_operator);
936
937 xnn_operator_t op22 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -0700938 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800939 0 /* top padding */, 0 /* right padding */,
940 0 /* bottom padding */, 0 /* left padding */,
941 1 /* kernel height */, 1 /* kernel width */,
942 1 /* subsampling height */, 1 /* subsampling width */,
943 1 /* dilation_height */, 1 /* dilation_width */,
944 1 /* groups */,
945 120 /* input channels per group */,
946 32 /* output_channels_per_group */,
947 120 /* input pixel stride */,
948 32 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -0800949 w146.data(), w147.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800950 0.0f /* output min */, std::numeric_limits<float>::infinity() /* output max */,
951 0 /* flags */,
952 &op22);
953 if (status != xnn_status_success) {
954 std::cerr << "failed to create operation #22" << std::endl;
955 return ExecutionPlan();
956 }
957 operators.emplace_back(op22, xnn_delete_operator);
958
959 xnn_operator_t op23 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -0700960 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800961 0 /* top padding */, 0 /* right padding */,
962 0 /* bottom padding */, 0 /* left padding */,
963 1 /* kernel height */, 1 /* kernel width */,
964 1 /* subsampling height */, 1 /* subsampling width */,
965 1 /* dilation_height */, 1 /* dilation_width */,
966 1 /* groups */,
967 32 /* input channels per group */,
968 120 /* output_channels_per_group */,
969 32 /* input pixel stride */,
970 120 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -0800971 w148.data(), w149.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800972 0.0f /* output min */, +0x1.00014Fp+0 /* output max */,
973 0 /* flags */,
974 &op23);
975 if (status != xnn_status_success) {
976 std::cerr << "failed to create operation #23" << std::endl;
977 return ExecutionPlan();
978 }
979 operators.emplace_back(op23, xnn_delete_operator);
980
981 xnn_operator_t op24 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -0700982 status = xnn_create_multiply_nd_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800983 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
984 0 /* flags */,
985 &op24);
986 if (status != xnn_status_success) {
987 std::cerr << "failed to create operation #24" << std::endl;
988 return ExecutionPlan();
989 }
990 operators.emplace_back(op24, xnn_delete_operator);
991
992 xnn_operator_t op25 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -0700993 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -0800994 0 /* top padding */, 0 /* right padding */,
995 0 /* bottom padding */, 0 /* left padding */,
996 1 /* kernel height */, 1 /* kernel width */,
997 1 /* subsampling height */, 1 /* subsampling width */,
998 1 /* dilation_height */, 1 /* dilation_width */,
999 1 /* groups */,
1000 120 /* input channels per group */,
1001 40 /* output_channels_per_group */,
1002 120 /* input pixel stride */,
1003 40 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001004 w150.data(), w151.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001005 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1006 0 /* flags */,
1007 &op25);
1008 if (status != xnn_status_success) {
1009 std::cerr << "failed to create operation #25" << std::endl;
1010 return ExecutionPlan();
1011 }
1012 operators.emplace_back(op25, xnn_delete_operator);
1013
1014 xnn_operator_t op26 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001015 status = xnn_create_add_nd_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001016 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1017 0 /* flags */,
1018 &op26);
1019 if (status != xnn_status_success) {
1020 std::cerr << "failed to create operation #26" << std::endl;
1021 return ExecutionPlan();
1022 }
1023 operators.emplace_back(op26, xnn_delete_operator);
1024
1025 xnn_operator_t op27 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001026 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001027 0 /* top padding */, 0 /* right padding */,
1028 0 /* bottom padding */, 0 /* left padding */,
1029 1 /* kernel height */, 1 /* kernel width */,
1030 1 /* subsampling height */, 1 /* subsampling width */,
1031 1 /* dilation_height */, 1 /* dilation_width */,
1032 1 /* groups */,
1033 40 /* input channels per group */,
1034 120 /* output_channels_per_group */,
1035 40 /* input pixel stride */,
1036 120 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001037 w152.data(), w153.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001038 0.0f /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1039 0 /* flags */,
1040 &op27);
1041 if (status != xnn_status_success) {
1042 std::cerr << "failed to create operation #27" << std::endl;
1043 return ExecutionPlan();
1044 }
1045 operators.emplace_back(op27, xnn_delete_operator);
1046
1047 xnn_operator_t op28 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001048 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001049 2 /* top padding */, 2 /* right padding */,
1050 2 /* bottom padding */, 2 /* left padding */,
1051 5 /* kernel height */, 5 /* kernel width */,
1052 1 /* subsampling height */, 1 /* subsampling width */,
1053 1 /* dilation_height */, 1 /* dilation_width */,
1054 120 /* groups */,
1055 1 /* input channels per group */,
1056 1 /* output_channels_per_group */,
1057 120 /* input pixel stride */,
1058 120 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001059 w154.data(), w155.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001060 0.0f /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1061 0 /* flags */,
1062 &op28);
1063 if (status != xnn_status_success) {
1064 std::cerr << "failed to create operation #28" << std::endl;
1065 return ExecutionPlan();
1066 }
1067 operators.emplace_back(op28, xnn_delete_operator);
1068
1069 xnn_operator_t op29 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001070 status = xnn_create_global_average_pooling_nwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001071 120 /* channels */, 120 /* input stride */, 120 /* output stride */,
1072 -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
1073 0 /* flags */,
1074 &op29);
1075 if (status != xnn_status_success) {
1076 std::cerr << "failed to create operation #29" << std::endl;
1077 return ExecutionPlan();
1078 }
1079 operators.emplace_back(op29, xnn_delete_operator);
1080
1081 xnn_operator_t op30 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001082 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001083 0 /* top padding */, 0 /* right padding */,
1084 0 /* bottom padding */, 0 /* left padding */,
1085 1 /* kernel height */, 1 /* kernel width */,
1086 1 /* subsampling height */, 1 /* subsampling width */,
1087 1 /* dilation_height */, 1 /* dilation_width */,
1088 1 /* groups */,
1089 120 /* input channels per group */,
1090 32 /* output_channels_per_group */,
1091 120 /* input pixel stride */,
1092 32 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001093 w156.data(), w157.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001094 0.0f /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1095 0 /* flags */,
1096 &op30);
1097 if (status != xnn_status_success) {
1098 std::cerr << "failed to create operation #30" << std::endl;
1099 return ExecutionPlan();
1100 }
1101 operators.emplace_back(op30, xnn_delete_operator);
1102
1103 xnn_operator_t op31 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001104 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001105 0 /* top padding */, 0 /* right padding */,
1106 0 /* bottom padding */, 0 /* left padding */,
1107 1 /* kernel height */, 1 /* kernel width */,
1108 1 /* subsampling height */, 1 /* subsampling width */,
1109 1 /* dilation_height */, 1 /* dilation_width */,
1110 1 /* groups */,
1111 32 /* input channels per group */,
1112 120 /* output_channels_per_group */,
1113 32 /* input pixel stride */,
1114 120 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001115 w158.data(), w159.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001116 0.0f /* output min */, +0x1.00014Fp+0 /* output max */,
1117 0 /* flags */,
1118 &op31);
1119 if (status != xnn_status_success) {
1120 std::cerr << "failed to create operation #31" << std::endl;
1121 return ExecutionPlan();
1122 }
1123 operators.emplace_back(op31, xnn_delete_operator);
1124
1125 xnn_operator_t op32 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001126 status = xnn_create_multiply_nd_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001127 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1128 0 /* flags */,
1129 &op32);
1130 if (status != xnn_status_success) {
1131 std::cerr << "failed to create operation #32" << std::endl;
1132 return ExecutionPlan();
1133 }
1134 operators.emplace_back(op32, xnn_delete_operator);
1135
1136 xnn_operator_t op33 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001137 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001138 0 /* top padding */, 0 /* right padding */,
1139 0 /* bottom padding */, 0 /* left padding */,
1140 1 /* kernel height */, 1 /* kernel width */,
1141 1 /* subsampling height */, 1 /* subsampling width */,
1142 1 /* dilation_height */, 1 /* dilation_width */,
1143 1 /* groups */,
1144 120 /* input channels per group */,
1145 40 /* output_channels_per_group */,
1146 120 /* input pixel stride */,
1147 40 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001148 w160.data(), w161.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001149 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1150 0 /* flags */,
1151 &op33);
1152 if (status != xnn_status_success) {
1153 std::cerr << "failed to create operation #33" << std::endl;
1154 return ExecutionPlan();
1155 }
1156 operators.emplace_back(op33, xnn_delete_operator);
1157
1158 xnn_operator_t op34 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001159 status = xnn_create_add_nd_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001160 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1161 0 /* flags */,
1162 &op34);
1163 if (status != xnn_status_success) {
1164 std::cerr << "failed to create operation #34" << std::endl;
1165 return ExecutionPlan();
1166 }
1167 operators.emplace_back(op34, xnn_delete_operator);
1168
1169 xnn_operator_t op35 = 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 40 /* input channels per group */,
1178 240 /* output_channels_per_group */,
1179 40 /* input pixel stride */,
1180 240 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001181 w162.data(), w163.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001182 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1183 0 /* flags */,
1184 &op35);
1185 if (status != xnn_status_success) {
1186 std::cerr << "failed to create operation #35" << std::endl;
1187 return ExecutionPlan();
1188 }
1189 operators.emplace_back(op35, xnn_delete_operator);
1190
1191 xnn_operator_t op36 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001192 status = xnn_create_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001193 240 /* channels */,
1194 240 /* input stride */,
1195 240 /* output stride */,
1196 0 /* flags */,
1197 &op36);
1198 if (status != xnn_status_success) {
1199 std::cerr << "failed to create operation #36" << std::endl;
1200 return ExecutionPlan();
1201 }
1202 operators.emplace_back(op36, xnn_delete_operator);
1203
1204 xnn_operator_t op37 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001205 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001206 0 /* top padding */, 1 /* right padding */,
1207 1 /* bottom padding */, 0 /* left padding */,
1208 3 /* kernel height */, 3 /* kernel width */,
1209 2 /* subsampling height */, 2 /* subsampling width */,
1210 1 /* dilation_height */, 1 /* dilation_width */,
1211 240 /* groups */,
1212 1 /* input channels per group */,
1213 1 /* output_channels_per_group */,
1214 240 /* input pixel stride */,
1215 240 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001216 w164.data(), w165.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001217 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1218 0 /* flags */,
1219 &op37);
1220 if (status != xnn_status_success) {
1221 std::cerr << "failed to create operation #37" << std::endl;
1222 return ExecutionPlan();
1223 }
1224 operators.emplace_back(op37, xnn_delete_operator);
1225
1226 xnn_operator_t op38 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001227 status = xnn_create_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001228 240 /* channels */,
1229 240 /* input stride */,
1230 240 /* output stride */,
1231 0 /* flags */,
1232 &op38);
1233 if (status != xnn_status_success) {
1234 std::cerr << "failed to create operation #38" << std::endl;
1235 return ExecutionPlan();
1236 }
1237 operators.emplace_back(op38, xnn_delete_operator);
1238
1239 xnn_operator_t op39 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001240 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001241 0 /* top padding */, 0 /* right padding */,
1242 0 /* bottom padding */, 0 /* left padding */,
1243 1 /* kernel height */, 1 /* kernel width */,
1244 1 /* subsampling height */, 1 /* subsampling width */,
1245 1 /* dilation_height */, 1 /* dilation_width */,
1246 1 /* groups */,
1247 240 /* input channels per group */,
1248 80 /* output_channels_per_group */,
1249 240 /* input pixel stride */,
1250 80 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001251 w166.data(), w167.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001252 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1253 0 /* flags */,
1254 &op39);
1255 if (status != xnn_status_success) {
1256 std::cerr << "failed to create operation #39" << std::endl;
1257 return ExecutionPlan();
1258 }
1259 operators.emplace_back(op39, xnn_delete_operator);
1260
1261 xnn_operator_t op40 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001262 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001263 0 /* top padding */, 0 /* right padding */,
1264 0 /* bottom padding */, 0 /* left padding */,
1265 1 /* kernel height */, 1 /* kernel width */,
1266 1 /* subsampling height */, 1 /* subsampling width */,
1267 1 /* dilation_height */, 1 /* dilation_width */,
1268 1 /* groups */,
1269 80 /* input channels per group */,
1270 200 /* output_channels_per_group */,
1271 80 /* input pixel stride */,
1272 200 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001273 w168.data(), w169.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001274 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1275 0 /* flags */,
1276 &op40);
1277 if (status != xnn_status_success) {
1278 std::cerr << "failed to create operation #40" << std::endl;
1279 return ExecutionPlan();
1280 }
1281 operators.emplace_back(op40, xnn_delete_operator);
1282
1283 xnn_operator_t op41 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001284 status = xnn_create_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001285 200 /* channels */,
1286 200 /* input stride */,
1287 200 /* output stride */,
1288 0 /* flags */,
1289 &op41);
1290 if (status != xnn_status_success) {
1291 std::cerr << "failed to create operation #41" << std::endl;
1292 return ExecutionPlan();
1293 }
1294 operators.emplace_back(op41, xnn_delete_operator);
1295
1296 xnn_operator_t op42 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001297 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001298 1 /* top padding */, 1 /* right padding */,
1299 1 /* bottom padding */, 1 /* left padding */,
1300 3 /* kernel height */, 3 /* kernel width */,
1301 1 /* subsampling height */, 1 /* subsampling width */,
1302 1 /* dilation_height */, 1 /* dilation_width */,
1303 200 /* groups */,
1304 1 /* input channels per group */,
1305 1 /* output_channels_per_group */,
1306 200 /* input pixel stride */,
1307 200 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001308 w170.data(), w171.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001309 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1310 0 /* flags */,
1311 &op42);
1312 if (status != xnn_status_success) {
1313 std::cerr << "failed to create operation #42" << std::endl;
1314 return ExecutionPlan();
1315 }
1316 operators.emplace_back(op42, xnn_delete_operator);
1317
1318 xnn_operator_t op43 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001319 status = xnn_create_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001320 200 /* channels */,
1321 200 /* input stride */,
1322 200 /* output stride */,
1323 0 /* flags */,
1324 &op43);
1325 if (status != xnn_status_success) {
1326 std::cerr << "failed to create operation #43" << std::endl;
1327 return ExecutionPlan();
1328 }
1329 operators.emplace_back(op43, xnn_delete_operator);
1330
1331 xnn_operator_t op44 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001332 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001333 0 /* top padding */, 0 /* right padding */,
1334 0 /* bottom padding */, 0 /* left padding */,
1335 1 /* kernel height */, 1 /* kernel width */,
1336 1 /* subsampling height */, 1 /* subsampling width */,
1337 1 /* dilation_height */, 1 /* dilation_width */,
1338 1 /* groups */,
1339 200 /* input channels per group */,
1340 80 /* output_channels_per_group */,
1341 200 /* input pixel stride */,
1342 80 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001343 w172.data(), w173.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001344 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1345 0 /* flags */,
1346 &op44);
1347 if (status != xnn_status_success) {
1348 std::cerr << "failed to create operation #44" << std::endl;
1349 return ExecutionPlan();
1350 }
1351 operators.emplace_back(op44, xnn_delete_operator);
1352
1353 xnn_operator_t op45 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001354 status = xnn_create_add_nd_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001355 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1356 0 /* flags */,
1357 &op45);
1358 if (status != xnn_status_success) {
1359 std::cerr << "failed to create operation #45" << std::endl;
1360 return ExecutionPlan();
1361 }
1362 operators.emplace_back(op45, xnn_delete_operator);
1363
1364 xnn_operator_t op46 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001365 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001366 0 /* top padding */, 0 /* right padding */,
1367 0 /* bottom padding */, 0 /* left padding */,
1368 1 /* kernel height */, 1 /* kernel width */,
1369 1 /* subsampling height */, 1 /* subsampling width */,
1370 1 /* dilation_height */, 1 /* dilation_width */,
1371 1 /* groups */,
1372 80 /* input channels per group */,
1373 184 /* output_channels_per_group */,
1374 80 /* input pixel stride */,
1375 184 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001376 w174.data(), w175.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001377 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1378 0 /* flags */,
1379 &op46);
1380 if (status != xnn_status_success) {
1381 std::cerr << "failed to create operation #46" << std::endl;
1382 return ExecutionPlan();
1383 }
1384 operators.emplace_back(op46, xnn_delete_operator);
1385
1386 xnn_operator_t op47 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001387 status = xnn_create_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001388 184 /* channels */,
1389 184 /* input stride */,
1390 184 /* output stride */,
1391 0 /* flags */,
1392 &op47);
1393 if (status != xnn_status_success) {
1394 std::cerr << "failed to create operation #47" << std::endl;
1395 return ExecutionPlan();
1396 }
1397 operators.emplace_back(op47, xnn_delete_operator);
1398
1399 xnn_operator_t op48 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001400 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001401 1 /* top padding */, 1 /* right padding */,
1402 1 /* bottom padding */, 1 /* left padding */,
1403 3 /* kernel height */, 3 /* kernel width */,
1404 1 /* subsampling height */, 1 /* subsampling width */,
1405 1 /* dilation_height */, 1 /* dilation_width */,
1406 184 /* groups */,
1407 1 /* input channels per group */,
1408 1 /* output_channels_per_group */,
1409 184 /* input pixel stride */,
1410 184 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001411 w176.data(), w177.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001412 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1413 0 /* flags */,
1414 &op48);
1415 if (status != xnn_status_success) {
1416 std::cerr << "failed to create operation #48" << std::endl;
1417 return ExecutionPlan();
1418 }
1419 operators.emplace_back(op48, xnn_delete_operator);
1420
1421 xnn_operator_t op49 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001422 status = xnn_create_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001423 184 /* channels */,
1424 184 /* input stride */,
1425 184 /* output stride */,
1426 0 /* flags */,
1427 &op49);
1428 if (status != xnn_status_success) {
1429 std::cerr << "failed to create operation #49" << std::endl;
1430 return ExecutionPlan();
1431 }
1432 operators.emplace_back(op49, xnn_delete_operator);
1433
1434 xnn_operator_t op50 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001435 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001436 0 /* top padding */, 0 /* right padding */,
1437 0 /* bottom padding */, 0 /* left padding */,
1438 1 /* kernel height */, 1 /* kernel width */,
1439 1 /* subsampling height */, 1 /* subsampling width */,
1440 1 /* dilation_height */, 1 /* dilation_width */,
1441 1 /* groups */,
1442 184 /* input channels per group */,
1443 80 /* output_channels_per_group */,
1444 184 /* input pixel stride */,
1445 80 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001446 w178.data(), w179.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001447 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1448 0 /* flags */,
1449 &op50);
1450 if (status != xnn_status_success) {
1451 std::cerr << "failed to create operation #50" << std::endl;
1452 return ExecutionPlan();
1453 }
1454 operators.emplace_back(op50, xnn_delete_operator);
1455
1456 xnn_operator_t op51 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001457 status = xnn_create_add_nd_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001458 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1459 0 /* flags */,
1460 &op51);
1461 if (status != xnn_status_success) {
1462 std::cerr << "failed to create operation #51" << std::endl;
1463 return ExecutionPlan();
1464 }
1465 operators.emplace_back(op51, xnn_delete_operator);
1466
1467 xnn_operator_t op52 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001468 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001469 0 /* top padding */, 0 /* right padding */,
1470 0 /* bottom padding */, 0 /* left padding */,
1471 1 /* kernel height */, 1 /* kernel width */,
1472 1 /* subsampling height */, 1 /* subsampling width */,
1473 1 /* dilation_height */, 1 /* dilation_width */,
1474 1 /* groups */,
1475 80 /* input channels per group */,
1476 184 /* output_channels_per_group */,
1477 80 /* input pixel stride */,
1478 184 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001479 w180.data(), w181.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001480 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1481 0 /* flags */,
1482 &op52);
1483 if (status != xnn_status_success) {
1484 std::cerr << "failed to create operation #52" << std::endl;
1485 return ExecutionPlan();
1486 }
1487 operators.emplace_back(op52, xnn_delete_operator);
1488
1489 xnn_operator_t op53 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001490 status = xnn_create_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001491 184 /* channels */,
1492 184 /* input stride */,
1493 184 /* output stride */,
1494 0 /* flags */,
1495 &op53);
1496 if (status != xnn_status_success) {
1497 std::cerr << "failed to create operation #53" << std::endl;
1498 return ExecutionPlan();
1499 }
1500 operators.emplace_back(op53, xnn_delete_operator);
1501
1502 xnn_operator_t op54 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001503 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001504 1 /* top padding */, 1 /* right padding */,
1505 1 /* bottom padding */, 1 /* left padding */,
1506 3 /* kernel height */, 3 /* kernel width */,
1507 1 /* subsampling height */, 1 /* subsampling width */,
1508 1 /* dilation_height */, 1 /* dilation_width */,
1509 184 /* groups */,
1510 1 /* input channels per group */,
1511 1 /* output_channels_per_group */,
1512 184 /* input pixel stride */,
1513 184 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001514 w182.data(), w183.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001515 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1516 0 /* flags */,
1517 &op54);
1518 if (status != xnn_status_success) {
1519 std::cerr << "failed to create operation #54" << std::endl;
1520 return ExecutionPlan();
1521 }
1522 operators.emplace_back(op54, xnn_delete_operator);
1523
1524 xnn_operator_t op55 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001525 status = xnn_create_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001526 184 /* channels */,
1527 184 /* input stride */,
1528 184 /* output stride */,
1529 0 /* flags */,
1530 &op55);
1531 if (status != xnn_status_success) {
1532 std::cerr << "failed to create operation #55" << std::endl;
1533 return ExecutionPlan();
1534 }
1535 operators.emplace_back(op55, xnn_delete_operator);
1536
1537 xnn_operator_t op56 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001538 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001539 0 /* top padding */, 0 /* right padding */,
1540 0 /* bottom padding */, 0 /* left padding */,
1541 1 /* kernel height */, 1 /* kernel width */,
1542 1 /* subsampling height */, 1 /* subsampling width */,
1543 1 /* dilation_height */, 1 /* dilation_width */,
1544 1 /* groups */,
1545 184 /* input channels per group */,
1546 80 /* output_channels_per_group */,
1547 184 /* input pixel stride */,
1548 80 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001549 w184.data(), w185.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001550 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1551 0 /* flags */,
1552 &op56);
1553 if (status != xnn_status_success) {
1554 std::cerr << "failed to create operation #56" << std::endl;
1555 return ExecutionPlan();
1556 }
1557 operators.emplace_back(op56, xnn_delete_operator);
1558
1559 xnn_operator_t op57 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001560 status = xnn_create_add_nd_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001561 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1562 0 /* flags */,
1563 &op57);
1564 if (status != xnn_status_success) {
1565 std::cerr << "failed to create operation #57" << std::endl;
1566 return ExecutionPlan();
1567 }
1568 operators.emplace_back(op57, xnn_delete_operator);
1569
1570 xnn_operator_t op58 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001571 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001572 0 /* top padding */, 0 /* right padding */,
1573 0 /* bottom padding */, 0 /* left padding */,
1574 1 /* kernel height */, 1 /* kernel width */,
1575 1 /* subsampling height */, 1 /* subsampling width */,
1576 1 /* dilation_height */, 1 /* dilation_width */,
1577 1 /* groups */,
1578 80 /* input channels per group */,
1579 480 /* output_channels_per_group */,
1580 80 /* input pixel stride */,
1581 480 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001582 w186.data(), w187.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001583 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1584 0 /* flags */,
1585 &op58);
1586 if (status != xnn_status_success) {
1587 std::cerr << "failed to create operation #58" << std::endl;
1588 return ExecutionPlan();
1589 }
1590 operators.emplace_back(op58, xnn_delete_operator);
1591
1592 xnn_operator_t op59 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001593 status = xnn_create_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001594 480 /* channels */,
1595 480 /* input stride */,
1596 480 /* output stride */,
1597 0 /* flags */,
1598 &op59);
1599 if (status != xnn_status_success) {
1600 std::cerr << "failed to create operation #59" << std::endl;
1601 return ExecutionPlan();
1602 }
1603 operators.emplace_back(op59, xnn_delete_operator);
1604
1605 xnn_operator_t op60 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001606 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001607 1 /* top padding */, 1 /* right padding */,
1608 1 /* bottom padding */, 1 /* left padding */,
1609 3 /* kernel height */, 3 /* kernel width */,
1610 1 /* subsampling height */, 1 /* subsampling width */,
1611 1 /* dilation_height */, 1 /* dilation_width */,
1612 480 /* groups */,
1613 1 /* input channels per group */,
1614 1 /* output_channels_per_group */,
1615 480 /* input pixel stride */,
1616 480 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001617 w188.data(), w189.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001618 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1619 0 /* flags */,
1620 &op60);
1621 if (status != xnn_status_success) {
1622 std::cerr << "failed to create operation #60" << std::endl;
1623 return ExecutionPlan();
1624 }
1625 operators.emplace_back(op60, xnn_delete_operator);
1626
1627 xnn_operator_t op61 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001628 status = xnn_create_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001629 480 /* channels */,
1630 480 /* input stride */,
1631 480 /* output stride */,
1632 0 /* flags */,
1633 &op61);
1634 if (status != xnn_status_success) {
1635 std::cerr << "failed to create operation #61" << std::endl;
1636 return ExecutionPlan();
1637 }
1638 operators.emplace_back(op61, xnn_delete_operator);
1639
1640 xnn_operator_t op62 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001641 status = xnn_create_global_average_pooling_nwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001642 480 /* channels */, 480 /* input stride */, 480 /* output stride */,
1643 -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
1644 0 /* flags */,
1645 &op62);
1646 if (status != xnn_status_success) {
1647 std::cerr << "failed to create operation #62" << std::endl;
1648 return ExecutionPlan();
1649 }
1650 operators.emplace_back(op62, xnn_delete_operator);
1651
1652 xnn_operator_t op63 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001653 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001654 0 /* top padding */, 0 /* right padding */,
1655 0 /* bottom padding */, 0 /* left padding */,
1656 1 /* kernel height */, 1 /* kernel width */,
1657 1 /* subsampling height */, 1 /* subsampling width */,
1658 1 /* dilation_height */, 1 /* dilation_width */,
1659 1 /* groups */,
1660 480 /* input channels per group */,
1661 120 /* output_channels_per_group */,
1662 480 /* input pixel stride */,
1663 120 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001664 w190.data(), w191.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001665 0.0f /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1666 0 /* flags */,
1667 &op63);
1668 if (status != xnn_status_success) {
1669 std::cerr << "failed to create operation #63" << std::endl;
1670 return ExecutionPlan();
1671 }
1672 operators.emplace_back(op63, xnn_delete_operator);
1673
1674 xnn_operator_t op64 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001675 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001676 0 /* top padding */, 0 /* right padding */,
1677 0 /* bottom padding */, 0 /* left padding */,
1678 1 /* kernel height */, 1 /* kernel width */,
1679 1 /* subsampling height */, 1 /* subsampling width */,
1680 1 /* dilation_height */, 1 /* dilation_width */,
1681 1 /* groups */,
1682 120 /* input channels per group */,
1683 480 /* output_channels_per_group */,
1684 120 /* input pixel stride */,
1685 480 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001686 w192.data(), w193.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001687 0.0f /* output min */, +0x1.00014Fp+0 /* output max */,
1688 0 /* flags */,
1689 &op64);
1690 if (status != xnn_status_success) {
1691 std::cerr << "failed to create operation #64" << std::endl;
1692 return ExecutionPlan();
1693 }
1694 operators.emplace_back(op64, xnn_delete_operator);
1695
1696 xnn_operator_t op65 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001697 status = xnn_create_multiply_nd_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001698 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1699 0 /* flags */,
1700 &op65);
1701 if (status != xnn_status_success) {
1702 std::cerr << "failed to create operation #65" << std::endl;
1703 return ExecutionPlan();
1704 }
1705 operators.emplace_back(op65, xnn_delete_operator);
1706
1707 xnn_operator_t op66 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001708 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001709 0 /* top padding */, 0 /* right padding */,
1710 0 /* bottom padding */, 0 /* left padding */,
1711 1 /* kernel height */, 1 /* kernel width */,
1712 1 /* subsampling height */, 1 /* subsampling width */,
1713 1 /* dilation_height */, 1 /* dilation_width */,
1714 1 /* groups */,
1715 480 /* input channels per group */,
1716 112 /* output_channels_per_group */,
1717 480 /* input pixel stride */,
1718 112 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001719 w194.data(), w195.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001720 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1721 0 /* flags */,
1722 &op66);
1723 if (status != xnn_status_success) {
1724 std::cerr << "failed to create operation #66" << std::endl;
1725 return ExecutionPlan();
1726 }
1727 operators.emplace_back(op66, xnn_delete_operator);
1728
1729 xnn_operator_t op67 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001730 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001731 0 /* top padding */, 0 /* right padding */,
1732 0 /* bottom padding */, 0 /* left padding */,
1733 1 /* kernel height */, 1 /* kernel width */,
1734 1 /* subsampling height */, 1 /* subsampling width */,
1735 1 /* dilation_height */, 1 /* dilation_width */,
1736 1 /* groups */,
1737 112 /* input channels per group */,
1738 672 /* output_channels_per_group */,
1739 112 /* input pixel stride */,
1740 672 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001741 w196.data(), w197.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001742 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1743 0 /* flags */,
1744 &op67);
1745 if (status != xnn_status_success) {
1746 std::cerr << "failed to create operation #67" << std::endl;
1747 return ExecutionPlan();
1748 }
1749 operators.emplace_back(op67, xnn_delete_operator);
1750
1751 xnn_operator_t op68 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001752 status = xnn_create_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001753 672 /* channels */,
1754 672 /* input stride */,
1755 672 /* output stride */,
1756 0 /* flags */,
1757 &op68);
1758 if (status != xnn_status_success) {
1759 std::cerr << "failed to create operation #68" << std::endl;
1760 return ExecutionPlan();
1761 }
1762 operators.emplace_back(op68, xnn_delete_operator);
1763
1764 xnn_operator_t op69 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001765 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001766 1 /* top padding */, 1 /* right padding */,
1767 1 /* bottom padding */, 1 /* left padding */,
1768 3 /* kernel height */, 3 /* kernel width */,
1769 1 /* subsampling height */, 1 /* subsampling width */,
1770 1 /* dilation_height */, 1 /* dilation_width */,
1771 672 /* groups */,
1772 1 /* input channels per group */,
1773 1 /* output_channels_per_group */,
1774 672 /* input pixel stride */,
1775 672 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001776 w198.data(), w199.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001777 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1778 0 /* flags */,
1779 &op69);
1780 if (status != xnn_status_success) {
1781 std::cerr << "failed to create operation #69" << std::endl;
1782 return ExecutionPlan();
1783 }
1784 operators.emplace_back(op69, xnn_delete_operator);
1785
1786 xnn_operator_t op70 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001787 status = xnn_create_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001788 672 /* channels */,
1789 672 /* input stride */,
1790 672 /* output stride */,
1791 0 /* flags */,
1792 &op70);
1793 if (status != xnn_status_success) {
1794 std::cerr << "failed to create operation #70" << std::endl;
1795 return ExecutionPlan();
1796 }
1797 operators.emplace_back(op70, xnn_delete_operator);
1798
1799 xnn_operator_t op71 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001800 status = xnn_create_global_average_pooling_nwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001801 672 /* channels */, 672 /* input stride */, 672 /* output stride */,
1802 -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
1803 0 /* flags */,
1804 &op71);
1805 if (status != xnn_status_success) {
1806 std::cerr << "failed to create operation #71" << std::endl;
1807 return ExecutionPlan();
1808 }
1809 operators.emplace_back(op71, xnn_delete_operator);
1810
1811 xnn_operator_t op72 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001812 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001813 0 /* top padding */, 0 /* right padding */,
1814 0 /* bottom padding */, 0 /* left padding */,
1815 1 /* kernel height */, 1 /* kernel width */,
1816 1 /* subsampling height */, 1 /* subsampling width */,
1817 1 /* dilation_height */, 1 /* dilation_width */,
1818 1 /* groups */,
1819 672 /* input channels per group */,
1820 168 /* output_channels_per_group */,
1821 672 /* input pixel stride */,
1822 168 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001823 w200.data(), w201.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001824 0.0f /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1825 0 /* flags */,
1826 &op72);
1827 if (status != xnn_status_success) {
1828 std::cerr << "failed to create operation #72" << std::endl;
1829 return ExecutionPlan();
1830 }
1831 operators.emplace_back(op72, xnn_delete_operator);
1832
1833 xnn_operator_t op73 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001834 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001835 0 /* top padding */, 0 /* right padding */,
1836 0 /* bottom padding */, 0 /* left padding */,
1837 1 /* kernel height */, 1 /* kernel width */,
1838 1 /* subsampling height */, 1 /* subsampling width */,
1839 1 /* dilation_height */, 1 /* dilation_width */,
1840 1 /* groups */,
1841 168 /* input channels per group */,
1842 672 /* output_channels_per_group */,
1843 168 /* input pixel stride */,
1844 672 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001845 w202.data(), w203.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001846 0.0f /* output min */, +0x1.00014Fp+0 /* output max */,
1847 0 /* flags */,
1848 &op73);
1849 if (status != xnn_status_success) {
1850 std::cerr << "failed to create operation #73" << std::endl;
1851 return ExecutionPlan();
1852 }
1853 operators.emplace_back(op73, xnn_delete_operator);
1854
1855 xnn_operator_t op74 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001856 status = xnn_create_multiply_nd_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001857 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1858 0 /* flags */,
1859 &op74);
1860 if (status != xnn_status_success) {
1861 std::cerr << "failed to create operation #74" << std::endl;
1862 return ExecutionPlan();
1863 }
1864 operators.emplace_back(op74, xnn_delete_operator);
1865
1866 xnn_operator_t op75 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001867 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001868 0 /* top padding */, 0 /* right padding */,
1869 0 /* bottom padding */, 0 /* left padding */,
1870 1 /* kernel height */, 1 /* kernel width */,
1871 1 /* subsampling height */, 1 /* subsampling width */,
1872 1 /* dilation_height */, 1 /* dilation_width */,
1873 1 /* groups */,
1874 672 /* input channels per group */,
1875 112 /* output_channels_per_group */,
1876 672 /* input pixel stride */,
1877 112 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001878 w204.data(), w205.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001879 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1880 0 /* flags */,
1881 &op75);
1882 if (status != xnn_status_success) {
1883 std::cerr << "failed to create operation #75" << std::endl;
1884 return ExecutionPlan();
1885 }
1886 operators.emplace_back(op75, xnn_delete_operator);
1887
1888 xnn_operator_t op76 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001889 status = xnn_create_add_nd_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001890 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1891 0 /* flags */,
1892 &op76);
1893 if (status != xnn_status_success) {
1894 std::cerr << "failed to create operation #76" << std::endl;
1895 return ExecutionPlan();
1896 }
1897 operators.emplace_back(op76, xnn_delete_operator);
1898
1899 xnn_operator_t op77 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001900 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001901 0 /* top padding */, 0 /* right padding */,
1902 0 /* bottom padding */, 0 /* left padding */,
1903 1 /* kernel height */, 1 /* kernel width */,
1904 1 /* subsampling height */, 1 /* subsampling width */,
1905 1 /* dilation_height */, 1 /* dilation_width */,
1906 1 /* groups */,
1907 112 /* input channels per group */,
1908 672 /* output_channels_per_group */,
1909 112 /* input pixel stride */,
1910 672 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001911 w206.data(), w207.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001912 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1913 0 /* flags */,
1914 &op77);
1915 if (status != xnn_status_success) {
1916 std::cerr << "failed to create operation #77" << std::endl;
1917 return ExecutionPlan();
1918 }
1919 operators.emplace_back(op77, xnn_delete_operator);
1920
1921 xnn_operator_t op78 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001922 status = xnn_create_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001923 672 /* channels */,
1924 672 /* input stride */,
1925 672 /* output stride */,
1926 0 /* flags */,
1927 &op78);
1928 if (status != xnn_status_success) {
1929 std::cerr << "failed to create operation #78" << std::endl;
1930 return ExecutionPlan();
1931 }
1932 operators.emplace_back(op78, xnn_delete_operator);
1933
1934 xnn_operator_t op79 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001935 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001936 1 /* top padding */, 2 /* right padding */,
1937 2 /* bottom padding */, 1 /* left padding */,
1938 5 /* kernel height */, 5 /* kernel width */,
1939 2 /* subsampling height */, 2 /* subsampling width */,
1940 1 /* dilation_height */, 1 /* dilation_width */,
1941 672 /* groups */,
1942 1 /* input channels per group */,
1943 1 /* output_channels_per_group */,
1944 672 /* input pixel stride */,
1945 672 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001946 w208.data(), w209.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001947 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1948 0 /* flags */,
1949 &op79);
1950 if (status != xnn_status_success) {
1951 std::cerr << "failed to create operation #79" << std::endl;
1952 return ExecutionPlan();
1953 }
1954 operators.emplace_back(op79, xnn_delete_operator);
1955
1956 xnn_operator_t op80 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001957 status = xnn_create_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001958 672 /* channels */,
1959 672 /* input stride */,
1960 672 /* output stride */,
1961 0 /* flags */,
1962 &op80);
1963 if (status != xnn_status_success) {
1964 std::cerr << "failed to create operation #80" << std::endl;
1965 return ExecutionPlan();
1966 }
1967 operators.emplace_back(op80, xnn_delete_operator);
1968
1969 xnn_operator_t op81 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001970 status = xnn_create_global_average_pooling_nwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001971 672 /* channels */, 672 /* input stride */, 672 /* output stride */,
1972 -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
1973 0 /* flags */,
1974 &op81);
1975 if (status != xnn_status_success) {
1976 std::cerr << "failed to create operation #81" << std::endl;
1977 return ExecutionPlan();
1978 }
1979 operators.emplace_back(op81, xnn_delete_operator);
1980
1981 xnn_operator_t op82 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07001982 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001983 0 /* top padding */, 0 /* right padding */,
1984 0 /* bottom padding */, 0 /* left padding */,
1985 1 /* kernel height */, 1 /* kernel width */,
1986 1 /* subsampling height */, 1 /* subsampling width */,
1987 1 /* dilation_height */, 1 /* dilation_width */,
1988 1 /* groups */,
1989 672 /* input channels per group */,
1990 168 /* output_channels_per_group */,
1991 672 /* input pixel stride */,
1992 168 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08001993 w210.data(), w211.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08001994 0.0f /* output min */, std::numeric_limits<float>::infinity() /* output max */,
1995 0 /* flags */,
1996 &op82);
1997 if (status != xnn_status_success) {
1998 std::cerr << "failed to create operation #82" << std::endl;
1999 return ExecutionPlan();
2000 }
2001 operators.emplace_back(op82, xnn_delete_operator);
2002
2003 xnn_operator_t op83 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07002004 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002005 0 /* top padding */, 0 /* right padding */,
2006 0 /* bottom padding */, 0 /* left padding */,
2007 1 /* kernel height */, 1 /* kernel width */,
2008 1 /* subsampling height */, 1 /* subsampling width */,
2009 1 /* dilation_height */, 1 /* dilation_width */,
2010 1 /* groups */,
2011 168 /* input channels per group */,
2012 672 /* output_channels_per_group */,
2013 168 /* input pixel stride */,
2014 672 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002015 w212.data(), w213.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002016 0.0f /* output min */, +0x1.00014Fp+0 /* output max */,
2017 0 /* flags */,
2018 &op83);
2019 if (status != xnn_status_success) {
2020 std::cerr << "failed to create operation #83" << std::endl;
2021 return ExecutionPlan();
2022 }
2023 operators.emplace_back(op83, xnn_delete_operator);
2024
2025 xnn_operator_t op84 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07002026 status = xnn_create_multiply_nd_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002027 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
2028 0 /* flags */,
2029 &op84);
2030 if (status != xnn_status_success) {
2031 std::cerr << "failed to create operation #84" << std::endl;
2032 return ExecutionPlan();
2033 }
2034 operators.emplace_back(op84, xnn_delete_operator);
2035
2036 xnn_operator_t op85 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07002037 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002038 0 /* top padding */, 0 /* right padding */,
2039 0 /* bottom padding */, 0 /* left padding */,
2040 1 /* kernel height */, 1 /* kernel width */,
2041 1 /* subsampling height */, 1 /* subsampling width */,
2042 1 /* dilation_height */, 1 /* dilation_width */,
2043 1 /* groups */,
2044 672 /* input channels per group */,
2045 160 /* output_channels_per_group */,
2046 672 /* input pixel stride */,
2047 160 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002048 w214.data(), w215.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002049 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
2050 0 /* flags */,
2051 &op85);
2052 if (status != xnn_status_success) {
2053 std::cerr << "failed to create operation #85" << std::endl;
2054 return ExecutionPlan();
2055 }
2056 operators.emplace_back(op85, xnn_delete_operator);
2057
2058 xnn_operator_t op86 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07002059 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002060 0 /* top padding */, 0 /* right padding */,
2061 0 /* bottom padding */, 0 /* left padding */,
2062 1 /* kernel height */, 1 /* kernel width */,
2063 1 /* subsampling height */, 1 /* subsampling width */,
2064 1 /* dilation_height */, 1 /* dilation_width */,
2065 1 /* groups */,
2066 160 /* input channels per group */,
2067 960 /* output_channels_per_group */,
2068 160 /* input pixel stride */,
2069 960 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002070 w216.data(), w217.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002071 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
2072 0 /* flags */,
2073 &op86);
2074 if (status != xnn_status_success) {
2075 std::cerr << "failed to create operation #86" << std::endl;
2076 return ExecutionPlan();
2077 }
2078 operators.emplace_back(op86, xnn_delete_operator);
2079
2080 xnn_operator_t op87 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07002081 status = xnn_create_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002082 960 /* channels */,
2083 960 /* input stride */,
2084 960 /* output stride */,
2085 0 /* flags */,
2086 &op87);
2087 if (status != xnn_status_success) {
2088 std::cerr << "failed to create operation #87" << std::endl;
2089 return ExecutionPlan();
2090 }
2091 operators.emplace_back(op87, xnn_delete_operator);
2092
2093 xnn_operator_t op88 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07002094 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002095 2 /* top padding */, 2 /* right padding */,
2096 2 /* bottom padding */, 2 /* left padding */,
2097 5 /* kernel height */, 5 /* kernel width */,
2098 1 /* subsampling height */, 1 /* subsampling width */,
2099 1 /* dilation_height */, 1 /* dilation_width */,
2100 960 /* groups */,
2101 1 /* input channels per group */,
2102 1 /* output_channels_per_group */,
2103 960 /* input pixel stride */,
2104 960 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002105 w218.data(), w219.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002106 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
2107 0 /* flags */,
2108 &op88);
2109 if (status != xnn_status_success) {
2110 std::cerr << "failed to create operation #88" << std::endl;
2111 return ExecutionPlan();
2112 }
2113 operators.emplace_back(op88, xnn_delete_operator);
2114
2115 xnn_operator_t op89 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07002116 status = xnn_create_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002117 960 /* channels */,
2118 960 /* input stride */,
2119 960 /* output stride */,
2120 0 /* flags */,
2121 &op89);
2122 if (status != xnn_status_success) {
2123 std::cerr << "failed to create operation #89" << std::endl;
2124 return ExecutionPlan();
2125 }
2126 operators.emplace_back(op89, xnn_delete_operator);
2127
2128 xnn_operator_t op90 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07002129 status = xnn_create_global_average_pooling_nwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002130 960 /* channels */, 960 /* input stride */, 960 /* output stride */,
2131 -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
2132 0 /* flags */,
2133 &op90);
2134 if (status != xnn_status_success) {
2135 std::cerr << "failed to create operation #90" << std::endl;
2136 return ExecutionPlan();
2137 }
2138 operators.emplace_back(op90, xnn_delete_operator);
2139
2140 xnn_operator_t op91 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07002141 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002142 0 /* top padding */, 0 /* right padding */,
2143 0 /* bottom padding */, 0 /* left padding */,
2144 1 /* kernel height */, 1 /* kernel width */,
2145 1 /* subsampling height */, 1 /* subsampling width */,
2146 1 /* dilation_height */, 1 /* dilation_width */,
2147 1 /* groups */,
2148 960 /* input channels per group */,
2149 240 /* output_channels_per_group */,
2150 960 /* input pixel stride */,
2151 240 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002152 w220.data(), w221.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002153 0.0f /* output min */, std::numeric_limits<float>::infinity() /* output max */,
2154 0 /* flags */,
2155 &op91);
2156 if (status != xnn_status_success) {
2157 std::cerr << "failed to create operation #91" << std::endl;
2158 return ExecutionPlan();
2159 }
2160 operators.emplace_back(op91, xnn_delete_operator);
2161
2162 xnn_operator_t op92 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07002163 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002164 0 /* top padding */, 0 /* right padding */,
2165 0 /* bottom padding */, 0 /* left padding */,
2166 1 /* kernel height */, 1 /* kernel width */,
2167 1 /* subsampling height */, 1 /* subsampling width */,
2168 1 /* dilation_height */, 1 /* dilation_width */,
2169 1 /* groups */,
2170 240 /* input channels per group */,
2171 960 /* output_channels_per_group */,
2172 240 /* input pixel stride */,
2173 960 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002174 w222.data(), w223.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002175 0.0f /* output min */, +0x1.00014Fp+0 /* output max */,
2176 0 /* flags */,
2177 &op92);
2178 if (status != xnn_status_success) {
2179 std::cerr << "failed to create operation #92" << std::endl;
2180 return ExecutionPlan();
2181 }
2182 operators.emplace_back(op92, xnn_delete_operator);
2183
2184 xnn_operator_t op93 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07002185 status = xnn_create_multiply_nd_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002186 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
2187 0 /* flags */,
2188 &op93);
2189 if (status != xnn_status_success) {
2190 std::cerr << "failed to create operation #93" << std::endl;
2191 return ExecutionPlan();
2192 }
2193 operators.emplace_back(op93, xnn_delete_operator);
2194
2195 xnn_operator_t op94 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07002196 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002197 0 /* top padding */, 0 /* right padding */,
2198 0 /* bottom padding */, 0 /* left padding */,
2199 1 /* kernel height */, 1 /* kernel width */,
2200 1 /* subsampling height */, 1 /* subsampling width */,
2201 1 /* dilation_height */, 1 /* dilation_width */,
2202 1 /* groups */,
2203 960 /* input channels per group */,
2204 160 /* output_channels_per_group */,
2205 960 /* input pixel stride */,
2206 160 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002207 w224.data(), w225.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002208 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
2209 0 /* flags */,
2210 &op94);
2211 if (status != xnn_status_success) {
2212 std::cerr << "failed to create operation #94" << std::endl;
2213 return ExecutionPlan();
2214 }
2215 operators.emplace_back(op94, xnn_delete_operator);
2216
2217 xnn_operator_t op95 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07002218 status = xnn_create_add_nd_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002219 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
2220 0 /* flags */,
2221 &op95);
2222 if (status != xnn_status_success) {
2223 std::cerr << "failed to create operation #95" << std::endl;
2224 return ExecutionPlan();
2225 }
2226 operators.emplace_back(op95, xnn_delete_operator);
2227
2228 xnn_operator_t op96 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07002229 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002230 0 /* top padding */, 0 /* right padding */,
2231 0 /* bottom padding */, 0 /* left padding */,
2232 1 /* kernel height */, 1 /* kernel width */,
2233 1 /* subsampling height */, 1 /* subsampling width */,
2234 1 /* dilation_height */, 1 /* dilation_width */,
2235 1 /* groups */,
2236 160 /* input channels per group */,
2237 960 /* output_channels_per_group */,
2238 160 /* input pixel stride */,
2239 960 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002240 w226.data(), w227.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002241 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
2242 0 /* flags */,
2243 &op96);
2244 if (status != xnn_status_success) {
2245 std::cerr << "failed to create operation #96" << std::endl;
2246 return ExecutionPlan();
2247 }
2248 operators.emplace_back(op96, xnn_delete_operator);
2249
2250 xnn_operator_t op97 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07002251 status = xnn_create_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002252 960 /* channels */,
2253 960 /* input stride */,
2254 960 /* output stride */,
2255 0 /* flags */,
2256 &op97);
2257 if (status != xnn_status_success) {
2258 std::cerr << "failed to create operation #97" << std::endl;
2259 return ExecutionPlan();
2260 }
2261 operators.emplace_back(op97, xnn_delete_operator);
2262
2263 xnn_operator_t op98 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07002264 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002265 2 /* top padding */, 2 /* right padding */,
2266 2 /* bottom padding */, 2 /* left padding */,
2267 5 /* kernel height */, 5 /* kernel width */,
2268 1 /* subsampling height */, 1 /* subsampling width */,
2269 1 /* dilation_height */, 1 /* dilation_width */,
2270 960 /* groups */,
2271 1 /* input channels per group */,
2272 1 /* output_channels_per_group */,
2273 960 /* input pixel stride */,
2274 960 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002275 w228.data(), w229.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002276 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
2277 0 /* flags */,
2278 &op98);
2279 if (status != xnn_status_success) {
2280 std::cerr << "failed to create operation #98" << std::endl;
2281 return ExecutionPlan();
2282 }
2283 operators.emplace_back(op98, xnn_delete_operator);
2284
2285 xnn_operator_t op99 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07002286 status = xnn_create_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002287 960 /* channels */,
2288 960 /* input stride */,
2289 960 /* output stride */,
2290 0 /* flags */,
2291 &op99);
2292 if (status != xnn_status_success) {
2293 std::cerr << "failed to create operation #99" << std::endl;
2294 return ExecutionPlan();
2295 }
2296 operators.emplace_back(op99, xnn_delete_operator);
2297
2298 xnn_operator_t op100 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07002299 status = xnn_create_global_average_pooling_nwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002300 960 /* channels */, 960 /* input stride */, 960 /* output stride */,
2301 -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
2302 0 /* flags */,
2303 &op100);
2304 if (status != xnn_status_success) {
2305 std::cerr << "failed to create operation #100" << std::endl;
2306 return ExecutionPlan();
2307 }
2308 operators.emplace_back(op100, xnn_delete_operator);
2309
2310 xnn_operator_t op101 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07002311 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002312 0 /* top padding */, 0 /* right padding */,
2313 0 /* bottom padding */, 0 /* left padding */,
2314 1 /* kernel height */, 1 /* kernel width */,
2315 1 /* subsampling height */, 1 /* subsampling width */,
2316 1 /* dilation_height */, 1 /* dilation_width */,
2317 1 /* groups */,
2318 960 /* input channels per group */,
2319 240 /* output_channels_per_group */,
2320 960 /* input pixel stride */,
2321 240 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002322 w230.data(), w231.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002323 0.0f /* output min */, std::numeric_limits<float>::infinity() /* output max */,
2324 0 /* flags */,
2325 &op101);
2326 if (status != xnn_status_success) {
2327 std::cerr << "failed to create operation #101" << std::endl;
2328 return ExecutionPlan();
2329 }
2330 operators.emplace_back(op101, xnn_delete_operator);
2331
2332 xnn_operator_t op102 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07002333 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002334 0 /* top padding */, 0 /* right padding */,
2335 0 /* bottom padding */, 0 /* left padding */,
2336 1 /* kernel height */, 1 /* kernel width */,
2337 1 /* subsampling height */, 1 /* subsampling width */,
2338 1 /* dilation_height */, 1 /* dilation_width */,
2339 1 /* groups */,
2340 240 /* input channels per group */,
2341 960 /* output_channels_per_group */,
2342 240 /* input pixel stride */,
2343 960 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002344 w232.data(), w233.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002345 0.0f /* output min */, +0x1.00014Fp+0 /* output max */,
2346 0 /* flags */,
2347 &op102);
2348 if (status != xnn_status_success) {
2349 std::cerr << "failed to create operation #102" << std::endl;
2350 return ExecutionPlan();
2351 }
2352 operators.emplace_back(op102, xnn_delete_operator);
2353
2354 xnn_operator_t op103 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07002355 status = xnn_create_multiply_nd_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002356 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
2357 0 /* flags */,
2358 &op103);
2359 if (status != xnn_status_success) {
2360 std::cerr << "failed to create operation #103" << std::endl;
2361 return ExecutionPlan();
2362 }
2363 operators.emplace_back(op103, xnn_delete_operator);
2364
2365 xnn_operator_t op104 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07002366 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002367 0 /* top padding */, 0 /* right padding */,
2368 0 /* bottom padding */, 0 /* left padding */,
2369 1 /* kernel height */, 1 /* kernel width */,
2370 1 /* subsampling height */, 1 /* subsampling width */,
2371 1 /* dilation_height */, 1 /* dilation_width */,
2372 1 /* groups */,
2373 960 /* input channels per group */,
2374 160 /* output_channels_per_group */,
2375 960 /* input pixel stride */,
2376 160 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002377 w234.data(), w235.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002378 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
2379 0 /* flags */,
2380 &op104);
2381 if (status != xnn_status_success) {
2382 std::cerr << "failed to create operation #104" << std::endl;
2383 return ExecutionPlan();
2384 }
2385 operators.emplace_back(op104, xnn_delete_operator);
2386
2387 xnn_operator_t op105 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07002388 status = xnn_create_add_nd_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002389 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
2390 0 /* flags */,
2391 &op105);
2392 if (status != xnn_status_success) {
2393 std::cerr << "failed to create operation #105" << std::endl;
2394 return ExecutionPlan();
2395 }
2396 operators.emplace_back(op105, xnn_delete_operator);
2397
2398 xnn_operator_t op106 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07002399 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002400 0 /* top padding */, 0 /* right padding */,
2401 0 /* bottom padding */, 0 /* left padding */,
2402 1 /* kernel height */, 1 /* kernel width */,
2403 1 /* subsampling height */, 1 /* subsampling width */,
2404 1 /* dilation_height */, 1 /* dilation_width */,
2405 1 /* groups */,
2406 160 /* input channels per group */,
2407 960 /* output_channels_per_group */,
2408 160 /* input pixel stride */,
2409 960 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002410 w236.data(), w237.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002411 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
2412 0 /* flags */,
2413 &op106);
2414 if (status != xnn_status_success) {
2415 std::cerr << "failed to create operation #106" << std::endl;
2416 return ExecutionPlan();
2417 }
2418 operators.emplace_back(op106, xnn_delete_operator);
2419
2420 xnn_operator_t op107 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07002421 status = xnn_create_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002422 960 /* channels */,
2423 960 /* input stride */,
2424 960 /* output stride */,
2425 0 /* flags */,
2426 &op107);
2427 if (status != xnn_status_success) {
2428 std::cerr << "failed to create operation #107" << std::endl;
2429 return ExecutionPlan();
2430 }
2431 operators.emplace_back(op107, xnn_delete_operator);
2432
2433 xnn_operator_t op108 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07002434 status = xnn_create_global_average_pooling_nwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002435 960 /* channels */, 960 /* input stride */, 960 /* output stride */,
2436 -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
2437 0 /* flags */,
2438 &op108);
2439 if (status != xnn_status_success) {
2440 std::cerr << "failed to create operation #108" << std::endl;
2441 return ExecutionPlan();
2442 }
2443 operators.emplace_back(op108, xnn_delete_operator);
2444
2445 xnn_operator_t op109 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07002446 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002447 0 /* top padding */, 0 /* right padding */,
2448 0 /* bottom padding */, 0 /* left padding */,
2449 1 /* kernel height */, 1 /* kernel width */,
2450 1 /* subsampling height */, 1 /* subsampling width */,
2451 1 /* dilation_height */, 1 /* dilation_width */,
2452 1 /* groups */,
2453 960 /* input channels per group */,
2454 1280 /* output_channels_per_group */,
2455 960 /* input pixel stride */,
2456 1280 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002457 w238.data(), w239.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002458 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
2459 0 /* flags */,
2460 &op109);
2461 if (status != xnn_status_success) {
2462 std::cerr << "failed to create operation #109" << std::endl;
2463 return ExecutionPlan();
2464 }
2465 operators.emplace_back(op109, xnn_delete_operator);
2466
2467 xnn_operator_t op110 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07002468 status = xnn_create_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002469 1280 /* channels */,
2470 1280 /* input stride */,
2471 1280 /* output stride */,
2472 0 /* flags */,
2473 &op110);
2474 if (status != xnn_status_success) {
2475 std::cerr << "failed to create operation #110" << std::endl;
2476 return ExecutionPlan();
2477 }
2478 operators.emplace_back(op110, xnn_delete_operator);
2479
2480 xnn_operator_t op111 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07002481 status = xnn_create_global_average_pooling_nwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002482 1280 /* channels */, 1280 /* input stride */, 1280 /* output stride */,
2483 -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
2484 0 /* flags */,
2485 &op111);
2486 if (status != xnn_status_success) {
2487 std::cerr << "failed to create operation #111" << std::endl;
2488 return ExecutionPlan();
2489 }
2490 operators.emplace_back(op111, xnn_delete_operator);
2491
2492 xnn_operator_t op112 = nullptr;
Marat Dukhan270a2c42020-06-26 16:45:52 -07002493 status = xnn_create_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002494 0 /* top padding */, 0 /* right padding */,
2495 0 /* bottom padding */, 0 /* left padding */,
2496 1 /* kernel height */, 1 /* kernel width */,
2497 1 /* subsampling height */, 1 /* subsampling width */,
2498 1 /* dilation_height */, 1 /* dilation_width */,
2499 1 /* groups */,
2500 1280 /* input channels per group */,
2501 1001 /* output_channels_per_group */,
2502 1280 /* input pixel stride */,
2503 1001 /* output pixel stride */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002504 w240.data(), w241.data(),
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002505 -std::numeric_limits<float>::infinity() /* output min */, std::numeric_limits<float>::infinity() /* output max */,
2506 0 /* flags */,
2507 &op112);
2508 if (status != xnn_status_success) {
2509 std::cerr << "failed to create operation #112" << std::endl;
2510 return ExecutionPlan();
2511 }
2512 operators.emplace_back(op112, xnn_delete_operator);
2513
2514
2515
Marat Dukhan270a2c42020-06-26 16:45:52 -07002516 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002517 op0,
2518 1 /* batch size */, 224 /* input height */, 224 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002519 v0.data() /* input */, v1.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002520 threadpool /* threadpool */);
2521 if (status != xnn_status_success) {
2522 std::cerr << "failed to setup operation #0" << std::endl;
2523 return ExecutionPlan();
2524 }
2525
Marat Dukhan270a2c42020-06-26 16:45:52 -07002526 status = xnn_setup_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002527 op1,
2528 12544 /* batch size */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002529 v1.data() /* input */, v2.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002530 threadpool /* threadpool */);
2531 if (status != xnn_status_success) {
2532 std::cerr << "failed to setup operation #1" << std::endl;
2533 return ExecutionPlan();
2534 }
2535
Marat Dukhan270a2c42020-06-26 16:45:52 -07002536 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002537 op2,
2538 1 /* batch size */, 112 /* input height */, 112 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002539 v2.data() /* input */, v3.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002540 threadpool /* threadpool */);
2541 if (status != xnn_status_success) {
2542 std::cerr << "failed to setup operation #2" << std::endl;
2543 return ExecutionPlan();
2544 }
2545
Marat Dukhan270a2c42020-06-26 16:45:52 -07002546 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002547 op3,
2548 1 /* batch size */, 112 /* input height */, 112 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002549 v3.data() /* input */, v4.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002550 threadpool /* threadpool */);
2551 if (status != xnn_status_success) {
2552 std::cerr << "failed to setup operation #3" << std::endl;
2553 return ExecutionPlan();
2554 }
2555
Marat Dukhanb2164a32020-06-04 19:05:27 -07002556 {
2557 const size_t a_shape[] = { 1, 112, 112, 16 };
2558 const size_t b_shape[] = { 1, 112, 112, 16 };
Marat Dukhan270a2c42020-06-26 16:45:52 -07002559 status = xnn_setup_add_nd_f16(
Marat Dukhanb2164a32020-06-04 19:05:27 -07002560 op4,
2561 4, a_shape, 4, b_shape,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002562 v4.data() /* a */, v2.data() /* b */, v5.data() /* output */,
Marat Dukhanb2164a32020-06-04 19:05:27 -07002563 threadpool /* threadpool */);
2564 }
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002565 if (status != xnn_status_success) {
2566 std::cerr << "failed to setup operation #4" << std::endl;
2567 return ExecutionPlan();
2568 }
2569
Marat Dukhan270a2c42020-06-26 16:45:52 -07002570 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002571 op5,
2572 1 /* batch size */, 112 /* input height */, 112 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002573 v5.data() /* input */, v6.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002574 threadpool /* threadpool */);
2575 if (status != xnn_status_success) {
2576 std::cerr << "failed to setup operation #5" << std::endl;
2577 return ExecutionPlan();
2578 }
2579
Marat Dukhan270a2c42020-06-26 16:45:52 -07002580 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002581 op6,
2582 1 /* batch size */, 112 /* input height */, 112 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002583 v6.data() /* input */, v7.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002584 threadpool /* threadpool */);
2585 if (status != xnn_status_success) {
2586 std::cerr << "failed to setup operation #6" << std::endl;
2587 return ExecutionPlan();
2588 }
2589
Marat Dukhan270a2c42020-06-26 16:45:52 -07002590 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002591 op7,
2592 1 /* batch size */, 56 /* input height */, 56 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002593 v7.data() /* input */, v8.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002594 threadpool /* threadpool */);
2595 if (status != xnn_status_success) {
2596 std::cerr << "failed to setup operation #7" << std::endl;
2597 return ExecutionPlan();
2598 }
2599
Marat Dukhan270a2c42020-06-26 16:45:52 -07002600 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002601 op8,
2602 1 /* batch size */, 56 /* input height */, 56 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002603 v8.data() /* input */, v9.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002604 threadpool /* threadpool */);
2605 if (status != xnn_status_success) {
2606 std::cerr << "failed to setup operation #8" << std::endl;
2607 return ExecutionPlan();
2608 }
2609
Marat Dukhan270a2c42020-06-26 16:45:52 -07002610 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002611 op9,
2612 1 /* batch size */, 56 /* input height */, 56 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002613 v9.data() /* input */, v10.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002614 threadpool /* threadpool */);
2615 if (status != xnn_status_success) {
2616 std::cerr << "failed to setup operation #9" << std::endl;
2617 return ExecutionPlan();
2618 }
2619
Marat Dukhan270a2c42020-06-26 16:45:52 -07002620 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002621 op10,
2622 1 /* batch size */, 56 /* input height */, 56 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002623 v10.data() /* input */, v11.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002624 threadpool /* threadpool */);
2625 if (status != xnn_status_success) {
2626 std::cerr << "failed to setup operation #10" << std::endl;
2627 return ExecutionPlan();
2628 }
2629
Marat Dukhanb2164a32020-06-04 19:05:27 -07002630 {
2631 const size_t a_shape[] = { 1, 56, 56, 24 };
2632 const size_t b_shape[] = { 1, 56, 56, 24 };
Marat Dukhan270a2c42020-06-26 16:45:52 -07002633 status = xnn_setup_add_nd_f16(
Marat Dukhanb2164a32020-06-04 19:05:27 -07002634 op11,
2635 4, a_shape, 4, b_shape,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002636 v11.data() /* a */, v8.data() /* b */, v12.data() /* output */,
Marat Dukhanb2164a32020-06-04 19:05:27 -07002637 threadpool /* threadpool */);
2638 }
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002639 if (status != xnn_status_success) {
2640 std::cerr << "failed to setup operation #11" << std::endl;
2641 return ExecutionPlan();
2642 }
2643
Marat Dukhan270a2c42020-06-26 16:45:52 -07002644 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002645 op12,
2646 1 /* batch size */, 56 /* input height */, 56 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002647 v12.data() /* input */, v13.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002648 threadpool /* threadpool */);
2649 if (status != xnn_status_success) {
2650 std::cerr << "failed to setup operation #12" << std::endl;
2651 return ExecutionPlan();
2652 }
2653
Marat Dukhan270a2c42020-06-26 16:45:52 -07002654 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002655 op13,
2656 1 /* batch size */, 56 /* input height */, 56 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002657 v13.data() /* input */, v14.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002658 threadpool /* threadpool */);
2659 if (status != xnn_status_success) {
2660 std::cerr << "failed to setup operation #13" << std::endl;
2661 return ExecutionPlan();
2662 }
2663
Marat Dukhan270a2c42020-06-26 16:45:52 -07002664 status = xnn_setup_global_average_pooling_nwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002665 op14,
2666 1 /* batch size */, 784 /* width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002667 v14.data() /* input */, v15.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002668 threadpool /* threadpool */);
2669 if (status != xnn_status_success) {
2670 std::cerr << "failed to setup operation #14" << std::endl;
2671 return ExecutionPlan();
2672 }
2673
Marat Dukhan270a2c42020-06-26 16:45:52 -07002674 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002675 op15,
2676 1 /* batch size */, 1 /* input height */, 1 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002677 v15.data() /* input */, v16.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002678 threadpool /* threadpool */);
2679 if (status != xnn_status_success) {
2680 std::cerr << "failed to setup operation #15" << std::endl;
2681 return ExecutionPlan();
2682 }
2683
Marat Dukhan270a2c42020-06-26 16:45:52 -07002684 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002685 op16,
2686 1 /* batch size */, 1 /* input height */, 1 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002687 v16.data() /* input */, v17.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002688 threadpool /* threadpool */);
2689 if (status != xnn_status_success) {
2690 std::cerr << "failed to setup operation #16" << std::endl;
2691 return ExecutionPlan();
2692 }
2693
2694 {
2695 const size_t a_shape[] = { 1, 28, 28, 72 };
2696 const size_t b_shape[] = { 1, 1, 1, 72 };
Marat Dukhan270a2c42020-06-26 16:45:52 -07002697 status = xnn_setup_multiply_nd_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002698 op17,
2699 4, a_shape, 4, b_shape,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002700 v14.data() /* a */, v17.data() /* b */, v18.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002701 threadpool /* threadpool */);
2702 }
2703 if (status != xnn_status_success) {
2704 std::cerr << "failed to setup operation #17" << std::endl;
2705 return ExecutionPlan();
2706 }
2707
Marat Dukhan270a2c42020-06-26 16:45:52 -07002708 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002709 op18,
2710 1 /* batch size */, 28 /* input height */, 28 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002711 v18.data() /* input */, v19.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002712 threadpool /* threadpool */);
2713 if (status != xnn_status_success) {
2714 std::cerr << "failed to setup operation #18" << std::endl;
2715 return ExecutionPlan();
2716 }
2717
Marat Dukhan270a2c42020-06-26 16:45:52 -07002718 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002719 op19,
2720 1 /* batch size */, 28 /* input height */, 28 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002721 v19.data() /* input */, v20.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002722 threadpool /* threadpool */);
2723 if (status != xnn_status_success) {
2724 std::cerr << "failed to setup operation #19" << std::endl;
2725 return ExecutionPlan();
2726 }
2727
Marat Dukhan270a2c42020-06-26 16:45:52 -07002728 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002729 op20,
2730 1 /* batch size */, 28 /* input height */, 28 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002731 v20.data() /* input */, v21.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002732 threadpool /* threadpool */);
2733 if (status != xnn_status_success) {
2734 std::cerr << "failed to setup operation #20" << std::endl;
2735 return ExecutionPlan();
2736 }
2737
Marat Dukhan270a2c42020-06-26 16:45:52 -07002738 status = xnn_setup_global_average_pooling_nwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002739 op21,
2740 1 /* batch size */, 784 /* width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002741 v21.data() /* input */, v22.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002742 threadpool /* threadpool */);
2743 if (status != xnn_status_success) {
2744 std::cerr << "failed to setup operation #21" << std::endl;
2745 return ExecutionPlan();
2746 }
2747
Marat Dukhan270a2c42020-06-26 16:45:52 -07002748 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002749 op22,
2750 1 /* batch size */, 1 /* input height */, 1 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002751 v22.data() /* input */, v23.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002752 threadpool /* threadpool */);
2753 if (status != xnn_status_success) {
2754 std::cerr << "failed to setup operation #22" << std::endl;
2755 return ExecutionPlan();
2756 }
2757
Marat Dukhan270a2c42020-06-26 16:45:52 -07002758 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002759 op23,
2760 1 /* batch size */, 1 /* input height */, 1 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002761 v23.data() /* input */, v24.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002762 threadpool /* threadpool */);
2763 if (status != xnn_status_success) {
2764 std::cerr << "failed to setup operation #23" << std::endl;
2765 return ExecutionPlan();
2766 }
2767
2768 {
2769 const size_t a_shape[] = { 1, 28, 28, 120 };
2770 const size_t b_shape[] = { 1, 1, 1, 120 };
Marat Dukhan270a2c42020-06-26 16:45:52 -07002771 status = xnn_setup_multiply_nd_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002772 op24,
2773 4, a_shape, 4, b_shape,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002774 v21.data() /* a */, v24.data() /* b */, v25.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002775 threadpool /* threadpool */);
2776 }
2777 if (status != xnn_status_success) {
2778 std::cerr << "failed to setup operation #24" << std::endl;
2779 return ExecutionPlan();
2780 }
2781
Marat Dukhan270a2c42020-06-26 16:45:52 -07002782 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002783 op25,
2784 1 /* batch size */, 28 /* input height */, 28 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002785 v25.data() /* input */, v26.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002786 threadpool /* threadpool */);
2787 if (status != xnn_status_success) {
2788 std::cerr << "failed to setup operation #25" << std::endl;
2789 return ExecutionPlan();
2790 }
2791
Marat Dukhanb2164a32020-06-04 19:05:27 -07002792 {
2793 const size_t a_shape[] = { 1, 28, 28, 40 };
2794 const size_t b_shape[] = { 1, 28, 28, 40 };
Marat Dukhan270a2c42020-06-26 16:45:52 -07002795 status = xnn_setup_add_nd_f16(
Marat Dukhanb2164a32020-06-04 19:05:27 -07002796 op26,
2797 4, a_shape, 4, b_shape,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002798 v26.data() /* a */, v19.data() /* b */, v27.data() /* output */,
Marat Dukhanb2164a32020-06-04 19:05:27 -07002799 threadpool /* threadpool */);
2800 }
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002801 if (status != xnn_status_success) {
2802 std::cerr << "failed to setup operation #26" << std::endl;
2803 return ExecutionPlan();
2804 }
2805
Marat Dukhan270a2c42020-06-26 16:45:52 -07002806 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002807 op27,
2808 1 /* batch size */, 28 /* input height */, 28 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002809 v27.data() /* input */, v28.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002810 threadpool /* threadpool */);
2811 if (status != xnn_status_success) {
2812 std::cerr << "failed to setup operation #27" << std::endl;
2813 return ExecutionPlan();
2814 }
2815
Marat Dukhan270a2c42020-06-26 16:45:52 -07002816 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002817 op28,
2818 1 /* batch size */, 28 /* input height */, 28 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002819 v28.data() /* input */, v29.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002820 threadpool /* threadpool */);
2821 if (status != xnn_status_success) {
2822 std::cerr << "failed to setup operation #28" << std::endl;
2823 return ExecutionPlan();
2824 }
2825
Marat Dukhan270a2c42020-06-26 16:45:52 -07002826 status = xnn_setup_global_average_pooling_nwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002827 op29,
2828 1 /* batch size */, 784 /* width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002829 v29.data() /* input */, v30.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002830 threadpool /* threadpool */);
2831 if (status != xnn_status_success) {
2832 std::cerr << "failed to setup operation #29" << std::endl;
2833 return ExecutionPlan();
2834 }
2835
Marat Dukhan270a2c42020-06-26 16:45:52 -07002836 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002837 op30,
2838 1 /* batch size */, 1 /* input height */, 1 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002839 v30.data() /* input */, v31.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002840 threadpool /* threadpool */);
2841 if (status != xnn_status_success) {
2842 std::cerr << "failed to setup operation #30" << std::endl;
2843 return ExecutionPlan();
2844 }
2845
Marat Dukhan270a2c42020-06-26 16:45:52 -07002846 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002847 op31,
2848 1 /* batch size */, 1 /* input height */, 1 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002849 v31.data() /* input */, v32.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002850 threadpool /* threadpool */);
2851 if (status != xnn_status_success) {
2852 std::cerr << "failed to setup operation #31" << std::endl;
2853 return ExecutionPlan();
2854 }
2855
2856 {
2857 const size_t a_shape[] = { 1, 28, 28, 120 };
2858 const size_t b_shape[] = { 1, 1, 1, 120 };
Marat Dukhan270a2c42020-06-26 16:45:52 -07002859 status = xnn_setup_multiply_nd_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002860 op32,
2861 4, a_shape, 4, b_shape,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002862 v29.data() /* a */, v32.data() /* b */, v33.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002863 threadpool /* threadpool */);
2864 }
2865 if (status != xnn_status_success) {
2866 std::cerr << "failed to setup operation #32" << std::endl;
2867 return ExecutionPlan();
2868 }
2869
Marat Dukhan270a2c42020-06-26 16:45:52 -07002870 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002871 op33,
2872 1 /* batch size */, 28 /* input height */, 28 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002873 v33.data() /* input */, v34.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002874 threadpool /* threadpool */);
2875 if (status != xnn_status_success) {
2876 std::cerr << "failed to setup operation #33" << std::endl;
2877 return ExecutionPlan();
2878 }
2879
Marat Dukhanb2164a32020-06-04 19:05:27 -07002880 {
2881 const size_t a_shape[] = { 1, 28, 28, 40 };
2882 const size_t b_shape[] = { 1, 28, 28, 40 };
Marat Dukhan270a2c42020-06-26 16:45:52 -07002883 status = xnn_setup_add_nd_f16(
Marat Dukhanb2164a32020-06-04 19:05:27 -07002884 op34,
2885 4, a_shape, 4, b_shape,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002886 v34.data() /* a */, v27.data() /* b */, v35.data() /* output */,
Marat Dukhanb2164a32020-06-04 19:05:27 -07002887 threadpool /* threadpool */);
2888 }
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002889 if (status != xnn_status_success) {
2890 std::cerr << "failed to setup operation #34" << std::endl;
2891 return ExecutionPlan();
2892 }
2893
Marat Dukhan270a2c42020-06-26 16:45:52 -07002894 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002895 op35,
2896 1 /* batch size */, 28 /* input height */, 28 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002897 v35.data() /* input */, v36.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002898 threadpool /* threadpool */);
2899 if (status != xnn_status_success) {
2900 std::cerr << "failed to setup operation #35" << std::endl;
2901 return ExecutionPlan();
2902 }
2903
Marat Dukhan270a2c42020-06-26 16:45:52 -07002904 status = xnn_setup_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002905 op36,
2906 784 /* batch size */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002907 v36.data() /* input */, v37.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002908 threadpool /* threadpool */);
2909 if (status != xnn_status_success) {
2910 std::cerr << "failed to setup operation #36" << std::endl;
2911 return ExecutionPlan();
2912 }
2913
Marat Dukhan270a2c42020-06-26 16:45:52 -07002914 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002915 op37,
2916 1 /* batch size */, 28 /* input height */, 28 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002917 v37.data() /* input */, v38.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002918 threadpool /* threadpool */);
2919 if (status != xnn_status_success) {
2920 std::cerr << "failed to setup operation #37" << std::endl;
2921 return ExecutionPlan();
2922 }
2923
Marat Dukhan270a2c42020-06-26 16:45:52 -07002924 status = xnn_setup_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002925 op38,
2926 196 /* batch size */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002927 v38.data() /* input */, v39.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002928 threadpool /* threadpool */);
2929 if (status != xnn_status_success) {
2930 std::cerr << "failed to setup operation #38" << std::endl;
2931 return ExecutionPlan();
2932 }
2933
Marat Dukhan270a2c42020-06-26 16:45:52 -07002934 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002935 op39,
2936 1 /* batch size */, 14 /* input height */, 14 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002937 v39.data() /* input */, v40.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002938 threadpool /* threadpool */);
2939 if (status != xnn_status_success) {
2940 std::cerr << "failed to setup operation #39" << std::endl;
2941 return ExecutionPlan();
2942 }
2943
Marat Dukhan270a2c42020-06-26 16:45:52 -07002944 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002945 op40,
2946 1 /* batch size */, 14 /* input height */, 14 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002947 v40.data() /* input */, v41.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002948 threadpool /* threadpool */);
2949 if (status != xnn_status_success) {
2950 std::cerr << "failed to setup operation #40" << std::endl;
2951 return ExecutionPlan();
2952 }
2953
Marat Dukhan270a2c42020-06-26 16:45:52 -07002954 status = xnn_setup_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002955 op41,
2956 196 /* batch size */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002957 v41.data() /* input */, v42.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002958 threadpool /* threadpool */);
2959 if (status != xnn_status_success) {
2960 std::cerr << "failed to setup operation #41" << std::endl;
2961 return ExecutionPlan();
2962 }
2963
Marat Dukhan270a2c42020-06-26 16:45:52 -07002964 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002965 op42,
2966 1 /* batch size */, 14 /* input height */, 14 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002967 v42.data() /* input */, v43.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002968 threadpool /* threadpool */);
2969 if (status != xnn_status_success) {
2970 std::cerr << "failed to setup operation #42" << std::endl;
2971 return ExecutionPlan();
2972 }
2973
Marat Dukhan270a2c42020-06-26 16:45:52 -07002974 status = xnn_setup_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002975 op43,
2976 196 /* batch size */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002977 v43.data() /* input */, v44.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002978 threadpool /* threadpool */);
2979 if (status != xnn_status_success) {
2980 std::cerr << "failed to setup operation #43" << std::endl;
2981 return ExecutionPlan();
2982 }
2983
Marat Dukhan270a2c42020-06-26 16:45:52 -07002984 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002985 op44,
2986 1 /* batch size */, 14 /* input height */, 14 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08002987 v44.data() /* input */, v45.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08002988 threadpool /* threadpool */);
2989 if (status != xnn_status_success) {
2990 std::cerr << "failed to setup operation #44" << std::endl;
2991 return ExecutionPlan();
2992 }
2993
Marat Dukhanb2164a32020-06-04 19:05:27 -07002994 {
2995 const size_t a_shape[] = { 1, 14, 14, 80 };
2996 const size_t b_shape[] = { 1, 14, 14, 80 };
Marat Dukhan270a2c42020-06-26 16:45:52 -07002997 status = xnn_setup_add_nd_f16(
Marat Dukhanb2164a32020-06-04 19:05:27 -07002998 op45,
2999 4, a_shape, 4, b_shape,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003000 v45.data() /* a */, v40.data() /* b */, v46.data() /* output */,
Marat Dukhanb2164a32020-06-04 19:05:27 -07003001 threadpool /* threadpool */);
3002 }
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003003 if (status != xnn_status_success) {
3004 std::cerr << "failed to setup operation #45" << std::endl;
3005 return ExecutionPlan();
3006 }
3007
Marat Dukhan270a2c42020-06-26 16:45:52 -07003008 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003009 op46,
3010 1 /* batch size */, 14 /* input height */, 14 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003011 v46.data() /* input */, v47.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003012 threadpool /* threadpool */);
3013 if (status != xnn_status_success) {
3014 std::cerr << "failed to setup operation #46" << std::endl;
3015 return ExecutionPlan();
3016 }
3017
Marat Dukhan270a2c42020-06-26 16:45:52 -07003018 status = xnn_setup_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003019 op47,
3020 196 /* batch size */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003021 v47.data() /* input */, v48.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003022 threadpool /* threadpool */);
3023 if (status != xnn_status_success) {
3024 std::cerr << "failed to setup operation #47" << std::endl;
3025 return ExecutionPlan();
3026 }
3027
Marat Dukhan270a2c42020-06-26 16:45:52 -07003028 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003029 op48,
3030 1 /* batch size */, 14 /* input height */, 14 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003031 v48.data() /* input */, v49.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003032 threadpool /* threadpool */);
3033 if (status != xnn_status_success) {
3034 std::cerr << "failed to setup operation #48" << std::endl;
3035 return ExecutionPlan();
3036 }
3037
Marat Dukhan270a2c42020-06-26 16:45:52 -07003038 status = xnn_setup_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003039 op49,
3040 196 /* batch size */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003041 v49.data() /* input */, v50.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003042 threadpool /* threadpool */);
3043 if (status != xnn_status_success) {
3044 std::cerr << "failed to setup operation #49" << std::endl;
3045 return ExecutionPlan();
3046 }
3047
Marat Dukhan270a2c42020-06-26 16:45:52 -07003048 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003049 op50,
3050 1 /* batch size */, 14 /* input height */, 14 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003051 v50.data() /* input */, v51.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003052 threadpool /* threadpool */);
3053 if (status != xnn_status_success) {
3054 std::cerr << "failed to setup operation #50" << std::endl;
3055 return ExecutionPlan();
3056 }
3057
Marat Dukhanb2164a32020-06-04 19:05:27 -07003058 {
3059 const size_t a_shape[] = { 1, 14, 14, 80 };
3060 const size_t b_shape[] = { 1, 14, 14, 80 };
Marat Dukhan270a2c42020-06-26 16:45:52 -07003061 status = xnn_setup_add_nd_f16(
Marat Dukhanb2164a32020-06-04 19:05:27 -07003062 op51,
3063 4, a_shape, 4, b_shape,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003064 v51.data() /* a */, v46.data() /* b */, v52.data() /* output */,
Marat Dukhanb2164a32020-06-04 19:05:27 -07003065 threadpool /* threadpool */);
3066 }
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003067 if (status != xnn_status_success) {
3068 std::cerr << "failed to setup operation #51" << std::endl;
3069 return ExecutionPlan();
3070 }
3071
Marat Dukhan270a2c42020-06-26 16:45:52 -07003072 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003073 op52,
3074 1 /* batch size */, 14 /* input height */, 14 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003075 v52.data() /* input */, v53.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003076 threadpool /* threadpool */);
3077 if (status != xnn_status_success) {
3078 std::cerr << "failed to setup operation #52" << std::endl;
3079 return ExecutionPlan();
3080 }
3081
Marat Dukhan270a2c42020-06-26 16:45:52 -07003082 status = xnn_setup_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003083 op53,
3084 196 /* batch size */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003085 v53.data() /* input */, v54.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003086 threadpool /* threadpool */);
3087 if (status != xnn_status_success) {
3088 std::cerr << "failed to setup operation #53" << std::endl;
3089 return ExecutionPlan();
3090 }
3091
Marat Dukhan270a2c42020-06-26 16:45:52 -07003092 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003093 op54,
3094 1 /* batch size */, 14 /* input height */, 14 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003095 v54.data() /* input */, v55.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003096 threadpool /* threadpool */);
3097 if (status != xnn_status_success) {
3098 std::cerr << "failed to setup operation #54" << std::endl;
3099 return ExecutionPlan();
3100 }
3101
Marat Dukhan270a2c42020-06-26 16:45:52 -07003102 status = xnn_setup_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003103 op55,
3104 196 /* batch size */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003105 v55.data() /* input */, v56.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003106 threadpool /* threadpool */);
3107 if (status != xnn_status_success) {
3108 std::cerr << "failed to setup operation #55" << std::endl;
3109 return ExecutionPlan();
3110 }
3111
Marat Dukhan270a2c42020-06-26 16:45:52 -07003112 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003113 op56,
3114 1 /* batch size */, 14 /* input height */, 14 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003115 v56.data() /* input */, v57.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003116 threadpool /* threadpool */);
3117 if (status != xnn_status_success) {
3118 std::cerr << "failed to setup operation #56" << std::endl;
3119 return ExecutionPlan();
3120 }
3121
Marat Dukhanb2164a32020-06-04 19:05:27 -07003122 {
3123 const size_t a_shape[] = { 1, 14, 14, 80 };
3124 const size_t b_shape[] = { 1, 14, 14, 80 };
Marat Dukhan270a2c42020-06-26 16:45:52 -07003125 status = xnn_setup_add_nd_f16(
Marat Dukhanb2164a32020-06-04 19:05:27 -07003126 op57,
3127 4, a_shape, 4, b_shape,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003128 v57.data() /* a */, v52.data() /* b */, v58.data() /* output */,
Marat Dukhanb2164a32020-06-04 19:05:27 -07003129 threadpool /* threadpool */);
3130 }
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003131 if (status != xnn_status_success) {
3132 std::cerr << "failed to setup operation #57" << std::endl;
3133 return ExecutionPlan();
3134 }
3135
Marat Dukhan270a2c42020-06-26 16:45:52 -07003136 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003137 op58,
3138 1 /* batch size */, 14 /* input height */, 14 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003139 v58.data() /* input */, v59.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003140 threadpool /* threadpool */);
3141 if (status != xnn_status_success) {
3142 std::cerr << "failed to setup operation #58" << std::endl;
3143 return ExecutionPlan();
3144 }
3145
Marat Dukhan270a2c42020-06-26 16:45:52 -07003146 status = xnn_setup_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003147 op59,
3148 196 /* batch size */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003149 v59.data() /* input */, v60.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003150 threadpool /* threadpool */);
3151 if (status != xnn_status_success) {
3152 std::cerr << "failed to setup operation #59" << std::endl;
3153 return ExecutionPlan();
3154 }
3155
Marat Dukhan270a2c42020-06-26 16:45:52 -07003156 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003157 op60,
3158 1 /* batch size */, 14 /* input height */, 14 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003159 v60.data() /* input */, v61.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003160 threadpool /* threadpool */);
3161 if (status != xnn_status_success) {
3162 std::cerr << "failed to setup operation #60" << std::endl;
3163 return ExecutionPlan();
3164 }
3165
Marat Dukhan270a2c42020-06-26 16:45:52 -07003166 status = xnn_setup_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003167 op61,
3168 196 /* batch size */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003169 v61.data() /* input */, v62.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003170 threadpool /* threadpool */);
3171 if (status != xnn_status_success) {
3172 std::cerr << "failed to setup operation #61" << std::endl;
3173 return ExecutionPlan();
3174 }
3175
Marat Dukhan270a2c42020-06-26 16:45:52 -07003176 status = xnn_setup_global_average_pooling_nwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003177 op62,
3178 1 /* batch size */, 196 /* width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003179 v62.data() /* input */, v63.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003180 threadpool /* threadpool */);
3181 if (status != xnn_status_success) {
3182 std::cerr << "failed to setup operation #62" << std::endl;
3183 return ExecutionPlan();
3184 }
3185
Marat Dukhan270a2c42020-06-26 16:45:52 -07003186 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003187 op63,
3188 1 /* batch size */, 1 /* input height */, 1 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003189 v63.data() /* input */, v64.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003190 threadpool /* threadpool */);
3191 if (status != xnn_status_success) {
3192 std::cerr << "failed to setup operation #63" << std::endl;
3193 return ExecutionPlan();
3194 }
3195
Marat Dukhan270a2c42020-06-26 16:45:52 -07003196 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003197 op64,
3198 1 /* batch size */, 1 /* input height */, 1 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003199 v64.data() /* input */, v65.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003200 threadpool /* threadpool */);
3201 if (status != xnn_status_success) {
3202 std::cerr << "failed to setup operation #64" << std::endl;
3203 return ExecutionPlan();
3204 }
3205
3206 {
3207 const size_t a_shape[] = { 1, 14, 14, 480 };
3208 const size_t b_shape[] = { 1, 1, 1, 480 };
Marat Dukhan270a2c42020-06-26 16:45:52 -07003209 status = xnn_setup_multiply_nd_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003210 op65,
3211 4, a_shape, 4, b_shape,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003212 v62.data() /* a */, v65.data() /* b */, v66.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003213 threadpool /* threadpool */);
3214 }
3215 if (status != xnn_status_success) {
3216 std::cerr << "failed to setup operation #65" << std::endl;
3217 return ExecutionPlan();
3218 }
3219
Marat Dukhan270a2c42020-06-26 16:45:52 -07003220 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003221 op66,
3222 1 /* batch size */, 14 /* input height */, 14 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003223 v66.data() /* input */, v67.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003224 threadpool /* threadpool */);
3225 if (status != xnn_status_success) {
3226 std::cerr << "failed to setup operation #66" << std::endl;
3227 return ExecutionPlan();
3228 }
3229
Marat Dukhan270a2c42020-06-26 16:45:52 -07003230 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003231 op67,
3232 1 /* batch size */, 14 /* input height */, 14 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003233 v67.data() /* input */, v68.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003234 threadpool /* threadpool */);
3235 if (status != xnn_status_success) {
3236 std::cerr << "failed to setup operation #67" << std::endl;
3237 return ExecutionPlan();
3238 }
3239
Marat Dukhan270a2c42020-06-26 16:45:52 -07003240 status = xnn_setup_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003241 op68,
3242 196 /* batch size */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003243 v68.data() /* input */, v69.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003244 threadpool /* threadpool */);
3245 if (status != xnn_status_success) {
3246 std::cerr << "failed to setup operation #68" << std::endl;
3247 return ExecutionPlan();
3248 }
3249
Marat Dukhan270a2c42020-06-26 16:45:52 -07003250 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003251 op69,
3252 1 /* batch size */, 14 /* input height */, 14 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003253 v69.data() /* input */, v70.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003254 threadpool /* threadpool */);
3255 if (status != xnn_status_success) {
3256 std::cerr << "failed to setup operation #69" << std::endl;
3257 return ExecutionPlan();
3258 }
3259
Marat Dukhan270a2c42020-06-26 16:45:52 -07003260 status = xnn_setup_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003261 op70,
3262 196 /* batch size */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003263 v70.data() /* input */, v71.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003264 threadpool /* threadpool */);
3265 if (status != xnn_status_success) {
3266 std::cerr << "failed to setup operation #70" << std::endl;
3267 return ExecutionPlan();
3268 }
3269
Marat Dukhan270a2c42020-06-26 16:45:52 -07003270 status = xnn_setup_global_average_pooling_nwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003271 op71,
3272 1 /* batch size */, 196 /* width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003273 v71.data() /* input */, v72.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003274 threadpool /* threadpool */);
3275 if (status != xnn_status_success) {
3276 std::cerr << "failed to setup operation #71" << std::endl;
3277 return ExecutionPlan();
3278 }
3279
Marat Dukhan270a2c42020-06-26 16:45:52 -07003280 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003281 op72,
3282 1 /* batch size */, 1 /* input height */, 1 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003283 v72.data() /* input */, v73.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003284 threadpool /* threadpool */);
3285 if (status != xnn_status_success) {
3286 std::cerr << "failed to setup operation #72" << std::endl;
3287 return ExecutionPlan();
3288 }
3289
Marat Dukhan270a2c42020-06-26 16:45:52 -07003290 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003291 op73,
3292 1 /* batch size */, 1 /* input height */, 1 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003293 v73.data() /* input */, v74.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003294 threadpool /* threadpool */);
3295 if (status != xnn_status_success) {
3296 std::cerr << "failed to setup operation #73" << std::endl;
3297 return ExecutionPlan();
3298 }
3299
3300 {
3301 const size_t a_shape[] = { 1, 14, 14, 672 };
3302 const size_t b_shape[] = { 1, 1, 1, 672 };
Marat Dukhan270a2c42020-06-26 16:45:52 -07003303 status = xnn_setup_multiply_nd_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003304 op74,
3305 4, a_shape, 4, b_shape,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003306 v71.data() /* a */, v74.data() /* b */, v75.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003307 threadpool /* threadpool */);
3308 }
3309 if (status != xnn_status_success) {
3310 std::cerr << "failed to setup operation #74" << std::endl;
3311 return ExecutionPlan();
3312 }
3313
Marat Dukhan270a2c42020-06-26 16:45:52 -07003314 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003315 op75,
3316 1 /* batch size */, 14 /* input height */, 14 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003317 v75.data() /* input */, v76.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003318 threadpool /* threadpool */);
3319 if (status != xnn_status_success) {
3320 std::cerr << "failed to setup operation #75" << std::endl;
3321 return ExecutionPlan();
3322 }
3323
Marat Dukhanb2164a32020-06-04 19:05:27 -07003324 {
3325 const size_t a_shape[] = { 1, 14, 14, 112 };
3326 const size_t b_shape[] = { 1, 14, 14, 112 };
Marat Dukhan270a2c42020-06-26 16:45:52 -07003327 status = xnn_setup_add_nd_f16(
Marat Dukhanb2164a32020-06-04 19:05:27 -07003328 op76,
3329 4, a_shape, 4, b_shape,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003330 v76.data() /* a */, v67.data() /* b */, v77.data() /* output */,
Marat Dukhanb2164a32020-06-04 19:05:27 -07003331 threadpool /* threadpool */);
3332 }
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003333 if (status != xnn_status_success) {
3334 std::cerr << "failed to setup operation #76" << std::endl;
3335 return ExecutionPlan();
3336 }
3337
Marat Dukhan270a2c42020-06-26 16:45:52 -07003338 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003339 op77,
3340 1 /* batch size */, 14 /* input height */, 14 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003341 v77.data() /* input */, v78.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003342 threadpool /* threadpool */);
3343 if (status != xnn_status_success) {
3344 std::cerr << "failed to setup operation #77" << std::endl;
3345 return ExecutionPlan();
3346 }
3347
Marat Dukhan270a2c42020-06-26 16:45:52 -07003348 status = xnn_setup_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003349 op78,
3350 196 /* batch size */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003351 v78.data() /* input */, v79.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003352 threadpool /* threadpool */);
3353 if (status != xnn_status_success) {
3354 std::cerr << "failed to setup operation #78" << std::endl;
3355 return ExecutionPlan();
3356 }
3357
Marat Dukhan270a2c42020-06-26 16:45:52 -07003358 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003359 op79,
3360 1 /* batch size */, 14 /* input height */, 14 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003361 v79.data() /* input */, v80.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003362 threadpool /* threadpool */);
3363 if (status != xnn_status_success) {
3364 std::cerr << "failed to setup operation #79" << std::endl;
3365 return ExecutionPlan();
3366 }
3367
Marat Dukhan270a2c42020-06-26 16:45:52 -07003368 status = xnn_setup_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003369 op80,
3370 49 /* batch size */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003371 v80.data() /* input */, v81.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003372 threadpool /* threadpool */);
3373 if (status != xnn_status_success) {
3374 std::cerr << "failed to setup operation #80" << std::endl;
3375 return ExecutionPlan();
3376 }
3377
Marat Dukhan270a2c42020-06-26 16:45:52 -07003378 status = xnn_setup_global_average_pooling_nwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003379 op81,
3380 1 /* batch size */, 49 /* width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003381 v81.data() /* input */, v82.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003382 threadpool /* threadpool */);
3383 if (status != xnn_status_success) {
3384 std::cerr << "failed to setup operation #81" << std::endl;
3385 return ExecutionPlan();
3386 }
3387
Marat Dukhan270a2c42020-06-26 16:45:52 -07003388 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003389 op82,
3390 1 /* batch size */, 1 /* input height */, 1 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003391 v82.data() /* input */, v83.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003392 threadpool /* threadpool */);
3393 if (status != xnn_status_success) {
3394 std::cerr << "failed to setup operation #82" << std::endl;
3395 return ExecutionPlan();
3396 }
3397
Marat Dukhan270a2c42020-06-26 16:45:52 -07003398 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003399 op83,
3400 1 /* batch size */, 1 /* input height */, 1 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003401 v83.data() /* input */, v84.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003402 threadpool /* threadpool */);
3403 if (status != xnn_status_success) {
3404 std::cerr << "failed to setup operation #83" << std::endl;
3405 return ExecutionPlan();
3406 }
3407
3408 {
3409 const size_t a_shape[] = { 1, 7, 7, 672 };
3410 const size_t b_shape[] = { 1, 1, 1, 672 };
Marat Dukhan270a2c42020-06-26 16:45:52 -07003411 status = xnn_setup_multiply_nd_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003412 op84,
3413 4, a_shape, 4, b_shape,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003414 v81.data() /* a */, v84.data() /* b */, v85.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003415 threadpool /* threadpool */);
3416 }
3417 if (status != xnn_status_success) {
3418 std::cerr << "failed to setup operation #84" << std::endl;
3419 return ExecutionPlan();
3420 }
3421
Marat Dukhan270a2c42020-06-26 16:45:52 -07003422 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003423 op85,
3424 1 /* batch size */, 7 /* input height */, 7 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003425 v85.data() /* input */, v86.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003426 threadpool /* threadpool */);
3427 if (status != xnn_status_success) {
3428 std::cerr << "failed to setup operation #85" << std::endl;
3429 return ExecutionPlan();
3430 }
3431
Marat Dukhan270a2c42020-06-26 16:45:52 -07003432 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003433 op86,
3434 1 /* batch size */, 7 /* input height */, 7 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003435 v86.data() /* input */, v87.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003436 threadpool /* threadpool */);
3437 if (status != xnn_status_success) {
3438 std::cerr << "failed to setup operation #86" << std::endl;
3439 return ExecutionPlan();
3440 }
3441
Marat Dukhan270a2c42020-06-26 16:45:52 -07003442 status = xnn_setup_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003443 op87,
3444 49 /* batch size */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003445 v87.data() /* input */, v88.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003446 threadpool /* threadpool */);
3447 if (status != xnn_status_success) {
3448 std::cerr << "failed to setup operation #87" << std::endl;
3449 return ExecutionPlan();
3450 }
3451
Marat Dukhan270a2c42020-06-26 16:45:52 -07003452 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003453 op88,
3454 1 /* batch size */, 7 /* input height */, 7 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003455 v88.data() /* input */, v89.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003456 threadpool /* threadpool */);
3457 if (status != xnn_status_success) {
3458 std::cerr << "failed to setup operation #88" << std::endl;
3459 return ExecutionPlan();
3460 }
3461
Marat Dukhan270a2c42020-06-26 16:45:52 -07003462 status = xnn_setup_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003463 op89,
3464 49 /* batch size */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003465 v89.data() /* input */, v90.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003466 threadpool /* threadpool */);
3467 if (status != xnn_status_success) {
3468 std::cerr << "failed to setup operation #89" << std::endl;
3469 return ExecutionPlan();
3470 }
3471
Marat Dukhan270a2c42020-06-26 16:45:52 -07003472 status = xnn_setup_global_average_pooling_nwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003473 op90,
3474 1 /* batch size */, 49 /* width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003475 v90.data() /* input */, v91.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003476 threadpool /* threadpool */);
3477 if (status != xnn_status_success) {
3478 std::cerr << "failed to setup operation #90" << std::endl;
3479 return ExecutionPlan();
3480 }
3481
Marat Dukhan270a2c42020-06-26 16:45:52 -07003482 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003483 op91,
3484 1 /* batch size */, 1 /* input height */, 1 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003485 v91.data() /* input */, v92.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003486 threadpool /* threadpool */);
3487 if (status != xnn_status_success) {
3488 std::cerr << "failed to setup operation #91" << std::endl;
3489 return ExecutionPlan();
3490 }
3491
Marat Dukhan270a2c42020-06-26 16:45:52 -07003492 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003493 op92,
3494 1 /* batch size */, 1 /* input height */, 1 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003495 v92.data() /* input */, v93.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003496 threadpool /* threadpool */);
3497 if (status != xnn_status_success) {
3498 std::cerr << "failed to setup operation #92" << std::endl;
3499 return ExecutionPlan();
3500 }
3501
3502 {
3503 const size_t a_shape[] = { 1, 7, 7, 960 };
3504 const size_t b_shape[] = { 1, 1, 1, 960 };
Marat Dukhan270a2c42020-06-26 16:45:52 -07003505 status = xnn_setup_multiply_nd_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003506 op93,
3507 4, a_shape, 4, b_shape,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003508 v90.data() /* a */, v93.data() /* b */, v94.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003509 threadpool /* threadpool */);
3510 }
3511 if (status != xnn_status_success) {
3512 std::cerr << "failed to setup operation #93" << std::endl;
3513 return ExecutionPlan();
3514 }
3515
Marat Dukhan270a2c42020-06-26 16:45:52 -07003516 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003517 op94,
3518 1 /* batch size */, 7 /* input height */, 7 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003519 v94.data() /* input */, v95.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003520 threadpool /* threadpool */);
3521 if (status != xnn_status_success) {
3522 std::cerr << "failed to setup operation #94" << std::endl;
3523 return ExecutionPlan();
3524 }
3525
Marat Dukhanb2164a32020-06-04 19:05:27 -07003526 {
3527 const size_t a_shape[] = { 1, 7, 7, 160 };
3528 const size_t b_shape[] = { 1, 7, 7, 160 };
Marat Dukhan270a2c42020-06-26 16:45:52 -07003529 status = xnn_setup_add_nd_f16(
Marat Dukhanb2164a32020-06-04 19:05:27 -07003530 op95,
3531 4, a_shape, 4, b_shape,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003532 v95.data() /* a */, v86.data() /* b */, v96.data() /* output */,
Marat Dukhanb2164a32020-06-04 19:05:27 -07003533 threadpool /* threadpool */);
3534 }
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003535 if (status != xnn_status_success) {
3536 std::cerr << "failed to setup operation #95" << std::endl;
3537 return ExecutionPlan();
3538 }
3539
Marat Dukhan270a2c42020-06-26 16:45:52 -07003540 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003541 op96,
3542 1 /* batch size */, 7 /* input height */, 7 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003543 v96.data() /* input */, v97.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003544 threadpool /* threadpool */);
3545 if (status != xnn_status_success) {
3546 std::cerr << "failed to setup operation #96" << std::endl;
3547 return ExecutionPlan();
3548 }
3549
Marat Dukhan270a2c42020-06-26 16:45:52 -07003550 status = xnn_setup_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003551 op97,
3552 49 /* batch size */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003553 v97.data() /* input */, v98.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003554 threadpool /* threadpool */);
3555 if (status != xnn_status_success) {
3556 std::cerr << "failed to setup operation #97" << std::endl;
3557 return ExecutionPlan();
3558 }
3559
Marat Dukhan270a2c42020-06-26 16:45:52 -07003560 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003561 op98,
3562 1 /* batch size */, 7 /* input height */, 7 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003563 v98.data() /* input */, v99.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003564 threadpool /* threadpool */);
3565 if (status != xnn_status_success) {
3566 std::cerr << "failed to setup operation #98" << std::endl;
3567 return ExecutionPlan();
3568 }
3569
Marat Dukhan270a2c42020-06-26 16:45:52 -07003570 status = xnn_setup_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003571 op99,
3572 49 /* batch size */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003573 v99.data() /* input */, v100.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003574 threadpool /* threadpool */);
3575 if (status != xnn_status_success) {
3576 std::cerr << "failed to setup operation #99" << std::endl;
3577 return ExecutionPlan();
3578 }
3579
Marat Dukhan270a2c42020-06-26 16:45:52 -07003580 status = xnn_setup_global_average_pooling_nwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003581 op100,
3582 1 /* batch size */, 49 /* width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003583 v100.data() /* input */, v101.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003584 threadpool /* threadpool */);
3585 if (status != xnn_status_success) {
3586 std::cerr << "failed to setup operation #100" << std::endl;
3587 return ExecutionPlan();
3588 }
3589
Marat Dukhan270a2c42020-06-26 16:45:52 -07003590 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003591 op101,
3592 1 /* batch size */, 1 /* input height */, 1 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003593 v101.data() /* input */, v102.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003594 threadpool /* threadpool */);
3595 if (status != xnn_status_success) {
3596 std::cerr << "failed to setup operation #101" << std::endl;
3597 return ExecutionPlan();
3598 }
3599
Marat Dukhan270a2c42020-06-26 16:45:52 -07003600 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003601 op102,
3602 1 /* batch size */, 1 /* input height */, 1 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003603 v102.data() /* input */, v103.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003604 threadpool /* threadpool */);
3605 if (status != xnn_status_success) {
3606 std::cerr << "failed to setup operation #102" << std::endl;
3607 return ExecutionPlan();
3608 }
3609
3610 {
3611 const size_t a_shape[] = { 1, 7, 7, 960 };
3612 const size_t b_shape[] = { 1, 1, 1, 960 };
Marat Dukhan270a2c42020-06-26 16:45:52 -07003613 status = xnn_setup_multiply_nd_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003614 op103,
3615 4, a_shape, 4, b_shape,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003616 v100.data() /* a */, v103.data() /* b */, v104.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003617 threadpool /* threadpool */);
3618 }
3619 if (status != xnn_status_success) {
3620 std::cerr << "failed to setup operation #103" << std::endl;
3621 return ExecutionPlan();
3622 }
3623
Marat Dukhan270a2c42020-06-26 16:45:52 -07003624 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003625 op104,
3626 1 /* batch size */, 7 /* input height */, 7 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003627 v104.data() /* input */, v105.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003628 threadpool /* threadpool */);
3629 if (status != xnn_status_success) {
3630 std::cerr << "failed to setup operation #104" << std::endl;
3631 return ExecutionPlan();
3632 }
3633
Marat Dukhanb2164a32020-06-04 19:05:27 -07003634 {
3635 const size_t a_shape[] = { 1, 7, 7, 160 };
3636 const size_t b_shape[] = { 1, 7, 7, 160 };
Marat Dukhan270a2c42020-06-26 16:45:52 -07003637 status = xnn_setup_add_nd_f16(
Marat Dukhanb2164a32020-06-04 19:05:27 -07003638 op105,
3639 4, a_shape, 4, b_shape,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003640 v105.data() /* a */, v96.data() /* b */, v106.data() /* output */,
Marat Dukhanb2164a32020-06-04 19:05:27 -07003641 threadpool /* threadpool */);
3642 }
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003643 if (status != xnn_status_success) {
3644 std::cerr << "failed to setup operation #105" << std::endl;
3645 return ExecutionPlan();
3646 }
3647
Marat Dukhan270a2c42020-06-26 16:45:52 -07003648 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003649 op106,
3650 1 /* batch size */, 7 /* input height */, 7 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003651 v106.data() /* input */, v107.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003652 threadpool /* threadpool */);
3653 if (status != xnn_status_success) {
3654 std::cerr << "failed to setup operation #106" << std::endl;
3655 return ExecutionPlan();
3656 }
3657
Marat Dukhan270a2c42020-06-26 16:45:52 -07003658 status = xnn_setup_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003659 op107,
3660 49 /* batch size */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003661 v107.data() /* input */, v108.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003662 threadpool /* threadpool */);
3663 if (status != xnn_status_success) {
3664 std::cerr << "failed to setup operation #107" << std::endl;
3665 return ExecutionPlan();
3666 }
3667
Marat Dukhan270a2c42020-06-26 16:45:52 -07003668 status = xnn_setup_global_average_pooling_nwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003669 op108,
3670 1 /* batch size */, 49 /* width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003671 v108.data() /* input */, v109.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003672 threadpool /* threadpool */);
3673 if (status != xnn_status_success) {
3674 std::cerr << "failed to setup operation #108" << std::endl;
3675 return ExecutionPlan();
3676 }
3677
Marat Dukhan270a2c42020-06-26 16:45:52 -07003678 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003679 op109,
3680 1 /* batch size */, 1 /* input height */, 1 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003681 v109.data() /* input */, v110.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003682 threadpool /* threadpool */);
3683 if (status != xnn_status_success) {
3684 std::cerr << "failed to setup operation #109" << std::endl;
3685 return ExecutionPlan();
3686 }
3687
Marat Dukhan270a2c42020-06-26 16:45:52 -07003688 status = xnn_setup_hardswish_nc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003689 op110,
3690 1 /* batch size */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003691 v110.data() /* input */, v111.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003692 threadpool /* threadpool */);
3693 if (status != xnn_status_success) {
3694 std::cerr << "failed to setup operation #110" << std::endl;
3695 return ExecutionPlan();
3696 }
3697
Marat Dukhan270a2c42020-06-26 16:45:52 -07003698 status = xnn_setup_global_average_pooling_nwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003699 op111,
3700 1 /* batch size */, 1 /* width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003701 v111.data() /* input */, v112.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003702 threadpool /* threadpool */);
3703 if (status != xnn_status_success) {
3704 std::cerr << "failed to setup operation #111" << std::endl;
3705 return ExecutionPlan();
3706 }
3707
Marat Dukhan270a2c42020-06-26 16:45:52 -07003708 status = xnn_setup_convolution2d_nhwc_f16(
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003709 op112,
3710 1 /* batch size */, 1 /* input height */, 1 /* input width */,
Marat Dukhan52e061d2021-03-09 00:02:44 -08003711 v112.data() /* input */, v113.data() /* output */,
Marat Dukhanc08cdf52019-12-09 09:17:51 -08003712 threadpool /* threadpool */);
3713 if (status != xnn_status_success) {
3714 std::cerr << "failed to setup operation #112" << std::endl;
3715 return ExecutionPlan();
3716 }
3717
3718 #pragma clang diagnostic push
3719 #pragma clang diagnostic ignored "-Wpessimizing-move"
3720 return operators;
3721 #pragma clang diagnostic pop
3722}
3723
3724} // namespace models