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

Method run

src/core/NEON/kernels/NETileKernel.cpp:99–129  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

97}
98
99void NETileKernel::run(const Window &window, const ThreadInfo &info)
100{
101 ARM_COMPUTE_UNUSED(info);
102 ARM_COMPUTE_ERROR_ON_UNCONFIGURED_KERNEL(this);
103 ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(INEKernel::window(), window);
104
105 Window output_window{window};
106 output_window.set(Window::DimX, Window::Dimension(output_window.x().start(), output_window.x().end(),
107 _input->info()->dimension(0)));
108 Window out_slice = output_window.first_slice_window_1D();
109
110 const auto src_shape = _input->info()->tensor_shape();
111 do
112 {
113 Iterator output_it(_output, out_slice);
114
115 execute_window_loop(
116 out_slice,
117 [&](const Coordinates &id)
118 {
119 const size_t x = id.x();
120 const size_t y = id.y();
121 const size_t z = id.z();
122 const size_t w = id[3];
123 Coordinates input_coords{x % src_shape[0], y % src_shape[1], z % src_shape[2], w % src_shape[3]};
124 memcpy(output_it.ptr(), _input->ptr_to_element(input_coords),
125 _input->info()->dimension(0) * _input->info()->element_size());
126 },
127 output_it);
128 } while (output_window.slide_window_slice_1D(out_slice));
129}
130} // namespace arm_compute

Callers

nothing calls this directly

Calls 14

first_slice_window_1DMethod · 0.80
ptr_to_elementMethod · 0.80
slide_window_slice_1DMethod · 0.80
DimensionClass · 0.50
setMethod · 0.45
startMethod · 0.45
xMethod · 0.45
endMethod · 0.45
dimensionMethod · 0.45
infoMethod · 0.45
yMethod · 0.45
zMethod · 0.45

Tested by

no test coverage detected