1/*******************************************************************************
2* Copyright 2017-2022 Intel Corporation
3*
4* Licensed under the Apache License, Version 2.0 (the "License");
5* you may not use this file except in compliance with the License.
6* You may obtain a copy of the License at
7*
8* http://www.apache.org/licenses/LICENSE-2.0
9*
10* Unless required by applicable law or agreed to in writing, software
11* distributed under the License is distributed on an "AS IS" BASIS,
12* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13* See the License for the specific language governing permissions and
14* limitations under the License.
15*******************************************************************************/
16
17GPU_INST_TEST_CASE(Dilation,
18 PARAMS(NChw16n16c, FMT_WEIGHTS_GPU_BLOCKED16x16, FMT_BIAS, NChw16n16c,
19 16, 1, 32, 8, 8, 32, 8, 8, 3, 3, 6, 6, 1, 1, 5, 5),
20 PARAMS(nChw16c, FMT_WEIGHTS_GPU_BLOCKED16, FMT_BIAS, nChw16c, 2, 1, 32,
21 8, 8, 32, 8, 8, 3, 3, 6, 6, 1, 1, 5, 5),
22 PARAMS(nChw16c, FMT_WEIGHTS_GPU_BLOCKED16, FMT_BIAS, nChw16c, 1, 1, 32,
23 8, 8, 32, 8, 8, 3, 3, 6, 6, 1, 1, 5, 5),
24 PARAMS(nchw, Ohwi16o, FMT_BIAS, nChw16c, 2, 1, 3, 8, 8, 32, 8, 8, 3, 3,
25 1, 1, 1, 1, 0, 0),
26 PARAMS(nchw, Ohwi16o, FMT_BIAS, nChw16c, 2, 1, 3, 8, 8, 32, 8, 8, 3, 3,
27 6, 6, 1, 1, 5, 5));
28
29GPU_INST_TEST_CASE(Simple_ref,
30 PARAMS(chwn, iohw, FMT_BIAS, NChw16n16c, 16, 1, 32, 8, 8, 32, 8, 8, 3,
31 3, 6, 6, 1, 1, 5, 5),
32 PARAMS(nhwc, hwigo, FMT_BIAS, nchw, 2, 2, 4, 1, 1, 4, 1, 1, 1, 1, 0, 0,
33 1, 1, 0, 0),
34 PARAMS(nChw4c, Ohwi4o, FMT_BIAS, nChw8c, 2, 1, 32, 8, 8, 32, 8, 8, 3, 3,
35 6, 6, 1, 1, 5, 5),
36 PARAMS(chwn, iohw, FMT_NO_BIAS, NChw16n16c, 16, 1, 32, 8, 8, 32, 8, 8,
37 3, 3, 6, 6, 1, 1, 5, 5),
38 PARAMS(nhwc, hwigo, FMT_NO_BIAS, nchw, 2, 2, 4, 1, 1, 4, 1, 1, 1, 1, 0,
39 0, 1, 1, 0, 0),
40 PARAMS(nChw4c, Ohwi4o, FMT_NO_BIAS, nChw8c, 2, 1, 32, 8, 8, 32, 8, 8, 3,
41 3, 6, 6, 1, 1, 5, 5));
42
43GPU_INST_TEST_CASE(Simple_no_blocking,
44 PARAMS(nhwc, oihw, FMT_BIAS, nhwc, 16, 1, 32, 8, 8, 32, 8, 8, 3, 3, 6,
45 6, 1, 1, 5, 5),
46 PARAMS(nhwc, ohwi, FMT_BIAS, nhwc, 16, 1, 32, 8, 8, 32, 8, 8, 3, 3, 6,
47 6, 1, 1, 5, 5),
48 PARAMS(nchw, goihw, FMT_BIAS, nchw, 2, 2, 4, 1, 1, 4, 1, 1, 1, 1, 0, 0,
49 1, 2, 0, 0),
50 PARAMS(nhwc, oihw, FMT_NO_BIAS, nhwc, 16, 1, 32, 8, 8, 32, 8, 8, 3, 3,
51 6, 6, 1, 1, 5, 5),
52 PARAMS(nhwc, ohwi, FMT_NO_BIAS, nhwc, 16, 1, 32, 8, 8, 32, 8, 8, 3, 3,
53 6, 6, 1, 1, 5, 5),
54 PARAMS(nchw, goihw, FMT_NO_BIAS, nchw, 2, 2, 4, 1, 1, 4, 1, 1, 1, 1, 0,
55 0, 1, 2, 0, 0));
56
57GPU_INST_TEST_CASE(Simple_io_formats,
58 PARAMS(nhwc, bacd, FMT_BIAS, nhwc, 16, 1, 32, 8, 8, 32, 8, 8, 3, 3, 6,
59 6, 1, 1, 5, 5),
60 PARAMS(nhwc, bcda, FMT_BIAS, nhwc, 16, 1, 32, 8, 8, 32, 8, 8, 3, 3, 6,
61 6, 1, 1, 5, 5),
62 PARAMS(nchw, acbde, FMT_BIAS, nchw, 2, 2, 4, 1, 1, 4, 1, 1, 1, 1, 0, 0,
63 1, 2, 0, 0),
64 PARAMS(nhwc, acdeb, FMT_NO_BIAS, nhwc, 2, 2, 32, 8, 8, 32, 8, 8, 3, 3,
65 6, 6, 1, 1, 5, 5));
66
67INST_TEST_CASE(Simple_ZeroDim,
68 PARAMS(nchw, oihw, FMT_BIAS, nchw, 0, 1, 4, 4, 4, 6, 4, 4, 3, 3, 1, 1,
69 1, 1),
70 PARAMS(nchw, oihw, FMT_BIAS, nchw, 0, 1, 4, 0, 4, 6, 0, 4, 3, 3, 1, 1,
71 1, 1),
72 PARAMS(nchw, oihw, FMT_BIAS, nchw, 0, 1, 4, 0, 4, 6, 2, 4, 1, 3, 1, 1,
73 1, 1),
74 PARAMS(nchw, oihw, FMT_BIAS, nchw, 0, 1, 4, 2, 4, 6, 2, 4, 3, 3, 0, 1,
75 1, 1));
76
77INST_TEST_CASE(Simple_NCHW_expected_failures,
78 PARAMS_EXPECT_FAIL(nchw, oihw, FMT_BIAS, nchw, dnnl_invalid_arguments,
79 1, 1, 0, 4, 4, 6, 4, 4, 3, 3, 1, 1, 1, 1),
80 PARAMS_EXPECT_FAIL(nchw, oihw, FMT_BIAS, nchw, dnnl_invalid_arguments,
81 1, 1, 4, 4, 4, 0, 4, 4, 3, 3, 1, 1, 1, 1),
82 PARAMS_EXPECT_FAIL(nchw, oihw, FMT_BIAS, nchw, dnnl_invalid_arguments,
83 1, 1, 4, 4, 4, 6, 4, 4, 0, 3, 1, 1, 1, 1),
84 PARAMS_EXPECT_FAIL(nchw, oihw, FMT_BIAS, nchw, dnnl_invalid_arguments,
85 1, 1, -4, 4, 4, 6, 4, 4, 3, 3, 1, 1, 1, 1),
86 PARAMS_EXPECT_FAIL(nchw, oihw, FMT_BIAS, nchw, dnnl_invalid_arguments,
87 1, 1, 4, 4, 4, 6, 4, 4, 3, 3, -1, 1, 1, 1),
88 PARAMS_EXPECT_FAIL(nchw, oihw, FMT_BIAS, nchw, dnnl_invalid_arguments,
89 1, 1, 4, 4, 4, 6, 4, 4, 3, 3, 1, 1, 0, 0));
90
91CPU_INST_TEST_CASE(Simple_Blocked16_padded,
92 // non-1x1 (all)
93 PARAMS(FMT_DATA_BLOCKED16, FMT_WEIGHTS_BLOCKED16, FMT_BIAS,
94 FMT_DATA_BLOCKED16, 2, 1, 17, 13, 13, 23, 12, 12, 3, 3, 0, 0, 1,
95 1),
96 PARAMS(FMT_DATA_BLOCKED16, FMT_WEIGHTS_BLOCKED16, FMT_BIAS,
97 FMT_DATA_BLOCKED16, 2, 1, 21, 13, 13, 16, 12, 12, 3, 3, 0, 0, 1,
98 1),
99 PARAMS(FMT_DATA_BLOCKED16, FMT_WEIGHTS_BLOCKED16, FMT_BIAS,
100 FMT_DATA_BLOCKED16, 2, 1, 23, 13, 13, 19, 12, 12, 3, 3, 0, 0, 1,
101 1),
102 // 1x1 (fwd, bwd_w)
103 PARAMS(FMT_DATA_BLOCKED16, FMT_WEIGHTS_BLOCKED16, FMT_BIAS,
104 FMT_DATA_BLOCKED16, 2, 1, 17, 13, 13, 23, 13, 13, 1, 1, 0, 0, 1,
105 1),
106 PARAMS(FMT_DATA_BLOCKED16, FMT_WEIGHTS_BLOCKED16, FMT_BIAS,
107 FMT_DATA_BLOCKED16, 2, 1, 21, 13, 13, 16, 13, 13, 1, 1, 0, 0, 1,
108 1),
109 PARAMS(FMT_DATA_BLOCKED16, FMT_WEIGHTS_BLOCKED16, FMT_BIAS,
110 FMT_DATA_BLOCKED16, 2, 1, 23, 13, 13, 19, 13, 13, 1, 1, 0, 0, 1,
111 1),
112 // 1x1 (bwd_d)
113 PARAMS(FMT_DATA_BLOCKED16, FMT_WEIGHTS_BLOCKED16_IOhw16o16i, FMT_BIAS,
114 FMT_DATA_BLOCKED16, 2, 1, 17, 13, 13, 23, 13, 13, 1, 1, 0, 0, 1,
115 1),
116 PARAMS(FMT_DATA_BLOCKED16, FMT_WEIGHTS_BLOCKED16_IOhw16o16i, FMT_BIAS,
117 FMT_DATA_BLOCKED16, 2, 1, 21, 13, 13, 16, 13, 13, 1, 1, 0, 0, 1,
118 1),
119 PARAMS(FMT_DATA_BLOCKED16, FMT_WEIGHTS_BLOCKED16_IOhw16o16i, FMT_BIAS,
120 FMT_DATA_BLOCKED16, 2, 1, 23, 13, 13, 19, 13, 13, 1, 1, 0, 0, 1,
121 1));
122
123CPU_INST_TEST_CASE(Simple_Blocked8_padded,
124 // non-1x1 (all)
125 PARAMS(FMT_DATA_BLOCKED, FMT_WEIGHTS_BLOCKED, FMT_BIAS,
126 FMT_DATA_BLOCKED, 2, 1, 17, 13, 13, 23, 12, 12, 3, 3, 0, 0, 1,
127 1),
128 PARAMS(FMT_DATA_BLOCKED, FMT_WEIGHTS_BLOCKED, FMT_BIAS,
129 FMT_DATA_BLOCKED, 2, 1, 21, 13, 13, 16, 12, 12, 3, 3, 0, 0, 1,
130 1),
131 PARAMS(FMT_DATA_BLOCKED, FMT_WEIGHTS_BLOCKED, FMT_BIAS,
132 FMT_DATA_BLOCKED, 2, 1, 23, 13, 13, 19, 12, 12, 3, 3, 0, 0, 1,
133 1),
134 // 1x1 (all)
135 PARAMS(FMT_DATA_BLOCKED, FMT_WEIGHTS_BLOCKED, FMT_BIAS,
136 FMT_DATA_BLOCKED, 2, 1, 17, 13, 13, 23, 13, 13, 1, 1, 0, 0, 1,
137 1),
138 PARAMS(FMT_DATA_BLOCKED, FMT_WEIGHTS_BLOCKED, FMT_BIAS,
139 FMT_DATA_BLOCKED, 2, 1, 21, 13, 13, 16, 13, 13, 1, 1, 0, 0, 1,
140 1),
141 PARAMS(FMT_DATA_BLOCKED, FMT_WEIGHTS_BLOCKED, FMT_BIAS,
142 FMT_DATA_BLOCKED, 2, 1, 23, 13, 13, 19, 13, 13, 1, 1, 0, 0, 1,
143 1));
144
145CPU_INST_TEST_CASE(Simple_NCHW,
146 PARAMS(nchw, oihw, FMT_BIAS, nchw, 2, 1, 4, 4, 4, 6, 4, 4, 3, 3, 1, 1,
147 1, 1),
148 PARAMS(nchw, oihw, FMT_BIAS, nchw, 2, 1, 4, 4, 4, 6, 2, 2, 3, 3, 0, 0,
149 1, 1),
150 PARAMS(nhwc, oihw, FMT_BIAS, nhwc, 2, 1, 4, 4, 4, 6, 4, 4, 3, 3, 1, 1,
151 1, 1),
152 PARAMS(nhwc, oihw, FMT_BIAS, nhwc, 2, 1, 4, 4, 4, 6, 2, 2, 3, 3, 0, 0,
153 1, 1),
154 PARAMS(nhwc, hwio, FMT_BIAS, nhwc, 2, 1, 4, 4, 4, 6, 4, 4, 3, 3, 1, 1,
155 1, 1),
156 PARAMS(nhwc, hwio, FMT_BIAS, nhwc, 2, 1, 4, 4, 4, 6, 2, 2, 3, 3, 0, 0,
157 1, 1),
158 PARAMS(nhwc, hwigo, FMT_BIAS, nhwc, 2, 2, 4, 4, 4, 6, 4, 4, 3, 3, 0, 0,
159 1, 1),
160 PARAMS(nhwc, hwigo, FMT_BIAS, nhwc, 2, 2, 4, 4, 4, 6, 4, 4, 3, 3, 1, 1,
161 1, 1));
162
163CPU_INST_TEST_CASE(Simple_Dilated_NCHW,
164 PARAMS(nchw, oihw, FMT_BIAS, nchw, 2, 1, 4, 8, 8, 6, 8, 8, 3, 3, 2, 2,
165 1, 1, 1, 1),
166 PARAMS(nchw, oihw, FMT_BIAS, nchw, 2, 1, 4, 8, 8, 6, 6, 6, 3, 3, 1, 1,
167 1, 1, 1, 1),
168 PARAMS(nchw, oihw, FMT_BIAS, nchw, 2, 1, 4, 8, 8, 6, 8, 8, 3, 3, 3, 3,
169 1, 1, 2, 2),
170 PARAMS(nchw, oihw, FMT_BIAS, nchw, 2, 1, 4, 8, 8, 6, 4, 4, 3, 3, 2, 2,
171 1, 1, 3, 3),
172 PARAMS(nchw, oihw, FMT_BIAS, nchw, 2, 1, 4, 10, 10, 6, 5, 5, 3, 3, 3, 3,
173 2, 2, 2, 2),
174 PARAMS(nchw, oihw, FMT_BIAS, nchw, 2, 1, 4, 10, 10, 6, 3, 3, 3, 3, 2, 2,
175 2, 2, 3, 3),
176 PARAMS(nchw, oihw, FMT_BIAS, nchw, 2, 1, 4, 8, 8, 6, 2, 2, 5, 5, 1, 1,
177 1, 1, 1, 1),
178 PARAMS(nchw, oihw, FMT_BIAS, nchw, 2, 1, 4, 8, 8, 6, 2, 2, 5, 5, 3, 3,
179 1, 1, 2, 2),
180 PARAMS(nchw, oihw, FMT_BIAS, nchw, 2, 1, 4, 14, 14, 6, 4, 4, 7, 7, 1, 1,
181 1, 1, 1, 1),
182 PARAMS(nchw, oihw, FMT_BIAS, nchw, 2, 1, 4, 14, 14, 6, 2, 2, 7, 7, 3, 3,
183 1, 1, 2, 2),
184 PARAMS(nchw, oihw, FMT_BIAS, nchw, 2, 1, 4, 8, 8, 6, 8, 8, 3, 3, 2, 1,
185 1, 1, 1, 0),
186 PARAMS(nchw, oihw, FMT_BIAS, nchw, 2, 1, 4, 8, 8, 6, 8, 8, 3, 3, 1, 3,
187 1, 1, 0, 2),
188 PARAMS(nchw, oihw, FMT_BIAS, nchw, 2, 1, 8, 8, 8, 8, 3, 8, 3, 3, 1, 1,
189 2, 1, 1, 0),
190 PARAMS(nchw, oihw, FMT_BIAS, nchw, 2, 1, 8, 8, 8, 8, 8, 2, 3, 3, 1, 1,
191 1, 3, 0, 2));
192
193CPU_INST_TEST_CASE(Simple_Blocked,
194 PARAMS(FMT_DATA_BLOCKED, FMT_WEIGHTS_BLOCKED, FMT_BIAS,
195 FMT_DATA_BLOCKED, 2, 1, 32, 13, 13, 32, 12, 12, 3, 3, 0, 0, 1,
196 1),
197 PARAMS(FMT_DATA_BLOCKED, FMT_WEIGHTS_BLOCKED, FMT_BIAS,
198 FMT_DATA_BLOCKED, 2, 1, 32, 3, 3, 32, 4, 4, 3, 3, 1, 1, 1, 1),
199 PARAMS(FMT_DATA_BLOCKED, FMT_WEIGHTS_BLOCKED, FMT_BIAS,
200 FMT_DATA_BLOCKED, 2, 1, 32, 4, 4, 32, 4, 4, 3, 3, 0, 0, 1, 1),
201 PARAMS(FMT_DATA_BLOCKED, FMT_WEIGHTS_BLOCKED, FMT_BIAS,
202 FMT_DATA_BLOCKED, 2, 1, 32, 3, 3, 32, 2, 2, 3, 3, 0, 0, 1, 1),
203 PARAMS(FMT_DATA_BLOCKED, FMT_WEIGHTS_BLOCKED, FMT_BIAS,
204 FMT_DATA_BLOCKED, 2, 1, 32, 2, 2, 32, 2, 2, 3, 3, 1, 1, 1, 1),
205 PARAMS(FMT_DATA_BLOCKED, FMT_WEIGHTS_BLOCKED, FMT_BIAS,
206 FMT_DATA_BLOCKED, 2, 1, 32, 13, 13, 48, 13, 13, 3, 3, 1, 1, 1,
207 1),
208 PARAMS(FMT_DATA_BLOCKED, FMT_WEIGHTS_BLOCKED, FMT_BIAS,
209 FMT_DATA_BLOCKED, 2, 1, 32, 13, 13, 48, 11, 11, 3, 3, 0, 0, 1,
210 1));
211
212CPU_INST_TEST_CASE(Simple_Dilated_Blocked,
213 PARAMS(FMT_DATA_BLOCKED, FMT_WEIGHTS_BLOCKED, FMT_BIAS,
214 FMT_DATA_BLOCKED, 2, 1, 32, 15, 15, 32, 11, 11, 3, 3, 0, 0, 1,
215 1, 1, 1),
216 PARAMS(FMT_DATA_BLOCKED, FMT_WEIGHTS_BLOCKED, FMT_BIAS,
217 FMT_DATA_BLOCKED, 2, 1, 32, 15, 15, 32, 9, 9, 3, 3, 0, 0, 1, 1,
218 2, 2),
219 PARAMS(FMT_DATA_BLOCKED, FMT_WEIGHTS_BLOCKED, FMT_BIAS,
220 FMT_DATA_BLOCKED, 2, 1, 32, 15, 15, 32, 7, 7, 3, 3, 0, 0, 1, 1,
221 3, 3),
222 PARAMS(FMT_DATA_BLOCKED, FMT_WEIGHTS_BLOCKED, FMT_BIAS,
223 FMT_DATA_BLOCKED, 2, 1, 32, 15, 15, 32, 7, 7, 3, 3, 1, 1, 2, 2,
224 1, 1),
225 PARAMS(FMT_DATA_BLOCKED, FMT_WEIGHTS_BLOCKED, FMT_BIAS,
226 FMT_DATA_BLOCKED, 2, 1, 32, 15, 15, 32, 6, 6, 3, 3, 1, 1, 2, 2,
227 2, 2),
228 PARAMS(FMT_DATA_BLOCKED, FMT_WEIGHTS_BLOCKED, FMT_BIAS,
229 FMT_DATA_BLOCKED, 2, 1, 32, 15, 15, 32, 5, 5, 3, 3, 1, 1, 2, 2,
230 3, 3),
231 PARAMS(FMT_DATA_BLOCKED, FMT_WEIGHTS_BLOCKED, FMT_BIAS,
232 FMT_DATA_BLOCKED, 2, 1, 32, 15, 15, 32, 9, 9, 5, 5, 1, 1, 1, 1,
233 1, 1),
234 PARAMS(FMT_DATA_BLOCKED, FMT_WEIGHTS_BLOCKED, FMT_BIAS,
235 FMT_DATA_BLOCKED, 2, 1, 32, 15, 15, 32, 3, 3, 5, 5, 1, 1, 2, 2,
236 2, 2),
237 PARAMS(FMT_DATA_BLOCKED, FMT_WEIGHTS_BLOCKED, FMT_BIAS,
238 FMT_DATA_BLOCKED, 2, 1, 32, 22, 22, 32, 12, 12, 7, 7, 1, 1, 1,
239 1, 1, 1),
240 PARAMS(FMT_DATA_BLOCKED, FMT_WEIGHTS_BLOCKED, FMT_BIAS,
241 FMT_DATA_BLOCKED, 2, 1, 32, 22, 22, 32, 3, 3, 7, 7, 1, 1, 2, 2,
242 2, 2),
243 PARAMS(FMT_DATA_BLOCKED, FMT_WEIGHTS_BLOCKED, FMT_BIAS,
244 FMT_DATA_BLOCKED, 2, 1, 32, 8, 8, 32, 3, 8, 3, 3, 1, 1, 2, 1, 1,
245 0),
246 PARAMS(FMT_DATA_BLOCKED, FMT_WEIGHTS_BLOCKED, FMT_BIAS,
247 FMT_DATA_BLOCKED, 2, 1, 32, 8, 8, 32, 8, 2, 3, 3, 1, 1, 1, 3, 0,
248 2));
249
250CPU_INST_TEST_CASE(Simple_Blocked16,
251 PARAMS(FMT_DATA_BLOCKED16, FMT_WEIGHTS_BLOCKED16, FMT_BIAS,
252 FMT_DATA_BLOCKED16, 2, 1, 32, 13, 13, 32, 12, 12, 3, 3, 0, 0, 1,
253 1),
254 PARAMS(FMT_DATA_BLOCKED16, FMT_WEIGHTS_BLOCKED16, FMT_BIAS,
255 FMT_DATA_BLOCKED16, 2, 1, 32, 3, 3, 32, 4, 4, 3, 3, 1, 1, 1, 1),
256 PARAMS(FMT_DATA_BLOCKED16, FMT_WEIGHTS_BLOCKED16, FMT_BIAS,
257 FMT_DATA_BLOCKED16, 2, 1, 32, 4, 4, 32, 4, 4, 3, 3, 0, 0, 1, 1),
258 PARAMS(FMT_DATA_BLOCKED16, FMT_WEIGHTS_BLOCKED16, FMT_BIAS,
259 FMT_DATA_BLOCKED16, 2, 1, 32, 3, 3, 32, 2, 2, 3, 3, 0, 0, 1, 1),
260 PARAMS(FMT_DATA_BLOCKED16, FMT_WEIGHTS_BLOCKED16, FMT_BIAS,
261 FMT_DATA_BLOCKED16, 2, 1, 32, 2, 2, 32, 2, 2, 3, 3, 1, 1, 1, 1),
262 PARAMS(FMT_DATA_BLOCKED16, FMT_WEIGHTS_BLOCKED16, FMT_BIAS,
263 FMT_DATA_BLOCKED16, 2, 1, 32, 13, 13, 48, 13, 13, 3, 3, 1, 1, 1,
264 1),
265 PARAMS(FMT_DATA_BLOCKED16, FMT_WEIGHTS_BLOCKED16, FMT_BIAS,
266 FMT_DATA_BLOCKED16, 2, 1, 32, 13, 13, 48, 11, 11, 3, 3, 0, 0, 1,
267 1),
268 PARAMS(FMT_DATA_BLOCKED16, FMT_WEIGHTS_BLOCKED16, FMT_BIAS,
269 FMT_DATA_BLOCKED16, 2, 1, 32, 8, 8, 48, 5, 5, 4, 4, 0, 0, 1, 1),
270 PARAMS(FMT_DATA_BLOCKED16, FMT_WEIGHTS_BLOCKED16, FMT_BIAS,
271 FMT_DATA_BLOCKED16, 2, 1, 32, 7, 7, 48, 10, 10, 4, 4, 3, 3, 1,
272 1),
273 PARAMS(FMT_DATA_BLOCKED16, FMT_WEIGHTS_BLOCKED16, FMT_BIAS,
274 FMT_DATA_BLOCKED16, 2, 1, 32, 1, 1, 48, 2, 2, 4, 4, 2, 2, 1, 1),
275 PARAMS(FMT_DATA_BLOCKED16, FMT_WEIGHTS_BLOCKED16, FMT_BIAS,
276 FMT_DATA_BLOCKED16, 2, 1, 32, 28, 28, 48, 13, 13, 4, 4, 0, 0, 2,
277 2),
278 PARAMS(FMT_DATA_BLOCKED16, FMT_WEIGHTS_BLOCKED16, FMT_BIAS,
279 FMT_DATA_BLOCKED16, 2, 1, 32, 28, 28, 48, 14, 14, 4, 4, 1, 1, 2,
280 2),
281 PARAMS(FMT_DATA_BLOCKED16, FMT_WEIGHTS_BLOCKED16, FMT_BIAS,
282 FMT_DATA_BLOCKED16, 2, 1, 32, 26, 26, 48, 13, 13, 4, 4, 1, 1, 2,
283 2),
284 PARAMS(FMT_DATA_BLOCKED16, FMT_WEIGHTS_BLOCKED16, FMT_BIAS,
285 FMT_DATA_BLOCKED16, 2, 1, 32, 84, 84, 48, 28, 28, 5, 5, 1, 1, 3,
286 3),
287 PARAMS(FMT_DATA_BLOCKED16, FMT_WEIGHTS_BLOCKED16, FMT_BIAS,
288 FMT_DATA_BLOCKED16, 2, 1, 32, 21, 21, 48, 7, 7, 5, 5, 1, 1, 3,
289 3),
290 PARAMS(FMT_DATA_BLOCKED16, FMT_WEIGHTS_BLOCKED16, FMT_BIAS,
291 FMT_DATA_BLOCKED16, 2, 1, 32, 18, 18, 48, 5, 5, 6, 6, 2, 2, 4,
292 4),
293 PARAMS(FMT_DATA_BLOCKED16, FMT_WEIGHTS_BLOCKED16, FMT_BIAS,
294 FMT_DATA_BLOCKED16, 2, 1, 32, 34, 71, 48, 11, 23, 7, 8, 2, 1, 3,
295 3),
296 PARAMS(FMT_DATA_BLOCKED16, FMT_WEIGHTS_BLOCKED16, FMT_BIAS,
297 FMT_DATA_BLOCKED16, 2, 1, 32, 6, 6, 48, 2, 2, 3, 3, 0, 0, 2, 2),
298 PARAMS(FMT_DATA_BLOCKED16, FMT_WEIGHTS_BLOCKED16, FMT_BIAS,
299 FMT_DATA_BLOCKED16, 2, 1, 32, 9, 9, 48, 2, 2, 5, 5, 0, 0, 3,
300 3));
301
302CPU_INST_TEST_CASE(Simple_Dilated_Blocked16,
303 PARAMS(FMT_DATA_BLOCKED16, FMT_WEIGHTS_BLOCKED16, FMT_BIAS,
304 FMT_DATA_BLOCKED16, 2, 1, 32, 17, 17, 32, 17, 17, 3, 3, 2, 2, 1,
305 1, 1, 1),
306 PARAMS(FMT_DATA_BLOCKED16, FMT_WEIGHTS_BLOCKED16, FMT_BIAS,
307 FMT_DATA_BLOCKED16, 2, 1, 32, 15, 15, 32, 11, 11, 3, 3, 0, 0, 1,
308 1, 1, 1),
309 PARAMS(FMT_DATA_BLOCKED16, FMT_WEIGHTS_BLOCKED16, FMT_BIAS,
310 FMT_DATA_BLOCKED16, 2, 1, 32, 15, 15, 32, 9, 9, 3, 3, 0, 0, 1,
311 1, 2, 2),
312 PARAMS(FMT_DATA_BLOCKED16, FMT_WEIGHTS_BLOCKED16, FMT_BIAS,
313 FMT_DATA_BLOCKED16, 2, 1, 32, 15, 15, 32, 7, 7, 3, 3, 0, 0, 1,
314 1, 3, 3),
315 PARAMS(FMT_DATA_BLOCKED16, FMT_WEIGHTS_BLOCKED16, FMT_BIAS,
316 FMT_DATA_BLOCKED16, 2, 1, 32, 15, 15, 32, 7, 7, 3, 3, 1, 1, 2,
317 2, 1, 1),
318 PARAMS(FMT_DATA_BLOCKED16, FMT_WEIGHTS_BLOCKED16, FMT_BIAS,
319 FMT_DATA_BLOCKED16, 2, 1, 32, 15, 15, 32, 6, 6, 3, 3, 1, 1, 2,
320 2, 2, 2),
321 PARAMS(FMT_DATA_BLOCKED16, FMT_WEIGHTS_BLOCKED16, FMT_BIAS,
322 FMT_DATA_BLOCKED16, 2, 1, 32, 15, 15, 32, 5, 5, 3, 3, 1, 1, 2,
323 2, 3, 3),
324 PARAMS(FMT_DATA_BLOCKED16, FMT_WEIGHTS_BLOCKED16, FMT_BIAS,
325 FMT_DATA_BLOCKED16, 2, 1, 32, 15, 15, 32, 9, 9, 5, 5, 1, 1, 1,
326 1, 1, 1),
327 PARAMS(FMT_DATA_BLOCKED16, FMT_WEIGHTS_BLOCKED16, FMT_BIAS,
328 FMT_DATA_BLOCKED16, 2, 1, 32, 15, 15, 32, 3, 3, 5, 5, 1, 1, 2,
329 2, 2, 2),
330 PARAMS(FMT_DATA_BLOCKED16, FMT_WEIGHTS_BLOCKED16, FMT_BIAS,
331 FMT_DATA_BLOCKED16, 2, 1, 32, 22, 22, 32, 12, 12, 7, 7, 1, 1, 1,
332 1, 1, 1),
333 PARAMS(FMT_DATA_BLOCKED16, FMT_WEIGHTS_BLOCKED16, FMT_BIAS,
334 FMT_DATA_BLOCKED16, 2, 1, 32, 22, 22, 32, 3, 3, 7, 7, 1, 1, 2,
335 2, 2, 2),
336 PARAMS(FMT_DATA_BLOCKED16, FMT_WEIGHTS_BLOCKED16, FMT_BIAS,
337 FMT_DATA_BLOCKED16, 2, 1, 32, 22, 22, 32, 8, 8, 9, 9, 1, 1, 1,
338 1, 1, 1),
339 PARAMS(FMT_DATA_BLOCKED16, FMT_WEIGHTS_BLOCKED16, FMT_BIAS,
340 FMT_DATA_BLOCKED16, 2, 1, 32, 7, 29, 32, 7, 29, 3, 3, 2, 2, 1,
341 1, 1, 1),
342 PARAMS(FMT_DATA_BLOCKED16, FMT_WEIGHTS_BLOCKED16, FMT_BIAS,
343 FMT_DATA_BLOCKED16, 2, 1, 32, 7, 29, 32, 7, 29, 3, 5, 2, 4, 1,
344 1, 1, 1),
345 PARAMS(FMT_DATA_BLOCKED16, FMT_WEIGHTS_BLOCKED16, FMT_BIAS,
346 FMT_DATA_BLOCKED16, 2, 1, 32, 7, 29, 32, 7, 29, 3, 9, 2, 8, 1,
347 1, 1, 1),
348 PARAMS(FMT_DATA_BLOCKED16, FMT_WEIGHTS_BLOCKED16, FMT_BIAS,
349 FMT_DATA_BLOCKED16, 2, 1, 32, 8, 8, 32, 3, 8, 3, 3, 1, 1, 2, 1,
350 1, 0),
351 PARAMS(FMT_DATA_BLOCKED16, FMT_WEIGHTS_BLOCKED16, FMT_BIAS,
352 FMT_DATA_BLOCKED16, 2, 1, 32, 8, 8, 32, 8, 2, 3, 3, 1, 1, 1, 3,
353 0, 2));
354
355CPU_INST_TEST_CASE(Simple_Regression,
356 /* grouped small input-channel avx512 */
357 PARAMS(nchw, gOhwi16o, FMT_BIAS, FMT_DATA_BLOCKED16, 2, 2, 16, 8, 8, 32,
358 8, 8, 3, 3, 1, 1, 1, 1),
359 /* grouped small input-channel avx2 */
360 PARAMS(nchw, gOhwi8o, FMT_BIAS, nChw8c, 2, 2, 4, 2, 2, 16, 8, 8, 3, 3,
361 1, 1, 1, 1),
362 PARAMS(FMT_DATA_BLOCKED16, FMT_WEIGHTS_BLOCKED16, FMT_BIAS,
363 FMT_DATA_BLOCKED16, 2, 1, 32, 16, 16, 32, 16, 16, 3, 3, 0, 0, 1,
364 1),
365 PARAMS(FMT_DATA_BLOCKED16, FMT_WEIGHTS_BLOCKED16, FMT_BIAS,
366 FMT_DATA_BLOCKED16, 2, 1, 32, 28, 28, 32, 28, 28, 3, 3, 0, 0, 1,
367 1),
368 PARAMS(FMT_DATA_BLOCKED16, FMT_WEIGHTS_BLOCKED16, FMT_BIAS,
369 FMT_DATA_BLOCKED16, 2, 1, 32, 32, 32, 32, 32, 32, 3, 3, 0, 0, 1,
370 1),
371 PARAMS(FMT_DATA_BLOCKED16, FMT_WEIGHTS_BLOCKED16, FMT_BIAS,
372 FMT_DATA_BLOCKED16, 2, 1, 32, 3, 3, 32, 2, 2, 3, 3, 1, 1, 1, 1),
373 PARAMS(FMT_DATA_BLOCKED16, FMT_WEIGHTS_BLOCKED16, FMT_BIAS,
374 FMT_DATA_BLOCKED16, 2, 1, 32, 34, 34, 32, 34, 34, 5, 5, 2, 2, 1,
375 1));
376
377CPU_INST_TEST_CASE(Simple_Depthwise_Blocked,
378 PARAMS(FMT_DATA_BLOCKED, Goihw8g, FMT_BIAS, FMT_DATA_BLOCKED, 2, 8, 8,
379 16, 16, 8, 16, 16, 3, 3, 0, 0, 1, 1),
380 PARAMS(FMT_DATA_BLOCKED, Goihw8g, FMT_BIAS, FMT_DATA_BLOCKED, 2, 32, 32,
381 9, 9, 32, 2, 2, 5, 5, 0, 0, 3, 3),
382 PARAMS(FMT_DATA_BLOCKED, Goihw8g, FMT_BIAS, FMT_DATA_BLOCKED, 2, 64, 64,
383 26, 26, 64, 13, 13, 4, 4, 1, 1, 2, 2),
384 PARAMS(FMT_DATA_BLOCKED, Goihw8g, FMT_BIAS, FMT_DATA_BLOCKED, 2, 32, 32,
385 111, 111, 32, 112, 112, 1, 1, 0, 0, 1, 1),
386 PARAMS(FMT_DATA_BLOCKED, Goihw8g, FMT_BIAS, FMT_DATA_BLOCKED, 1, 64, 64,
387 1, 2, 64, 1, 1, 3, 3, 1, 1, 1, 2),
388 PARAMS(FMT_DATA_BLOCKED, Goihw8g, FMT_BIAS, FMT_DATA_BLOCKED, 1, 16, 16,
389 16, 32, 16, 16, 18, 3, 3, 1, 2, 1, 2),
390 PARAMS(FMT_DATA_BLOCKED, Goihw8g, FMT_BIAS, FMT_DATA_BLOCKED, 1, 24, 24,
391 32, 16, 24, 16, 14, 3, 3, 1, 0, 2, 1),
392 PARAMS(FMT_DATA_BLOCKED, Goihw8g, FMT_BIAS, FMT_DATA_BLOCKED, 1, 16, 16,
393 32, 16, 16, 18, 16, 3, 3, 2, 1, 2, 1),
394 PARAMS(FMT_DATA_BLOCKED, Goihw8g, FMT_BIAS, FMT_DATA_BLOCKED, 1, 8, 8,
395 500, 500, 8, 698, 698, 3, 3, 100, 100, 1, 1));
396
397CPU_INST_TEST_CASE(Simple_Depthwise_Blocked16,
398 PARAMS(FMT_DATA_BLOCKED16, Goihw16g, FMT_BIAS, FMT_DATA_BLOCKED16, 2,
399 16, 16, 16, 16, 16, 16, 16, 3, 3, 0, 0, 1, 1),
400 PARAMS(FMT_DATA_BLOCKED16, Goihw16g, FMT_BIAS, FMT_DATA_BLOCKED16, 2,
401 32, 32, 9, 9, 32, 2, 2, 5, 5, 0, 0, 3, 3),
402 PARAMS(FMT_DATA_BLOCKED16, Goihw16g, FMT_BIAS, FMT_DATA_BLOCKED16, 2,
403 64, 64, 26, 26, 64, 13, 13, 4, 4, 1, 1, 2, 2),
404 PARAMS(FMT_DATA_BLOCKED16, Goihw16g, FMT_BIAS, FMT_DATA_BLOCKED16, 2,
405 32, 32, 111, 111, 32, 112, 112, 1, 1, 0, 0, 1, 1),
406 PARAMS(FMT_DATA_BLOCKED16, Goihw16g, FMT_BIAS, FMT_DATA_BLOCKED16, 2,
407 64, 64, 1, 2, 64, 1, 1, 3, 3, 1, 1, 1, 2),
408 PARAMS(FMT_DATA_BLOCKED16, Goihw16g, FMT_BIAS, FMT_DATA_BLOCKED16, 1,
409 32, 32, 16, 32, 32, 14, 16, 3, 3, 0, 1, 1, 2),
410 PARAMS(FMT_DATA_BLOCKED16, Goihw16g, FMT_BIAS, FMT_DATA_BLOCKED16, 1,
411 16, 16, 16, 32, 16, 16, 18, 3, 3, 1, 2, 1, 2),
412 PARAMS(FMT_DATA_BLOCKED16, Goihw16g, FMT_BIAS, FMT_DATA_BLOCKED16, 1,
413 32, 32, 32, 16, 32, 16, 14, 3, 3, 1, 0, 2, 1),
414 PARAMS(FMT_DATA_BLOCKED16, Goihw16g, FMT_BIAS, FMT_DATA_BLOCKED16, 1,
415 16, 16, 32, 16, 16, 18, 16, 3, 3, 2, 1, 2, 1),
416 PARAMS(FMT_DATA_BLOCKED16, Goihw16g, FMT_BIAS, FMT_DATA_BLOCKED16, 1,
417 16, 16, 500, 500, 16, 698, 698, 3, 3, 100, 100, 1, 1));
418
419CPU_INST_TEST_CASE(Simple_Depthwise_BRDGMM_Blocked16,
420 PARAMS(FMT_DATA_BLOCKED16, hwioG16g, FMT_BIAS, FMT_DATA_BLOCKED16, 2,
421 16, 16, 16, 16, 16, 16, 16, 3, 3, 0, 0, 1, 1),
422 PARAMS(FMT_DATA_BLOCKED16, hwioG16g, FMT_BIAS, FMT_DATA_BLOCKED16, 2,
423 32, 32, 9, 9, 32, 2, 2, 5, 5, 0, 0, 3, 3),
424 PARAMS(FMT_DATA_BLOCKED16, hwioG16g, FMT_BIAS, FMT_DATA_BLOCKED16, 2,
425 64, 64, 26, 26, 64, 13, 13, 4, 4, 1, 1, 2, 2),
426 PARAMS(FMT_DATA_BLOCKED16, hwioG16g, FMT_BIAS, FMT_DATA_BLOCKED16, 2,
427 32, 32, 111, 111, 32, 112, 112, 1, 1, 0, 0, 1, 1),
428 PARAMS(FMT_DATA_BLOCKED16, hwioG16g, FMT_BIAS, FMT_DATA_BLOCKED16, 2,
429 64, 64, 1, 2, 64, 1, 1, 3, 3, 1, 1, 1, 2),
430 PARAMS(FMT_DATA_BLOCKED16, hwioG16g, FMT_BIAS, FMT_DATA_BLOCKED16, 1,
431 32, 32, 16, 32, 32, 14, 16, 3, 3, 0, 1, 1, 2),
432 PARAMS(FMT_DATA_BLOCKED16, hwioG16g, FMT_BIAS, FMT_DATA_BLOCKED16, 1,
433 16, 16, 16, 32, 16, 16, 18, 3, 3, 1, 2, 1, 2),
434 PARAMS(FMT_DATA_BLOCKED16, hwioG16g, FMT_BIAS, FMT_DATA_BLOCKED16, 1,
435 32, 32, 32, 16, 32, 16, 14, 3, 3, 1, 0, 2, 1),
436 PARAMS(FMT_DATA_BLOCKED16, hwioG16g, FMT_BIAS, FMT_DATA_BLOCKED16, 1,
437 16, 16, 32, 16, 16, 18, 16, 3, 3, 2, 1, 2, 1),
438 PARAMS(FMT_DATA_BLOCKED16, hwioG16g, FMT_BIAS, FMT_DATA_BLOCKED16, 1,
439 16, 16, 500, 500, 16, 698, 698, 3, 3, 100, 100, 1, 1));
440
441CPU_INST_TEST_CASE(Simple_Depthwise_BRDGMM_Blocked8,
442 PARAMS(nhwc, hwioG8g, FMT_BIAS, FMT_DATA_BLOCKED16, 2, 16, 16, 16, 16,
443 16, 16, 16, 3, 3, 0, 0, 1, 1),
444 PARAMS(nhwc, hwioG8g, FMT_BIAS, FMT_DATA_BLOCKED16, 2, 32, 32, 9, 9, 32,
445 2, 2, 5, 5, 0, 0, 3, 3),
446 PARAMS(nhwc, hwioG8g, FMT_BIAS, FMT_DATA_BLOCKED16, 2, 64, 64, 26, 26,
447 64, 13, 13, 4, 4, 1, 1, 2, 2),
448 PARAMS(nhwc, hwioG8g, FMT_BIAS, FMT_DATA_BLOCKED16, 2, 32, 32, 111, 111,
449 32, 112, 112, 1, 1, 0, 0, 1, 1),
450 PARAMS(nhwc, hwioG8g, FMT_BIAS, FMT_DATA_BLOCKED16, 2, 64, 64, 1, 2, 64,
451 1, 1, 3, 3, 1, 1, 1, 2),
452 PARAMS(nhwc, hwioG8g, FMT_BIAS, FMT_DATA_BLOCKED16, 1, 32, 32, 16, 32,
453 32, 14, 16, 3, 3, 0, 1, 1, 2),
454 PARAMS(nhwc, hwioG8g, FMT_BIAS, FMT_DATA_BLOCKED16, 1, 16, 16, 16, 32,
455 16, 16, 18, 3, 3, 1, 2, 1, 2),
456 PARAMS(nhwc, hwioG8g, FMT_BIAS, FMT_DATA_BLOCKED16, 1, 32, 32, 32, 16,
457 32, 16, 14, 3, 3, 1, 0, 2, 1),
458 PARAMS(nhwc, hwioG8g, FMT_BIAS, FMT_DATA_BLOCKED16, 1, 16, 16, 32, 16,
459 16, 18, 16, 3, 3, 2, 1, 2, 1),
460 PARAMS(nhwc, hwioG8g, FMT_BIAS, FMT_DATA_BLOCKED16, 1, 16, 16, 500, 500,
461 16, 698, 698, 3, 3, 100, 100, 1, 1));
462