30 cl::NDRange get_gemm_lws(
size_t gws_x,
size_t gws_y,
size_t gws_z)
36 return cl::NDRange(4, 4, 2);
42 return cl::NDRange(2, 16, 1);
46 return cl::NDRange(32, 4, 1);
51 cl::NDRange get_winograd_lws(
size_t gws_x,
size_t gws_y,
size_t gws_z)
55 return cl::NDRange(4, 2, 1);
58 cl::NDRange get_direct_lws(
size_t gws_x,
size_t gws_y,
size_t gws_z)
66 return cl::NDRange(std::min(gws_x,
static_cast<size_t>(2u)), 32, 1);
70 return cl::NDRange(std::min(gws_x,
static_cast<size_t>(4u)), 8, 1);
75 return cl::NDRange(8, 4, 1);
79 cl::NDRange get_dwc_lws(
size_t gws_x,
size_t gws_y,
size_t gws_z)
86 return cl::NDRange(gws_x, 4, 4);
90 return cl::NDRange(8, 4, 2);
99 const size_t gws_x = gws[0];
100 const size_t gws_y = gws[1];
101 const size_t gws_z = gws[2];
107 return get_gemm_lws(gws_x, gws_y, gws_z);
111 return get_direct_lws(gws_x, gws_y, gws_z);
115 return get_winograd_lws(gws_x, gws_y, gws_z);
119 return get_dwc_lws(gws_x, gws_y, gws_z);