44 unsigned int depth_multiplier,
54 const size_t kernel_c = wei_shape[idx_c];
55 const size_t kernel_w = wei_shape[idx_w];
68 if (depth_multiplier == 1)
74 if ((depth_multiplier % 4) == 0)
78 else if ((depth_multiplier % 2) == 0)
95 if (
conv_info.stride().first == 1 && dilation.
x() == 1)
97 if ((kernel_w >= 9) || (kernel_w == 1))
119 unsigned int depth_multiplier,
131 const size_t src_w = src_shape[idx_w];
132 const size_t kernel_c = wei_shape[idx_c];
133 const size_t kernel_w = wei_shape[idx_w];
146 if (depth_multiplier == 1)
159 if ((depth_multiplier % 4) == 0)
163 else if ((depth_multiplier % 2) == 0)
180 if (
conv_info.stride().first == 1 && dilation.
x() == 1)
182 if ((kernel_w >= 9) || (kernel_w == 1))
188 if ((src_w % 5) == 0)
216 unsigned int depth_multiplier)
220 unsigned int depth_multiplier);
223 &ClDWCNativeDefaultConfigBifrost::configure_G71_f32, &ClDWCNativeDefaultConfigBifrost::configure_G71_f16,
224 &ClDWCNativeDefaultConfigBifrost::configure_G7x_u8);
227 &ClDWCNativeDefaultConfigBifrost::configure_G7x_f32, &ClDWCNativeDefaultConfigBifrost::configure_G7x_f16,
228 &ClDWCNativeDefaultConfigBifrost::configure_G7x_u8);
230 ConfigurationFunctionExecutorPtr func =
nullptr;
242 return (this->*func)(
src, wei,
conv_info, dilation, depth_multiplier);
249 unsigned int depth_multiplier)
251 return configure_f32(
src, wei,
conv_info, dilation, depth_multiplier,
true);
258 unsigned int depth_multiplier)
260 return configure_f16(
src, wei,
conv_info, dilation, depth_multiplier,
true);
263 DWCComputeKernelInfo ClDWCNativeDefaultConfigBifrost::configure_G7x_f32(
const ITensorInfo *
src,
264 const ITensorInfo *wei,
266 const Size2D &dilation,
267 unsigned int depth_multiplier)
269 return configure_f32(
src, wei,
conv_info, dilation, depth_multiplier,
false);
272 DWCComputeKernelInfo ClDWCNativeDefaultConfigBifrost::configure_G7x_f16(
const ITensorInfo *
src,
273 const ITensorInfo *wei,
275 const Size2D &dilation,
276 unsigned int depth_multiplier)
278 return configure_f16(
src, wei,
conv_info, dilation, depth_multiplier,
false);
281 DWCComputeKernelInfo ClDWCNativeDefaultConfigBifrost::configure_G7x_u8(
const ITensorInfo *
src,
282 const ITensorInfo *wei,
284 const Size2D &dilation,
285 unsigned int depth_multiplier)
289 DWCComputeKernelInfo desc;
293 desc.export_input_to_cl_image =
false;
294 desc.export_weights_to_cl_image =
false;
295 desc.n0 = (depth_multiplier == 1) ? 4 : 1;
296 if (
conv_info.stride().first == 1 && dilation.x() == 1 && depth_multiplier == 1)