From 659abc022b42ad8d11f58b3f3b7b4175f3cf1038 Mon Sep 17 00:00:00 2001 From: Pablo Tello Date: Thu, 22 Jun 2017 16:00:16 +0100 Subject: COMPMID-421: Added FP16 support in Convolutional layer (Neon) The test suite for FP16 is conditionally compiled in when the target platform is arch=arm64-8.2-a Change-Id: I1686157e83809a00a91058bff80dbecf692fb356 Reviewed-on: http://mpd-gerrit.cambridge.arm.com/78740 Tested-by: Kaizen Reviewed-by: Anthony Barbier --- src/core/NEON/kernels/NEIm2ColKernel.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'src/core/NEON/kernels/NEIm2ColKernel.cpp') diff --git a/src/core/NEON/kernels/NEIm2ColKernel.cpp b/src/core/NEON/kernels/NEIm2ColKernel.cpp index c7c23d5d06..875c08ed42 100644 --- a/src/core/NEON/kernels/NEIm2ColKernel.cpp +++ b/src/core/NEON/kernels/NEIm2ColKernel.cpp @@ -266,8 +266,8 @@ NEIm2ColKernel::NEIm2ColKernel() void NEIm2ColKernel::configure(const ITensor *input, ITensor *output, std::pair convolved_dims, const PadStrideInfo &conv_info, bool has_bias) { - ARM_COMPUTE_ERROR_ON_DATA_TYPE_CHANNEL_NOT_IN(input, 1, DataType::F32, DataType::QS8); - ARM_COMPUTE_ERROR_ON_DATA_TYPE_CHANNEL_NOT_IN(output, 1, DataType::F32, DataType::QS8); + ARM_COMPUTE_ERROR_ON_DATA_TYPE_CHANNEL_NOT_IN(input, 1, DataType::F16, DataType::F32, DataType::QS8); + ARM_COMPUTE_ERROR_ON_DATA_TYPE_CHANNEL_NOT_IN(output, 1, DataType::F16, DataType::F32, DataType::QS8); ARM_COMPUTE_ERROR_ON_MISMATCHING_DATA_TYPES(input, output); _input = input; @@ -296,6 +296,11 @@ void NEIm2ColKernel::configure(const ITensor *input, ITensor *output, std::pair< case DataType::F32: _func = &NEIm2ColKernel::run_reduced; break; +#ifdef ARM_COMPUTE_ENABLE_FP16 + case DataType::F16: + _func = &NEIm2ColKernel::run_reduced; + break; +#endif case DataType::QS8: _func = &NEIm2ColKernel::run_reduced; break; @@ -311,6 +316,11 @@ void NEIm2ColKernel::configure(const ITensor *input, ITensor *output, std::pair< case DataType::F32: _func = ((pad_x == 0) && (pad_y == 0)) ? &NEIm2ColKernel::run_generic : &NEIm2ColKernel::run_generic; break; +#ifdef ARM_COMPUTE_ENABLE_FP16 + case DataType::F16: + _func = ((pad_x == 0) && (pad_y == 0)) ? &NEIm2ColKernel::run_generic : &NEIm2ColKernel::run_generic; + break; +#endif case DataType::QS8: _func = ((pad_x == 0) && (pad_y == 0)) ? &NEIm2ColKernel::run_generic : &NEIm2ColKernel::run_generic; break; -- cgit v1.2.1