diff options
author | Gian Marco Iodice <gianmarco.iodice@arm.com> | 2021-06-29 10:08:46 +0100 |
---|---|---|
committer | Gian Marco Iodice <gianmarco.iodice@arm.com> | 2021-06-29 14:09:52 +0000 |
commit | 72b56875b9bb30a9ed1d2ad38ec51fc88e435c35 (patch) | |
tree | 0ce37505da5cfd8a4b75000432d66e75a2b48a32 /tests/validation/Helpers.cpp | |
parent | 93b75e0c072c3cc5654fcdf6aed1068b40012081 (diff) | |
download | ComputeLibrary-72b56875b9bb30a9ed1d2ad38ec51fc88e435c35.tar.gz |
Enable global pooling optimization on OpenCL
- Add loop unrolling on X and use POOL_X and POOL_Y defines for the for
loop
Resolves COMPMID-4573
Change-Id: I33cb825cfb55912ccb0ab9d03bd33a3dab4c8b44
Signed-off-by: Gian Marco Iodice <gianmarco.iodice@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/5872
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
Reviewed-by: Giorgio Arena <giorgio.arena@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'tests/validation/Helpers.cpp')
-rw-r--r-- | tests/validation/Helpers.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/validation/Helpers.cpp b/tests/validation/Helpers.cpp index 0f5d5c5101..237a5a517c 100644 --- a/tests/validation/Helpers.cpp +++ b/tests/validation/Helpers.cpp @@ -349,6 +349,30 @@ void add_padding_x(std::initializer_list<ITensor *> tensors, const DataLayout &d } } +void add_padding_y(std::initializer_list<ITensor *> tensors, const DataLayout &data_layout) +{ + if(data_layout == DataLayout::NHWC) + { + constexpr unsigned int lower = 1U; + constexpr unsigned int upper = 4U; + + std::uniform_int_distribution<unsigned int> distribution(lower, upper); + size_t seed_offset = 0; + + for(ITensor *tensor : tensors) + { + ARM_COMPUTE_ERROR_ON(!tensor->info()->is_resizable()); + + std::mt19937 gen(library->seed() + seed_offset++); + + const unsigned int top = distribution(gen); + const unsigned int bottom = distribution(gen); + + tensor->info()->extend_padding(PaddingSize(top, 0U, bottom, 0U)); + } + } +} + template void get_tile(const SimpleTensor<float> &in, SimpleTensor<float> &roi, const Coordinates &coord); template void get_tile(const SimpleTensor<half> &in, SimpleTensor<half> &roi, const Coordinates &coord); template void get_tile(const SimpleTensor<int> &in, SimpleTensor<int> &roi, const Coordinates &coord); |