diff options
author | Pablo Marquez Tello <pablo.tello@arm.com> | 2023-11-13 15:57:54 +0000 |
---|---|---|
committer | Pablo Marquez Tello <pablo.tello@arm.com> | 2023-11-16 10:07:38 +0000 |
commit | ba93371f2316218a09a24403076ab3fdf967b168 (patch) | |
tree | 6e1ff3b974c3893cb50ccb6226e580e4553ab5a7 /src/core/NEON/kernels/NENormalizationLayerKernel.h | |
parent | d4650e9e98c8f854776ae78fb6d3e46e7fe4ba20 (diff) | |
download | ComputeLibrary-ba93371f2316218a09a24403076ab3fdf967b168.tar.gz |
NormalizationLayer changes to enable fp16 in armv8a multi_isa builds
* Moved the template arm_compute::normalize_float to impl.h because
we need to instantiate it from both NENormalizationLayerKernel.cpp
and src/cpu/kernels/norm_layer/generic/neon/fp16.cpp
* Changes in filelist.json: added a new fp16.cpp file for the float16_t kernels
* Replaced the guard __ARM_FEATURE_FP16_VECTOR_ARITHMETIC in
NENormalizationLayerKernel by ARM_COMPUTE_ENABLE_FP16 so that
the fp16 kernels can be compiled in for multi_isa builds
* Moved fp32 kernels to the corresponding file
src/cpu/kernels/norm_layer/generic/neon/fp32.cpp
* Partially resolves MLCE-1102
Change-Id: I3f2eb2ed0b6c7f68092b17872b85082fbb5f39e2
Signed-off-by: Pablo Marquez Tello <pablo.tello@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/10739
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Viet-Hoa Do <viet-hoa.do@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Benchmark: Arm Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'src/core/NEON/kernels/NENormalizationLayerKernel.h')
-rw-r--r-- | src/core/NEON/kernels/NENormalizationLayerKernel.h | 24 |
1 files changed, 6 insertions, 18 deletions
diff --git a/src/core/NEON/kernels/NENormalizationLayerKernel.h b/src/core/NEON/kernels/NENormalizationLayerKernel.h index 2d8d9f3d60..5ba4c3edca 100644 --- a/src/core/NEON/kernels/NENormalizationLayerKernel.h +++ b/src/core/NEON/kernels/NENormalizationLayerKernel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2020 Arm Limited. + * Copyright (c) 2017-2020, 2023 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -21,8 +21,8 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ -#ifndef ARM_COMPUTE_NENORMALIZATIONLAYERKERNEL_H -#define ARM_COMPUTE_NENORMALIZATIONLAYERKERNEL_H +#ifndef ACL_SRC_CORE_NEON_KERNELS_NENORMALIZATIONLAYERKERNEL_H +#define ACL_SRC_CORE_NEON_KERNELS_NENORMALIZATIONLAYERKERNEL_H #include "src/core/NEON/INEKernel.h" @@ -82,24 +82,12 @@ public: void run(const Window &window, const ThreadInfo &info) override; private: - /** Function to perform normalization depending on the given template - * dimension. The second template parameter specifies whether the - * normalization has to be 1D or 2D. - * - * @note Only supported normalizations are: - * - 1D over X or Z - * - 2D over X and Y - * - * @param[in] window Region on which to execute the kernel. - */ - template <typename T, unsigned int S, unsigned int dim, bool do_2D_norm> - void normalize_float(const Window &window); - /** Common signature for all the specialised normalization functions * * @param[in] window Region on which to execute the kernel. */ - using NormalizationFunction = void (NENormalizationLayerKernel::*)(const Window &window); + using NormalizationFunction = void (*)( + const Window &window, const ITensor *in, const ITensor *in_squared, ITensor *out, NormalizationLayerInfo ninfo); private: NormalizationFunction _func; @@ -109,4 +97,4 @@ private: NormalizationLayerInfo _norm_info; }; } // namespace arm_compute -#endif /*ARM_COMPUTE_NENORMALIZATIONLAYERKERNEL_H */ +#endif // ACL_SRC_CORE_NEON_KERNELS_NENORMALIZATIONLAYERKERNEL_H |