From e6630e4063fc3aa4312a2c8d094318b09ad2c3f5 Mon Sep 17 00:00:00 2001 From: Isabella Gottardi Date: Thu, 18 Jan 2018 15:50:39 +0000 Subject: COMPMID-790 - NEON: Add QASYMM8 support to Convolution Change-Id: Iec82a91ad351cfe8d07d0976a24bd42f4703177a Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/116833 Tested-by: Jenkins Reviewed-by: Anthony Barbier Reviewed-by: Gian Marco Iodice --- src/runtime/CL/functions/CLConvolutionLayer.cpp | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) (limited to 'src/runtime/CL/functions/CLConvolutionLayer.cpp') diff --git a/src/runtime/CL/functions/CLConvolutionLayer.cpp b/src/runtime/CL/functions/CLConvolutionLayer.cpp index d1153978ff..d1533b6f24 100644 --- a/src/runtime/CL/functions/CLConvolutionLayer.cpp +++ b/src/runtime/CL/functions/CLConvolutionLayer.cpp @@ -260,8 +260,8 @@ void CLConvolutionLayer::configure(const ICLTensor *input, const ICLTensor *weig if(_is_interleaved_transposed) { // Configure GEMMInterleave4x4. _input_interleaved_reshaped will be auto configured in the kernel - _interleave_kernel.configure(&_im2col_output, &_interleave_output); _memory_group.manage(&_interleave_output); + _interleave_kernel.configure(&_im2col_output, &_interleave_output); // Configure GEMM configure_mm(&_interleave_output, weights, &_gemm_output, true, _are_weights_reshaped); @@ -279,8 +279,8 @@ void CLConvolutionLayer::configure(const ICLTensor *input, const ICLTensor *weig float multiplier = input->info()->quantization_info().scale * weights->info()->quantization_info().scale / output->info()->quantization_info().scale; int output_multiplier, output_shift; quantization::calculate_quantized_multiplier_less_than_one(multiplier, &output_multiplier, &output_shift); + _memory_group.manage(&_tmp_output); _gemmlowp_output_stage.configure(&_gemm_output, biases, &_tmp_output, output_multiplier, output_shift, output->info()->quantization_info().offset); - _gemm_output.allocator()->allocate(); } // Configure Col2Im @@ -289,10 +289,7 @@ void CLConvolutionLayer::configure(const ICLTensor *input, const ICLTensor *weig { _tmp_output.allocator()->allocate(); } - else - { - _gemm_output.allocator()->allocate(); - } + _gemm_output.allocator()->allocate(); ARM_COMPUTE_ERROR_ON_MSG((output->info()->dimension(0) != conv_w) || (output->info()->dimension(1) != conv_h), "Output shape does not match the expected one"); -- cgit v1.2.1