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

Method run_op

src/gpu/cl/kernels/ClCol2ImKernel.cpp:171–200  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

169}
170
171void ClCol2ImKernel::run_op(ITensorPack &tensors, const Window &window, cl::CommandQueue &queue)
172{
173 ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this);
174 ARM_COMPUTE_ERROR_ON_MISMATCHING_WINDOWS(IClKernel::window(), window);
175
176 bool is_collapsed = false;
177 bool is_collapsed_out = false;
178
179 auto src = utils::cast::polymorphic_downcast<const ICLTensor *>(tensors.get_const_tensor(TensorType::ACL_SRC));
180 auto dst = utils::cast::polymorphic_downcast<ICLTensor *>(tensors.get_tensor(TensorType::ACL_DST));
181
182 Window out_window;
183 out_window.use_tensor_dimensions(dst->info()->tensor_shape());
184
185 Window collapsed = window.collapse_if_possible(ICLKernel::window(), Window::DimZ, &is_collapsed);
186 Window collapsed_out = out_window.collapse_if_possible(out_window, 3, &is_collapsed_out);
187
188 ARM_COMPUTE_ERROR_ON(is_collapsed != is_collapsed_out);
189
190 Window slice = collapsed.first_slice_window_3D();
191 Window slice_out = collapsed_out.first_slice_window_4D();
192 do
193 {
194 // Set inputs
195 unsigned int idx = 0;
196 add_3D_tensor_argument(idx, src, slice);
197 add_4D_tensor_argument(idx, dst, slice_out);
198 enqueue(queue, *this, slice, lws_hint());
199 } while (collapsed.slide_window_slice_3D(slice) && collapsed_out.slide_window_slice_4D(slice_out));
200}
201} // namespace kernels
202} // namespace opencl
203} // namespace arm_compute

Callers

nothing calls this directly

Calls 8

get_const_tensorMethod · 0.80
collapse_if_possibleMethod · 0.80
first_slice_window_3DMethod · 0.80
first_slice_window_4DMethod · 0.80
slide_window_slice_3DMethod · 0.80
slide_window_slice_4DMethod · 0.80
get_tensorMethod · 0.45
infoMethod · 0.45

Tested by

no test coverage detected