MCPcopy Create free account
hub / github.com/ARM-software/ComputeLibrary / run

Method run

src/core/CL/kernels/CLSpaceToBatchLayerKernel.cpp:240–274  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

238}
239
240void CLSpaceToBatchLayerKernel::run(const Window &window, cl::CommandQueue &queue)
241{
242 ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this);
243 ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(ICLKernel::window(), window);
244
245 Window slice_out = window.first_slice_window_3D();
246
247 Window slice_in = window.first_slice_window_4D();
248 slice_in.set(Window::DimX, Window::Dimension(0, 0, 0));
249 slice_in.set(Window::DimY, Window::Dimension(0, 0, 0));
250 slice_in.set(Window::DimZ, Window::Dimension(0, 0, 0));
251 slice_in.set(3, Window::Dimension(0, 0, 0));
252
253 Window vector_slice = window.first_slice_window_1D();
254 vector_slice.set(Window::DimX, Window::Dimension(0, 0, 0));
255
256 Window padding_slice = window.first_slice_window_2D();
257 padding_slice.set(Window::DimX, Window::Dimension(0, 0, 0));
258 padding_slice.set(Window::DimY, Window::Dimension(0, 0, 0));
259
260 int batch_id = 0;
261 do
262 {
263 unsigned int idx = 0;
264 const bool cond = (_paddings != nullptr && _block_shape != nullptr);
265 add_4D_tensor_argument(idx, _input, slice_in);
266 add_2D_tensor_argument_if(cond, idx, _paddings, padding_slice);
267 add_1D_tensor_argument_if(cond, idx, _block_shape, vector_slice);
268
269 add_argument(idx, batch_id);
270 add_3D_tensor_argument(idx, _output, slice_out);
271 enqueue(queue, *this, slice_out, lws_hint());
272 ++batch_id;
273 } while (window.slide_window_slice_3D(slice_out));
274}
275} // namespace arm_compute

Callers

nothing calls this directly

Calls 7

first_slice_window_3DMethod · 0.80
first_slice_window_4DMethod · 0.80
first_slice_window_1DMethod · 0.80
first_slice_window_2DMethod · 0.80
slide_window_slice_3DMethod · 0.80
DimensionClass · 0.50
setMethod · 0.45

Tested by

no test coverage detected