diff options
author | Michele Di Giorgio <michele.digiorgio@arm.com> | 2019-08-13 14:23:21 +0100 |
---|---|---|
committer | Michele Di Giorgio <michele.digiorgio@arm.com> | 2019-08-13 15:41:26 +0000 |
commit | 9d3e7f9c2bcb56b9bfb867ac92db784484bbb816 (patch) | |
tree | f0fa15b520d8911acdbf46148fc3b9b05e90f102 /src/core/NEON/kernels/NEGEMMLowpMatrixMultiplyKernel.cpp | |
parent | 3ae323f941f55cf282caa75dffa5150dd975b321 (diff) | |
download | ComputeLibrary-9d3e7f9c2bcb56b9bfb867ac92db784484bbb816.tar.gz |
COMPMID-2569: Fix access window in NEGEMMTranspose1xWKernel and NEGEMMLowpMatrixMultiplyKernel
A lot of padding was unnecessarily added by
NEGEMMLowpMatrixMultiplyKernel because the wrong number of elements
accessed in the X direction was set to the access window of the second
input.
Change-Id: I1dac0a55dbf2183540d4fed31f097ef6d6243a5b
Signed-off-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Reviewed-on: https://review.mlplatform.org/c/1728
Reviewed-by: Gian Marco Iodice <gianmarco.iodice@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'src/core/NEON/kernels/NEGEMMLowpMatrixMultiplyKernel.cpp')
-rw-r--r-- | src/core/NEON/kernels/NEGEMMLowpMatrixMultiplyKernel.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/core/NEON/kernels/NEGEMMLowpMatrixMultiplyKernel.cpp b/src/core/NEON/kernels/NEGEMMLowpMatrixMultiplyKernel.cpp index b561d1e3f4..6cec51d5a2 100644 --- a/src/core/NEON/kernels/NEGEMMLowpMatrixMultiplyKernel.cpp +++ b/src/core/NEON/kernels/NEGEMMLowpMatrixMultiplyKernel.cpp @@ -780,9 +780,9 @@ std::pair<Status, Window> validate_and_configure_window(ITensorInfo *input0, ITe unsigned int num_k_iterations = ceil_to_multiple(input1->dimension(0), num_elems_processed_per_iteration_x) / 16; // For each iteration of "k" we increment the input pointer by 4, and we load 8 elements a the time: - AccessWindowStatic in0_access(input0, 0, 0, (num_k_iterations - 1) * 4 + 8, input0->dimension(1)); - AccessWindowHorizontal in1_access(input1, 0, input1->dimension(0)); - AccessWindowRectangle output_access(output, 0, 0, num_elems_processed_per_iteration_x, num_elems_processed_per_iteration_y); + AccessWindowStatic in0_access(input0, 0, 0, (num_k_iterations - 1) * 4 + 8, input0->dimension(1)); + AccessWindowStatic in1_access(input1, 0, 0, ceil_to_multiple(input1->dimension(0), num_elems_processed_per_iteration_x), input1->dimension(1)); + AccessWindowRectangle output_access(output, 0, 0, num_elems_processed_per_iteration_x, num_elems_processed_per_iteration_y); window_changed = update_window_and_padding(win, in0_access, in1_access, output_access); |