From fb0b2804057ebcd01a7fdb1b42f86726602cc646 Mon Sep 17 00:00:00 2001 From: Georgios Pinitas Date: Wed, 1 Aug 2018 12:11:15 +0100 Subject: COMPMID-1438: MobilenetV1 regression. Alters the ending conditions for y dimension to use the actual end offset as a bound and not the actual y window as this could be the whole execution window and can lead to overlapped calculations across threads. Change-Id: Ic6642bbaa8e85d4a4034a44234d6cb3347a2f4ff Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/142229 Tested-by: Jenkins Reviewed-by: Anthony Barbier --- arm_compute/core/WindowIterator.h | 4 ++-- tests/validation/UNIT/WindowIterator.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/arm_compute/core/WindowIterator.h b/arm_compute/core/WindowIterator.h index 13cb9cf2f4..8e58d0ce1c 100644 --- a/arm_compute/core/WindowIterator.h +++ b/arm_compute/core/WindowIterator.h @@ -218,7 +218,7 @@ private: // Shouldn't be possible to reach that point and not have at least one entire row to process ARM_COMPUTE_ERROR_ON(_w.y().end() == _position.y()); // No leftover: all the rows lefts to process are full width: - iterate_over_dim1(_w.y().end()); + iterate_over_dim1(end_y + _w.y().step()); } else { @@ -229,7 +229,7 @@ private: PRINTF("full rows\n"); //Switch to full row size: on_new_row_size(_w[0].start(), _w.x().end()); - iterate_over_dim1(_w.y().end() - _w.y().step()); + iterate_over_dim1(end_y); } PRINTF("Final leftover\n"); diff --git a/tests/validation/UNIT/WindowIterator.cpp b/tests/validation/UNIT/WindowIterator.cpp index 0c1ab12fe7..402cab4990 100644 --- a/tests/validation/UNIT/WindowIterator.cpp +++ b/tests/validation/UNIT/WindowIterator.cpp @@ -96,7 +96,7 @@ DATA_TEST_CASE(WholeWindow, framework::DatasetMode::ALL, zip(framework::dataset: } DATA_TEST_CASE(PartialWindow2D, framework::DatasetMode::ALL, zip(zip(zip(combine(framework::dataset::make("Window", - create_window(Window::Dimension(4, 20, 4), Window::Dimension(3, 18, 5), Window::Dimension(1, 2, 1))), + create_window(Window::Dimension(4, 20, 4), Window::Dimension(3, 32, 5), Window::Dimension(1, 2, 1))), framework::dataset::make("Start", { 0, 1, 3, 2, 4 })), framework::dataset::make("End", { 0, 2, 5, 8, 7 })), framework::dataset::make("RowSize", -- cgit v1.2.1