diff options
author | Georgios Pinitas <georgios.pinitas@arm.com> | 2018-05-18 17:11:16 +0100 |
---|---|---|
committer | Anthony Barbier <anthony.barbier@arm.com> | 2018-11-02 16:52:54 +0000 |
commit | bc06f99c03ad73cf6033b5c9a848672e3e1c368d (patch) | |
tree | ca1c15e7b01c76323957400975c190aab6e47b1f /src/core/CL/kernels/CLDeconvolutionLayerUpsampleKernel.cpp | |
parent | 65f9982e99a6d9bea8084b7e15bc6c72ff535d8b (diff) | |
download | ComputeLibrary-bc06f99c03ad73cf6033b5c9a848672e3e1c368d.tar.gz |
COMPMID-959: Fix deconvolution window.
Change-Id: I791855edf6f821381ecb8ff0652fb14a5810d9d7
Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/131912
Tested-by: Jenkins <bsgcomp@arm.com>
Reviewed-by: Pablo Tello <pablo.tello@arm.com>
Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
Diffstat (limited to 'src/core/CL/kernels/CLDeconvolutionLayerUpsampleKernel.cpp')
-rw-r--r-- | src/core/CL/kernels/CLDeconvolutionLayerUpsampleKernel.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/core/CL/kernels/CLDeconvolutionLayerUpsampleKernel.cpp b/src/core/CL/kernels/CLDeconvolutionLayerUpsampleKernel.cpp index e7cdf8c607..1feac7d815 100644 --- a/src/core/CL/kernels/CLDeconvolutionLayerUpsampleKernel.cpp +++ b/src/core/CL/kernels/CLDeconvolutionLayerUpsampleKernel.cpp @@ -101,18 +101,20 @@ void CLDeconvolutionLayerUpsampleKernel::run(const Window &window, cl::CommandQu const int out_end_y = _output->info()->dimension(1) - _info.pad().second + _info.stride().second - 1; const int out_step_y = _info.stride().second; - Window slice_out = window.first_slice_window_2D(); + Window collapsed = window.collapse_if_possible(ICLKernel::window(), Window::DimZ); + + Window slice_out = collapsed.first_slice_window_3D(); slice_out.set(Window::DimX, Window::Dimension(out_start_x, out_end_x, out_step_x)); slice_out.set(Window::DimY, Window::Dimension(out_start_y, out_end_y, out_step_y)); - Window slice_in = window.first_slice_window_2D(); + Window slice_in = collapsed.first_slice_window_3D(); do { unsigned int idx = 0; - add_2D_tensor_argument(idx, _input, slice_in); - add_2D_tensor_argument(idx, _output, slice_out); + add_3D_tensor_argument(idx, _input, slice_in); + add_3D_tensor_argument(idx, _output, slice_out); enqueue(queue, *this, slice_out); } - while(window.slide_window_slice_2D(slice_in) && window.slide_window_slice_2D(slice_out)); + while(collapsed.slide_window_slice_3D(slice_in) && collapsed.slide_window_slice_3D(slice_out)); } |