diff options
author | Sang-Hoon Park <sang-hoon.park@arm.com> | 2019-09-17 08:59:09 +0100 |
---|---|---|
committer | Georgios Pinitas <georgios.pinitas@arm.com> | 2019-09-30 15:33:01 +0000 |
commit | cecb0a75a9de0a12d30f8fabbe16a656c722afa1 (patch) | |
tree | 9517b7fd1fa31126c5fbd3e66f4fb9c7e0b9af1b /arm_compute/core/Window.h | |
parent | 879d1313ba69d9ced8424f54ffeea6a3c60496f0 (diff) | |
download | ComputeLibrary-cecb0a75a9de0a12d30f8fabbe16a656c722afa1.tar.gz |
COMPMID-2637 [CL] fix broadcast pixel-wise multiplication with 5D tensors
Broadcast pixel-wise multiplication with 5D tensors is fixed
by adding information whether a dimension has been broadcasted
to compute correct start offset when adding 3D tensor argument.
The testcase that failed is added to the validation test suite.
Change-Id: I320876f507012c27b39daae1316f9b69138ed204
Signed-off-by: Sang-Hoon Park <sang-hoon.park@arm.com>
Reviewed-on: https://review.mlplatform.org/c/1994
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
Diffstat (limited to 'arm_compute/core/Window.h')
-rw-r--r-- | arm_compute/core/Window.h | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/arm_compute/core/Window.h b/arm_compute/core/Window.h index a56227996b..be42fe9a87 100644 --- a/arm_compute/core/Window.h +++ b/arm_compute/core/Window.h @@ -48,7 +48,7 @@ public: /** Default constructor: create a window containing a single element. */ constexpr Window() - : _dims() + : _dims(), _is_broadcasted(utility::generate_array<bool, Coordinates::num_max_dimensions, false>::value) { } /** Copy constructor @@ -170,6 +170,20 @@ public: */ void set(size_t dimension, const Dimension &dim); + /** Set the dimension as broadcasted dimension + * + * @param[in] dimension The dimension to set + */ + void set_broadcasted(size_t dimension); + + /** Return whether a dimension has been broadcasted + * + * @param[in] dimension The requested dimension + * + * @return true if the dimension has been broadcasted + */ + bool is_broadcasted(size_t dimension) const; + /** Use the tensor's dimensions to fill the window dimensions. * * @param[in] shape @ref TensorShape to copy the dimensions from. @@ -419,6 +433,7 @@ private: private: std::array<Dimension, Coordinates::num_max_dimensions> _dims; + std::array<bool, Coordinates::num_max_dimensions> _is_broadcasted; }; } // namespace arm_compute #include "Window.inl" |