diff options
author | Georgios Pinitas <georgios.pinitas@arm.com> | 2017-09-15 16:30:50 +0100 |
---|---|---|
committer | Anthony Barbier <anthony.barbier@arm.com> | 2018-11-02 16:35:24 +0000 |
commit | 658039bc4e06be34272eccf559a516a6b52f75f5 (patch) | |
tree | 7ab17a9cb5dad7b18f7e3a67b731f2c462b1ac24 /arm_compute/runtime/NEON/functions/NEScale.h | |
parent | 9e40cf7c21ed0136150101d6c930417d475ecff1 (diff) | |
download | ComputeLibrary-658039bc4e06be34272eccf559a516a6b52f75f5.tar.gz |
COMPMID-534: Add MemoryManager support in NEON functions
Adds support for:
-NECannyEdge
-NEConvolution
-NEDirectConvolution
-NEGEMM
-NEGEMMLowp
-NEGaussian5x5
-NEHOGDescriptor
-NEHOGGradient
-NEL2Normalize
-NELocallyConnectedLayer
-NENormalizationLayer
-NEScale
-NESobel5x5
-NESobel7x7
Change-Id: I68e05aa6054372fa873a882633a15fb97882c00d
Reviewed-on: http://mpd-gerrit.cambridge.arm.com/87926
Reviewed-by: Pablo Tello <pablo.tello@arm.com>
Tested-by: Kaizen <jeremy.johnson+kaizengerrit@arm.com>
Diffstat (limited to 'arm_compute/runtime/NEON/functions/NEScale.h')
-rw-r--r-- | arm_compute/runtime/NEON/functions/NEScale.h | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/arm_compute/runtime/NEON/functions/NEScale.h b/arm_compute/runtime/NEON/functions/NEScale.h index e1da891dcf..91cda066e7 100644 --- a/arm_compute/runtime/NEON/functions/NEScale.h +++ b/arm_compute/runtime/NEON/functions/NEScale.h @@ -24,25 +24,30 @@ #ifndef __ARM_COMPUTE_NESCALEIMAGE_H__ #define __ARM_COMPUTE_NESCALEIMAGE_H__ +#include "arm_compute/core/NEON/kernels/NEFillBorderKernel.h" +#include "arm_compute/core/NEON/kernels/NEScaleKernel.h" #include "arm_compute/core/Types.h" -#include "arm_compute/runtime/NEON/INESimpleFunction.h" +#include "arm_compute/runtime/IFunction.h" +#include "arm_compute/runtime/IMemoryManager.h" +#include "arm_compute/runtime/MemoryGroup.h" #include "arm_compute/runtime/Tensor.h" #include <cstdint> +#include <memory> namespace arm_compute { class ITensor; /** Basic function to run @ref NEScaleKernel */ -class NEScale : public INESimpleFunction +class NEScale : public IFunction { public: /** Constructor * * Initialize NEScale */ - NEScale(); + NEScale(std::shared_ptr<IMemoryManager> memory_manager = nullptr); /** Initialize the function's source, destination, interpolation type and border_mode. * * @param[in, out] input Source tensor. Data type supported: U8. (Written to only for @p border_mode != UNDEFINED) @@ -53,10 +58,16 @@ public: */ void configure(ITensor *input, ITensor *output, InterpolationPolicy policy, BorderMode border_mode, uint8_t constant_border_value = 0); + // Inherited methods overridden: + void run() override; + private: - Tensor _offsets; /**< Offset to access the element with NEAREST interpolation or the top-left element with BILINEAR interpolation in the input tensor */ - Tensor _dx; /**< Element's distance between the X real coordinate and the smallest X following integer */ - Tensor _dy; /**< Element's distance between the Y real coordinate and the smallest Y following integer */ + MemoryGroup _memory_group; /**< Function memory group */ + Tensor _offsets; /**< Offset to access the element with NEAREST interpolation or the top-left element with BILINEAR interpolation in the input tensor */ + Tensor _dx; /**< Element's distance between the X real coordinate and the smallest X following integer */ + Tensor _dy; /**< Element's distance between the Y real coordinate and the smallest Y following integer */ + NEScaleKernel _scale_kernel; /**< Kernel to perform the scaling */ + NEFillBorderKernel _border_handler; /**< kernel to handle tensor borders */ }; } #endif /*__ARM_COMPUTE_NESCALEIMAGE_H__ */ |